Menus / Toolbars / User Interface elements
Application UI Configuration Documentation
The configuration of various UI elements such as menus, toolbars, context menus, and keyboard shortcuts in the application is defined in the application.xml
file. This document provides a comprehensive guide to understanding the structure and elements of the application.xml
.
Structure of application.xml
The application.xml
file follows a structured format using XML. It comprises several key sections:
UI Configuration: Contains the configuration for different UI elements.
Definitions: Defines the actual actions associated with UI elements.
UI Configuration
Menus
Menus
section defines the structure of menus in the application.Each menu item is defined with attributes such as
definition_ref
,type
,UID
, andname
.
Toolbars
Navigation_toolbars
section specifies the configuration of toolbars.Toolbars can be customized with various buttons and actions.
Context Menus
Context_menus
section defines different types of context menus based on user interactions.Each context menu is defined with attributes like
definition_ref
,type
,UID
, andname
.
Shortcut Keys
Shortcut_keys
section lists keyboard shortcuts used within the application.Each shortcut is defined with attributes such as
definition_ref
,UID
,accelerator
, andname
.
Mouse Shift Clicks
Mouse_shift_clicks
section specifies actions triggered by mouse clicks combined with a shift key.Actions like opening specific menus are defined here.
Double Click Actions
Double_click_actions
section, though not yet implemented, would define actions triggered by double-click events.
Definitions
Actions
Definitions
section defines the actual actions associated with UI elements.Each action is defined with attributes like
smallIconName
,description
,command
,id
, andname
.
The application.xml has this structure:
<?xml version="1.0" encoding="UTF-8"?>
<ui>
<partial_file_list/>
<group id="Id_XenonMainGroup" name="MAIN">
<menus>
<menu definition_ref="" type="1" UID="ID_MnFile" name="File">
<aliases>
<alias Alias="POP0"/>
<alias Alias="File"/>
</aliases>
<menu definition_ref="ID_DOWNLOAD_DWG" UID="PMI_1000" name="Download as DWG"/>
<menu definition_ref="ID_DOWNLOAD_DXF" UID="PMI_1001" name="Download as DXF"/>
<menu definition_ref="ID_DOWNLOAD_PDF" UID="PMI_1011" name="Download as PDF"/>
...
</menu>
<menu definition_ref="" type="1" UID="ID_MnView" name="View">
<aliases>
<alias Alias="POP3"/>
<alias Alias="VIEW"/>
</aliases>
<menu definition_ref="ID_REBUILD" UID="PMI_REBUILD" name="Rebuild"/>
<menu definition_ref="ID_ZOOMS" UID="PMI_ZOOMS" name="Zoom">
<menu definition_ref="ID_ZOOM_FIT" UID="PMI_ZOOM_FIT" name="Zoom Fit"/>
<menu definition_ref="ID_ZOOM_WIN" UID="PMI_ZOOM_W" name="Zoom Window"/>
</menu>
...
</menu>
...
</menus>
<toolbars/>
<navigation_toolbars>
<toolbar on_by_default="true" UID="ID_NavBarDefault">
<toolbar definition_ref="ID_DISPLAYMENU" UID="NTB_DISPLAYMENU" name="Menu"/>
<toolbar definition_ref="ID_U" UID="NTB_U" name="Undo"/>
<toolbar definition_ref="ID_REDO" UID="NTB_REDO" name="Redo"/>
<toolbar definition_ref="ID_PAN" UID="NTB_PAN_TLBAR" name="Pan"/>
<toolbar definition_ref="ID_ZOOM" UID="NTB_ZOOM" name="Zoom">
<toolbar definition_ref="ID_ZOOM_FIT" UID="NTB_ZOOM_FIT" name="Zoom Fit"/>
<toolbar definition_ref="ID_ZOOM_WIN" UID="NTB_ZOOM_W" name="Zoom Window"/>
</toolbar>
...
</toolbar>
<toolbar UID="ID_NavBarViewOnly">
<toolbar definition_ref="ID_PAN" UID="NTB_PAN_VO" name="Pan"/>
<toolbar definition_ref="ID_ZOOM" UID="NTB_ZOOM" name="Zoom">
<toolbar definition_ref="ID_ZOOM_FIT" UID="NTB_ZOOM_FIT" name="Zoom Fit"/>
<toolbar definition_ref="ID_ZOOM_WIN" UID="NTB_ZOOM_W" name="Zoom Window"/>
</toolbar>
...
</toolbar>
</navigation_toolbars>
<context_menus>
<menu definition_ref="" type="2" UID="PM_0006" name="Default Menu">
<aliases>
<alias Alias="POP501"/>
<alias Alias="CMDEFAULT"/>
</aliases>
<menu definition_ref="ID_REPEAT" UID="PMI_385" name="Repeat"/>
<menu definition_ref="" name=""/>
...
</menu>
<menu definition_ref="" type="3" UID="PM_0007" name="Edit Menu">
<aliases>
<alias Alias="POP502"/>
<alias Alias="CMEDIT"/>
</aliases>
<menu definition_ref="ID_REPEAT" UID="PMI_397" name="Repeat %s"/>
<menu definition_ref="" name=""/>
...
</menu>
<menu definition_ref="" type="4" UID="PM_0009" name="Command Menu">
<aliases>
<alias Alias="POP503"/>
<alias Alias="CMCOMMAND"/>
</aliases>
<menu definition_ref="ID_ENTER" UID="PMI_414" name="Enter"/>
<menu definition_ref="ID_CANCEL" UID="PMI_415" name="Cancel"/>
</menu>
<menu definition_ref="" type="5" UID="PM_0026" name="Relate Dimension">
<aliases>
<alias Alias="OBJECT_DIMENSION"/>
</aliases>
<menu definition_ref="ID_DIMREASSOCIATE" UID="PMI_248" name="Relate Dimension"/>
</menu>
</context_menus>
<double_click_actions />
<shortcut_keys>
<shortcut definition_ref="ID_REDO" uid="MA_13" accelerator="Ctrl+Y" name="Redo"/>
<shortcut definition_ref="ID_REDO" uid="MA_28" accelerator="Meta+Y" name="Redo"/>
<shortcut definition_ref="ID_REDO" uid="MA_29" accelerator="Meta+Shift+Z" name="Redo"/>
<shortcut definition_ref="ID_U" uid="MA_14" accelerator="Ctrl+Z" name="Undo"/>
<shortcut definition_ref="ID_U" uid="MA_27" accelerator="Meta+Z" name="Undo"/>
<shortcut definition_ref="ID_DELETE" uid="MA_15" accelerator="Del" name="Delete"/>
...
</shortcut_keys>
<mouse_shift_clicks>
<click button_num="2" definition_ref="ID_SNAP_MENU" name="ESnap Menu" UID="MB_10"/>
<click button_num="3" definition_ref="ID_ROLLVIEW" name="Transparent Orbit" UID="MB_11"/>
</mouse_shift_clicks>
<definitions>
<definition smallIconName="" description="Aligns entities with other entities in 2D and 3D space: ALIGN" iconName="" command="^C^C_ALIGN" iconRecource="" id="ID_ALIGN" name="Align"/>
<definition smallIconName=":/images/small_icons/dimensions/angular.svg" description="Creates an angular dimension: ANGLEDIMENSION" iconName=":/images/icons/dimensions/angular.png" command="^C^C_ANGLEDIMENSION" iconRecource="" id="ID_ANGLEDIMENSION" name="Dimension, Angular"/>
...
</definitions>
</group>
</ui>