Class interface property sheet

Name

The name of a class may contain only letters, digits, and "_". The first character must not be a digit.

Declare also "Set" of ...

Generates also a nested declaration of a class "Set", where the set elements support the present class interface.

Creatable / Non-creatable

New objects of type XY can be created (using the new expression) only if XY is a creatable class; only creatable classes are listed in the combo-box associated with the <creatable> placeholder of the newconstruct. (New objects may emerge also as output objects of other built-in or native functions, e.g., the Handle objects associated with Chain elements.)

As a consequence, creatable classes must not contain abstract functions. If a class interface contains abstract functions or if it would not make sense to create objects supporting this and only this class interface, for instance a general Print class, then you will declare it to be non-creatable.

Component object interface

Component object interfaces are the basic ingredients of component object specifications. The parameters of their functions are subject to special restrictions, and their member variables must be accessed through set/get functions.

Element category combo box

If the current class is a collection class, i.e., it is derived directly or indirectly from one of the built-in base classes Set, Chain, or Array, and if the current class is the first class in the inheritance chain to define the collection element class (through the ELEMTYPE virtual type), then you may specify the category of the collection elements here.

Native

If a class is to contain native functions (implemented in some other language) then you must declare it to be native. Native classes are implemented in a special way as dynamic link libraries (DLLs). A native class may nevertheless contain non-native functions .

Select classes to be extended

A new class may extend one or several existing base classes. These may be selected from the combo-boxes "Basic classes" and "Other classes". "Basic classes" lists all classes whose declaration is contained in the basic include file std.lava. If you don't explicitly select a base class then the new class is derived from class Object in std.lava.

The base class GUI is the common base class of all Lava GUI service classes: For any user-defined class C, LavaPE can semi-automatically create a GUI representation of C. This is a class that is derived from the common base class GUI (contained in std.lava) of all GUI service classes by assigning the concrete class C to the abstract virtual type DATATYPE of class GUI.

LavaPE provides a special view for editing GUI specifications. It allows you to modify various representation attributes of individual atomic or composite class members and to associate handlers (callbacks) with input fields and input events.

Interface UUID

Interfaces of component objects are designated by an external identifier: A Universally Unique IDentifier.