Allows you to hide or show an object, make a widget into a gadget, rename the topLevelShell's creation routine, and re-specify the creation routine parameters.
The object is displayed during your Builder Xcessory session. By default, Show is set. When you select Hide, the object is immediately removed from your display. A hidden object will not be shown in the generated code.
Note: Make Gadget is insensitive if Java is the selected language.
Note: This feature is applicable for C only. In C++, object instances will be protected data members of a C++ class.
Builder Xcessory allows you to declare widgets outside the scope of the creation file. These widgets are accessible from anywhere within your program. While this is not recommended programming practice, we recognize that there are instances in which this capability is useful.
- Default Widget ID Scope type. The widget is declared within the scope of the creation routine and is accessible only within the scope of the creation routine.
- Creates a globally defined widget ID for simple instances or a widget structure for class instances. The declaration is placed outside of the creation routine in a definition file, allowing you to access the widget ID from anywhere else within the program.
- Definitions are written to the definition file, creation-c.h for C, or main-uil.h for UIL. You can then include these files in other modules requiring access to these widget IDs.
- Assumes that your entry in the Widget ID Scope text field (with the widget instance name again the default) is defined in outside of the creation file. Also assumes that the value is accessible from within the creation routine.
- For example, setting Widget ID Scope type to Other and specifying param->one in the Widget ID Scope text field outputs a declaration of the form:
- param->one = XtCreateWidget(...)
- where param is assumed to be a pointer to a structure with member one of type Widget. Using this method, you can pass a pointer to a structure of all your widget IDs to the creation routine and make direct assignments to the structure members.
For class instances, the Widget label changes to the name of a structure that contains all widget IDs in that class instance. You can specify any ID name in the Widget text field.The class instance name is used as the default.
Note: When editing classes in Classes View, Storage Location is insensitive. You are editing a template for a hierarchy of widgets rather than the widgets themselves. You must set Storage Location on a class instance in Instances View.
Changing Storage Location does not alter the C++, ViewKit, or Java code generated by Builder Xcessory. All widget instances are automatically declared as protected members of the class and are accessible from within class instances. If you want to access these widget instances, add a public method to the class definition.
When you set Storage Location for a class instance, if you generate C code, the structure itself is passed for types Local and Global. A pointer to the structure is passed for type Other (the location must be valid).
In contrast to C generation, no structure is generated for class instances when you generate UIL. Only the widget ID of the uppermost widget instance in the class instance is stored. You can access other widgets using the XtNameToWidget call. Widget instances which are not within classes are generated just as in C.
Note: The Creation Routine dialog is only available for children of topLevelShells.
A widget's Creation Routine is the routine in the creation-c.c file, called by the main-c.c routine, which creates the widget. You can rename this routine and specify the type and name of the parameter passed to the routine.
If you enter a new Procedure Name, the default parameter type is None. If you choose an existing routine, the Parameter Type field displays the type assigned to the routine in the Procedure Manager. To change this type, the following conditions must apply:
The Parameter assigned to the Creation Routine can be an identifier or an actual value corresponding to the Parameter Type. New identifiers entered in the Parameter text field will be created and displayed in the Identifier Manager with the appropriate Parameter Type. Constants are not valid Creation Routine parameter values.
Note: In Java, you cannot edit this field because the file name must match the class name.
Base name to which the C++ and C source and header suffixes will be appended. Set to the Base Class Name by default. For example, files generated from Base Class File "Foo" will be
Foo.C (for the source file) and
Foo.h (for the header file).
Base name to which the derived class C++ source and header files will be appended. The default value is the Derived Class. For example, files generated from Derived Class File "foo" will have the default names FooDerived.C (for the source file) and FooDerived.h (for the header file). By default, not displayed.
Note: Builder Xcessory generates and displays derived files only if you set Generate Derived Files on the Code Generation tab of the C++ Language Settings dialog (from the Browser Options menu).
Note: This feature is available only when you select C++ or ViewKit as your current language.