Workbench User Guide : Structuring an Application : How You Can Change Global Constants at Runtime : How the Application's Starting Frame Is Opened
 
Share this page          
How the Application's Starting Frame Is Opened
To enable the end user to start interacting with an application, the application must display a frame. Therefore, OpenROAD automatically opens the application's starting frame when the user starts the application. (If you specify a starting procedure for the application instead of a starting frame, you must use an OpenROAD statement in the starting procedure that opens the first frame.)
After the first frame is open and you want to open a second frame, you can use any of the following statements:
openframe statement
Leaves the first frame active after opening the second frame. This creates two active frames, both of which the end user can interact with.
callframe statement
Makes the first frame inactive after opening the second frame. This creates one inactive frame and one active frame, with the active frame blocking access to the inactive frame. End users cannot use the inactive frame until they close the active frame.
gotoframe statement
Closes the first frame when it opens the second frame
For more information about these statements, see the chapter "Programming Frames" in the Programming Guide.
Calling Frame and the Called Frame
When one of these statements or a procedure appears in a frame script, the frame that contains the statement is referred to as the calling frame, and the frame to which control is passed is the called frame.
All these statements transfer control from the current frame to a second frame while executing the second frame. The control frame structure uses either the callframe or openframe statement. The sequential frame structure uses the gotoframe statement to force the user to step through the application. You can achieve a similar result by using the dynamic features of OpenROAD for a sequential frame application. This is significantly faster than using gotoframe.
For more information about how to use these dynamic features, see the Programming Guide.