| **Navigation:**  Window Designer >====== Window Behavior ====== | [[using the window formatter sample window.htm|{{btn_prev_n.gif|Previous page}}]][[coming future.htm|{{btn_home_n.gif|Return to chapter overview}}]][[clarion window controls toolbox.htm|{{btn_next_n.gif|Next page}}]] | | || **Window Operation Mode** This option allow you to override the window settings specified in the **[[window properties.htm|Window Properties]]** dialog. This allows an additional access point to modify the window's operation mode. **See Also:** [[window declare a dialog window .htm|WINDOW]]. **Use WINDOW Setting** Specifies no overrides to the window settings **Normal** Specifies application modal operation mode. The user must respond before moving to any other window in the application. **MDI** Specifies that the window conforms to standard MDI child behavior. **Modal** Specifies system modal operation. A system modal window takes complete control until the window is closed. **INI File Settings** Checking the **Save and Restore Window Location **specifies that a window's location is stored in the application .INI file, and will open in that position the next time the procedure is called. This is available only if you enable INI File settings in the **[[global properties.htm|Global Properties]]** dialog. **Visual indicators on control with focus** **Disable visual indicators** This check box is enabled if you have activated the [[global properties.htm|Set Visual Indicators]] feature in the Global Properties window. Check this box to disable those settings for this window only. **Override Field Navigation key** **Override Use of ENTER key instead of TAB** This check box is enabled if you have activated the Field Navigation feature in the Global Properties window. Check this box to disable those settings for this window only. **Disable Left/Right Key on List controls** Check this box to disable the left and right key from navigating to the next or previous control from any LIST control on this window. This may be necessary if a list box has horizontal scrolling active. **Enable Next Tab control selection** Check this box to navigate easily from one tab control to the next via keyboard control. **Use Exclude Global List** If you do not disable the Override Keystroke feature, you can check this box to use the list of controls that you had excluded in the Global Properties window. **Classes** Many of the ABC Procedure, Control and Extension templates provide a Classes tab or dialog. These local Classes tabs let you control the classes (and objects) your procedure uses to accomplish the template's task'that is, they override the global class settings specified in the **Global Properties** dialog. You may accept the default Application Builder Class specified in the **Global Properties** dialog (recommended), or you may specify your own or a third party class to override the default setting. Deriving your own class can give you very fine control over the procedure when the standard Application Builder Class is not precisely what you need. **Object Name** Set the object's label for the template generated code. **Use Default Application Builder Class?** Check this box to use the default Application Builder Class specified in the **Global Properties** dialog. Clear this box to use a class other than the default, and to enable the following prompts. **Use Application Builder Class?** Check this box to select a class from the **Base Class** drop-down list. The list includes all classes with the LINK attribute in \LIBSRC\*.INC files. Clear this box to specify a class declared elsewhere. **Base Class** If you checked the **Use Application Builder Class?** box, select a class from the drop-down list. If you cleared the **Use Application Builder Class?** box, type the class label here, and type the name of the source file that contains the class declaration in the **Include File** entry box. **Include File** If you cleared the **Use Application Builder Class?** box, type the class label in the **Base Class** entry box, and type the name of the source file that contains the class declaration here. **Derive?** Check this box to derive a class based on the parent class specified above and to enable the **New Class Methods** and **New Class Properties** buttons to define any //new //properties and methods for the derived class. This prompt is primarily to allow you to define //new //properties and methods in a derived class. To override //existing //methods, simply embed code in the corresponding method embed points. Using **Derive?**, **New Class Methods** and **New Class Properties** makes the template generate code similar to the following: **    MyProcess CLASS(Process)  !derive a class from the parent class** **    NewMethod  PROCEDURE    !prototype new class method** **    NewProperty BYTE      !declare new class property** **         END** {{tipbox.jpg|TipBox.jpg}} The template automatically derives from the parent class if you embed code into any of the derived method embed points, regardless of the status of this check box. **New Class Methods** Press this button to specify the //new //method prototypes to generate into the derived CLASS structure. This opens the **New Class Methods **dialog (see //New Class Methods//). **New Class Properties** Press this button to specify the new property declarations to generate into the derived CLASS structure. This opens the **New Class Properties** dialog (see //New Class Properties//). **Application Builder Class Viewer** Press this button to display classes, properties, and methods used by the ABC Templates, and the relationships between parent and derived (child) classes. This utility can help you analyze and understand the classes that the ABC Templates use. **Refresh Application Builder Class Information** Press this button if you have changed the contents of an include file (.INC) or added an include file to the \LIBSRC directory. Typically, this is needed when you install third party products that use ABC compliant classes, although you may create your own ABC compliant classes too. See //ABC Compliant Classes// for more information.The ABC Templates use information gleaned from the header files for generating embed points, loading the Application Builder Class Viewer, application conversion, etc. **Composite Class** Press these buttons to open a Classes dialog for each class used by the parent class specified above. For example, the WindowManager uses a Toolbar class, so the WindowManager's Classes dialog contains a Toolbar Class button to open a Classes dialog for its Toolbar Class.