Output Layout Control
|Top Previous Next|
The output layout can be controlled by the OutputLayoutManager object. A default global instance of the OutputLayoutManager exists in every Mission Plan. FreeFlyer allows users to manage the output layout by setting the size and location of output windows through the following ways:
You can also use the OutputLayoutManager object to take a screenshot of the whole FreeFlyer output workspace.
Configuring the OutputLayout through FreeFlyer Script
FreeFlyer allows users to manipulate the workspace output layout using the OutputLayoutManager Object. The default global object OutputLayout provides methods to manage the output windows at any time during the Mission Plan's execution. The OutputLayoutManager can not manage docked windows.
Once the user has defined the desired output layout using the OutputLayoutManager Object, the user will call OutputLayout.ApplyUpdates() to apply the specified actions.
Show New Window Behavior
The OutputLayout.ShowNewWindowBehavior() method allows the user to defined how new Windows will appear in the current Workspace.
The OutputLayout.ArrangeWindows() method allows the user to automatically arrange the windows with the syntax:
The OutputLayout.ArrangeWindows() method can also be used to specify a tiling layout in rows or columns. Please note that the ConsoleWindow must be undocked to be arranged with the OuputLayoutManager.
Hide Window Frames
The user can hide window frames using the syntax:
Hide Output Properties Tab
The user can hide and show the Output Properties Tab using the syntax:
Set Window State
The OutputLayoutManager allows users to minimize, maximize, and return windows to their original size by setting the window state. The user can set the window state using the syntax:
Set Window Size and Position
The OutputLayout.SetWindowSize() and OutputLayout.SetWindowPosition() allows the user to set the size and location of output windows through FreeFlyer script. The OutputLayout.SetWindowPosition() method sets the position of the top-left corner of a window. The origin (0, 0) is located at the top-left corner of the Workspace. The position can be defined by absolute positioning or proportional positioning. Call OutputLayout.ApplyUpdates() to perform the action.
For multiple-screen configurations with identical pixel counts and ratios, it's possible to force windows to appear on the second screen or to extend from one screen to the other. To do this with a two-monitor setup, for instance, the position values would range from 0-2 instead of from 0-1 like would be done for a single monitor. This approach can be extended to any monitor configuration, including vertical and horizontal setups, with the same range extension kept in mind for any of the appropriate dimensions.
Note: When the output workspace is resized, all windows inside the workspace will be proportionally rescaled to maintain the same relative layout. This behavior can be disabled in user preferences.
Query the Window Size and Position
You can use the OutputLayout.GetWindowSize() and OutputLayout.GetWindowPosition() methods to query the size and location of output windows through FreeFlyer script. You can also use the OutputLayout.GetScreenSize() method to query the size of the screen in pixels.
Set Workspace to FullScreenMode
The OutputLayout.SetWorkspaceFullScreenMode() method allows the user to make the current workspace go to full screen mode. To exit full screen mode, hit the ESC key.
You can unconstrain output windows from the FreeFlyer Workspace using the OutputLayout.ConstrainToWorkspace() method. Note that you also have access to the output window ID numbers using the OutputLayout.GetWindowsIDs() method.
Note: When getting "All" window IDs, the WindowIDs array will by default have one entry, which is the ID of the Global Console. If multiple window objects exist, the global Console ID will be last element of the array.
Set FreeFlyer Main Window Size and Position
The OutputLayout.MainWindowX, OutputLayout.MainWindowY, OutputLayout.MainWindowWidth, OutputLayout.MainWindowHeight properties allow the user to set the size and location of the FreeFlyer main window through FreeFlyer script.
Save Workspace Image
You can use the method below to save an image of the whole FreeFlyer output workspace. You can also use the output window SaveImage() methods to take screenshots of individual windows.
Configuring the OutputLayout through the Workspace Tab Drop-Down
By default, each workspace contains the output of a single run of your Mission Plan. You can easily compare output from different runs by switching between workspaces. The maximum number of workspaces is set in the User Preferences on the Display page. The Workspace Tab Drop-Down list allows the user to manipulate the Workspace in the following ways:
Note: The menu items will say “Show” or “Hide” based on the current visibility.
Configuring the OutputLayout through the Window Tab Drop-Downs
Note: The menu items will say "Show" or "Hide" based on the current visibility.
In addition to the drop-down menu shown above, an Output Window can also be constrained or unconstrained from FreeFlyer using the drop-down menu on the window frame itself, as shown in the images below. This allows any window to be moved to a separate external display. This can be done while the Mission Plan is running, or after completion. The ability to unconstrain output windows is also available through FreeFlyer scripting via the OutputLayoutManager Object, as shown above.
Note: When you click the "Constrain To: Workspace X" option, the window will return to its previous location in the Workspace.
Example: Using the OutputLayoutManager
The OutputLayout Object allows the user to set the size and location of output windows through FreeFlyer script. In this example, three ViewWindows are displayed along with a ConsoleWindow. The script below defines the three ViewWindows and the image displays the output from this script.
Output Layout Design for the GPS Operations Demo Sample Mission Plan