![]() |
VR-Vantage 2.5 API Documentation
|
The presence of the GUI in applications based on the DtVrvApplication class is controlled by its configuration's assembleUserInterfaceComponents() member.
If you want to run MAK's VR-Vantage applications without the GUI, you can use the –noGui command-line option to set this member in the DtVrvApplicationConfiguration.
The GUI is constructed by the DtQtMenuAssembler, the DtQtToolbarAssembler, and the DtQtPageAssembler. To add or remove GUI elements, register or unregister the appropriate builder with the appropriate assembler.
VR-Vantage's menu system is configured by each application, controlled by the vrvCore module, and implemented in various plug-ins. Menus are derived from DtMenu. The implementation for the menu system is part of the Qt plugin (vrvCoreQt.dll). This plugin defines concrete menus and menu items with Qt-based implementations, such as DtAddFeatureLayerItem.h, and registers their creators with the DtDe. (For details, please see DtMainMenus.h and the various classes implementing DtMenuItem. Each menu and menu item has a unique ID name provided by its constructor, such as DtExamplePage, that is used to identify it.
The menu interface used directly by the DtDe is defined in the vrvCore module by the classes DtMenuAssembler, DtMenuConfiguration, and DtMenuPath. The DtMenuPath class is used to specify the location of a single menu or menu item in terms of its location and the name of the creator that generates its implementation.
DtMenuConfiguration contains a collection of menu paths and provides several methods to conveniently add, access, and modify menu paths. The DtMenuAssembler acts as a sort of menu configuration interpreter. It takes a DtMenuConfiguration and executes the creators necessary to create the menus and menu items. The Qt plugin overrides the default menu assembler to assemble the menus in a Qt-specific fashion. If you want to replace Qt with another GUI toolkit, you will probably need to implement your own DtMenuAssembler as well.
The DtVrvApplication framework class has the functions masterModeMenuConfiguration() and slaveModeMenuConfig(). It uses them to generate the correct menu configuration. The source for MAK's VR-Vantage applications overrides these functions to produce their respective menus. For details, please see the exampleDialogPage example.
Toolbars are assembled similarly to menus. Registered menu item creators can also be used to populate toolbars, and can be specified in toolbar paths. Toolbars can also contain objects derived from DtWidget. Creators for the widgets are registered with the DtQtToolbarAssembler.
Most dialog boxes in VR-Vantage are implemented as pages in a tabbed parent dialog box, called a page collection. Each page derives from DtPage, which is a QWidget. A page is installed into the system by making a creator class for it and registering that creator with the page assembler (please see exampleDialogPage for an example). Once registered, pages can be added to the GUI using the VR-Vantage application's page configuration.
Tabbed dialog boxes that display pages are called page collections. The set of page collections that exists at runtime is determined by the VR-Vantage application's page configuration. (Please see the exampleDialogPage example for an example of adding a new page collection.) Page collections can be configured as either dockable or freefloating dialog boxes.
exampleDialogPage - Shows how to add a page to a dialog box. | |
exampleDisplayUnits - Shows how to use convert values and display them using the application's display units settings. | |
exampleEventProcessor - Create and registers an event processor. | |
exampleExtendDialogByAddition - Shows how to extend an existing dialog box by simply adding a new GUI element to it. Does not follow the humble-dialog pattern. | |
exampleExtendDialogByDerivation - Shows how to extend an existing dialog box (adding more features) through derivation. | |
exampleHumbleDialog - Shows how to create a custom Humble Dialog that is displayed with a custom menu. | |
exampleKeyMap - Registers a function with the Key Map Manager, and binds it to a key event in a given key map. | |
exampleSymbolDecoration - Shows how to add a symbol decoration to a 2D icon. | |
exampleToolbar - Shows how to create a toolbar and add items that are part of the menu bar and items that are not part of the menu bar. | |
| tutorialSymbolFacade1 - Multi-part tutorial that shows how to add symbols and handle symbol events. |
[<< The Driver Layer] [Home] [Top of Page] [The Application Layer >>]