
Setting the Size of Graph Windows Associated with Graph Layout Objects for More WYSIWYG Behavior


hrodstein
// To get WYSIWYG behavior in a page layout, the size of each graph object in the layout // must match, or at least be close to, the size of the associated graph window. // // The SetLayoutGraphsWidthAndHeight procedure allows you to set the size of the graph // window associated with each layout graph object in a particular layout window. // // For example, assume you have a layout containing some number of graph objects // and you want to set the associated graph windows to be 6.5 inches by 6.5 inches // without changing the top/left position of the graph windows on the screen. // You can execute: // SetLayoutGraphsWidthAndHeight("Layout0", 72*6.5, 72*6.5) // Convert from inches to points // The factor of 72 converts from inches to points. To convert from centimeters // to points, use 182.88. // SetWindowWidthAndHeight(windowName, width, height) // Sets a windows width and height without moving its top/left corner. // Width and height are in points. // Example: // SetWindowWidthAndHeight("Graph0_PCM", 72*6.54, 72*6.39) // Convert from inches to points Function SetWindowWidthAndHeight(windowName, width, height) String windowName // e.g., "Graph0_PCM" Variable width, height // In points GetWindow $windowName, wsize MoveWindow /W=$windowName V_left, V_top, V_left+width, V_top+height End // SetLayoutGraphsWidthAndHeight(layoutName, width, height) // Sets the width and height of the graph windows associated with each // graph object in a layout. // Width and height are in points. // Example: // SetLayoutGraphsWidthAndHeight("Layout0", 72*6.54, 72*6.39) // Convert from inches to points Function SetLayoutGraphsWidthAndHeight(layoutName, width, height) String layoutName // e.g., "Layout0" Variable width, height // In points if (WinType(layoutName) != 3) Abort "Expected name of a layout window" endif Variable debug = 1 if (debug) DoWindow /F $layoutName endif Variable numGraphs = 0 String info Variable objectNumber = 0 do // Get information about the next object in the layout String objectIdentifier sprintf objectIdentifier, "%d", objectNumber info = LayoutInfo(layoutName, objectIdentifier) if (strlen(info) == 0) break endif // Get the object's type String typeStr = StringByKey("TYPE", info) if (CmpStr(typeStr,"GRAPH") != 0) objectNumber += 1 continue // We want graphs only endif // Get the object's name which will be the graph name String name = StringByKey("NAME", info) if (debug) DoWindow /F $name endif // Set the graph window's width and height SetWindowWidthAndHeight("Graph0_PCM", width, height) numGraphs += 1 objectNumber += 1 while(1) Printf "Set the size of %d graphs\r", numGraphs return 0 End

Forum

Support

Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More