|  
 | 
|  | 
| FB3  Group BKB |  
 |  | 
|  |  
 |  Main  API  Application Menu Commands | 
|  | 
|  |  
 |  | 
|  
 | 
 
 | Application Menu Commands API Application Menu Commands
    For background information about the commands described on this page, 
    refer to the
  information about user interface extension 
    in the corresponding section of the API reference.
    Alternatively, you can use 
  user interface configuration
    to control more aspects of the user interface.
   
    On this page, API commands of the application menu category are 
    described. 
    This category covers all commands to extend the uDraw(Graph) 
    user interface by attaching dialog elements (i.e. menus and icons) 
    that are exclusively used by the application.
    The commands of this category are enclosed by keyword "app_menu(...)".
    They are not available when command-line option 
  -nogui has been used. 
    In this case you have to use the commands of 
  category graphical user interface
    instead.
    Click here to get an 
  overview of all API commands. 
   
    app_menu(create_menus(menus))
  
    Creates a menu for the application specified by list "menus" which are
    attached to the
  Edit 
    menu in the uDraw(Graph) user interface. 
  Details about application menus
    are available in the user interface extension guide.
    The menus are built hierarchically, so they may contain submenus 
    to realize cascades. 
    The menus will appear in the same order in the user interface as 
    the entries in the list. 
    The parameter "menus" is also used for pop-up menus that are 
    created by using the
  pop-up menu node attribute
    and
  pop-up menu edge attribute
    in the graph, so special cases for pop-up menus are described here.
    The following menu entry elements can be used in list "menus":
   
  
  
  
    menu_entry(menu_id,menu_label) 
  
 
    A single menu entry, where "menu_id" is the identifier sent back 
    to the application with answer 
  menu_selection(...)
    when the user selects this entry. 
    Further, the "menu_id" can be used with command 
  app_menu(activate_menus(...))
    to enable this menu entry in the user interface. 
    "menu_label" is the text of the entry that will appear in the menu. 
   
  Note:
    The parameter "menu_label" can be a language key starting with 
    "#%..." to use the 
  internationalization feature
    for multilingual interfaces.
    This menu entry does not have a mnemonic, so for regular pull-down menus 
    you should use 
  menu_entry_mne(...)
    instead to provide 
  access by keyboard.
    But use "menu_entry(...)" for pop-up menus, because naturally they cannot 
    be controlled with the keyboard.
  
  
    menu_entry_mne(menu_id,menu_label,menu_mne,menu_mod,menu_acc) 
  
 
    Same as 
  menu_entry(...)
    above, but with three additional parameters.
    "menu_mne" is a string with one character used as 
  mnemonic,
    so this character must exist in parameter "menu_label".
    The mnemonic character will be underlined in the menu for keyboard 
    access.
    The last two parameters are used to specify an optional 
  keyboard accelerator.
    Parameter "menu_mod" is the modifier key, either alt, shift, control, 
    meta, none
    (do not quote this parameter, e.g. no "alt"!). 
    "menu_acc" is the accelerator key. 
    So with the alt modifier and "A" for the accelerator key, 
    you can select the corresponding menu entry by pressing "Alt" and "A" 
    together on the keyboard.
    The accelerators of existing uDraw(Graph) menus must not be overloaded,
    so do not use the control modifier with O, S, P, C, X, N, L, T, F, A 
    or I.
   
 
| Example: |  
| menu_entry_mne("id1","my menu","y",alt,"m") |  
  Note:
    The parameters "menu_label", "menu_mne" and "menu_acc" can be a 
    language key starting with "#%..." to use the 
  internationalization feature
    for multilingual interfaces.
    The parameter "menu_mod" is an enumeration and not a string, but 
    here you can use the unquoted value lookup followed by a "string"
    which is a language key.
    Note that this string must not begin with "#%...", although it 
    is a language key used to retrieve the actual text from the 
    translation table.
    Simply remove the "#%" when you use a language key for this
    parameter, because the lookup in the translation table is done 
    in any case, so the distinction between a usual string 
    (without "#%") and a language key (with "#%") is not necessary 
    here.
   
 
| Example: |  
| menu_entry_mne("id1","#%m1","#%m1_mne",lookup "#%m1_mod","#%m1_acc") |  
    For pop-up menus, the entry "menu_entry_mne(...)" is not recommended, 
    because naturally pop-up menus cannot be controlled with the keyboard.
    Use entry
  menu_entry(...)
    instead.
  
  
    menu_entry_disabled(menu_id,menu_label) 
  
 
    Same as 
  menu_entry(...)
    above, but here the entry is always deactivated and can never be 
    selected with the mouse.
    Do not use this entry for regular pull-down menus,
    because these entries can be activated (and deactivated) with 
    API command
  app_menu(activate_menus(...)).
    This is not possible in pop-up menus, where the menu is an
  attribute value
    of a particular node/edge.
    To activate and deactivate entries in a pop-up menu, you have to 
    create a new menu with normal and deactivated entries.
    Afterwards, you have to set this menu as the value of the 
    pop-up menu attribute for the node/edge, either with command
  graph(change_attr(...))
    or more easily with
  types
    and
  visualization definitions.
   
  Note:
    The parameter "menu_label" can be a language key starting with 
    "#%..." to use the 
  internationalization feature
    for multilingual interfaces.
  
  
    submenu_entry(menu_id,menu_label,menus) 
  
 
    A submenu (i.e. cascade) that contains another list of menu entries, 
    specified by parameter "menus". 
    "menu_id" can be used with command 
  app_menu(activate_menus(...))
    to enable this submenu in the user interface. 
    Submenus can be opened by the user, but not selected, so their "menu_id" 
    will never be sent back to the application with a menu selection
    event. 
    You have to read above, because all the other information about
  menu_entry(...)
    applies to this entry, too.
  
  
    submenu_entry_mne(menu_id,menu_label,menus,menu_mne) 
  
 
    Same as 
  submenu_entry(...),
    but with an additional mnemonic.
    You have to read above, because all the other information about
  menu_entry_mne(...)
    applies to this entry, too (except for modifier and accelerator which are
    not present here).
  
  
    submenu_entry_disabled(menu_id,menu_label,menus) 
  
 
    Same as 
  submenu_entry(...),
    but always disabled.
    You have to read above, because all the other information about
  menu_entry_disabled(...)
    applies to this entry, too.
  
  
    blank 
  
 
     A separator line in the menu to group particular menu entries. 
   
    app_menu(create_icons(icons))
  
    Creates icons for the application specified by list "icons" which are
    attached to the application plane of the
  icon bar
    in the uDraw(Graph) user interface. 
  Details about application icons
    are available in the user interface extension guide.
    The icons will appear in the same order in the user interface as 
    the entries in the list. 
    The following icon entry elements can be used in list "icons":
   
  
  
  
    icon_entry(icon_id,filename,lang_string) 
  
 
    A single icon entry, where "icon_id" is the identifier sent back 
    to the application with answer 
  icon_selection(...)
    when the user selects this entry. 
    Further, the "icon_id" can be used with command 
  app_menu(activate_icons(...))
    to enable this icon entry in the user interface. 
    The "filename" specifies the file with the bitmap used for the icon. 
    This can be a uDraw(Graph) system bitmap
    (the settings can be found in the configuration file of the 
    standard user interface in "$UDG_HOME/lib/uDrawGraph/uDrawGraph.menu")
    or a file name in one of the directories specified by environment 
    variable
  $UDG_ICONDIR.
    The bitmap file used for icons must be in X11 Bitmap format 
    (".xbm") with a size of 18x18 pixel. 
    The third optional parameter "help" is a short text or
  language key
    mapping to a text that describes the semantic of the icon operation.
    The help text is automatically displayed in the footer area of the 
    base window as long as the mouse pointer is over the icon. 
   
  Note:
    The parameter "string" can be a language key starting with 
    "#%..." to use the 
  internationalization feature
    for multilingual interfaces.
  
  
    blank 
  
 
    A separator gap in the icon bar in order to group particular icons 
    in a visual manner.
   
    app_menu(activate_menus(menu_ids))
  
    To activate the application menu entries specified by "menu_ids",
    so it is possible to select them with the mouse. 
    All the other entries previously created by 
  app_menu(create_menus(...))
    and not member of list "menu_ids" are automatically deactivated at 
    the same time, so they cannot be selected by the user. 
    In other words, the application only has to enable the menus that 
    should be available at a time without deactivating the other ones. 
  Details about application menus
    are available in the user interface extension guide.
   
  Note: 
    after controlling the "File" (see below), the application also has to 
    activate and deactivate the "File" menu entries of the File menu.
    They have a special menu ID, see
  user interface extension guide.
   
    app_menu(activate_icons(icon_ids))
  
    To activate the application icon entries specified by "icon_ids",
    so it is possible to select them with the mouse. 
    All the other entries previously created by 
  app_menu(create_icons(...))
    and not member of list "icon_ids" are automatically deactivated at 
    the same time, so they cannot be selected by the user. 
    In other words, the application only has to enable the icons that 
    should be available at a time without deactivating the other ones. 
  Details about application icons
    are available in the user interface extension guide.
   
    app_menu(control_file_events)
  
    After sending this command, the application declares to take 
    control on the events of the uDraw(Graph) 
  File
    menu. 
    Afterwards, the entries in the "File" menu can be enabled and disabled 
    using command 
  app_menu(activate_menus(...))
    just like any other application menu entry.
    The entries of the "File" menu have a special menu ID, listed in the
  user interface extension guide.
    After using this command, uDraw(Graph) will not perform any operation
    when an entry of the "File" menu is selected by the user. 
    Instead, an event is sent by the API with answer 
  menu_selection(...)
    to let the application decide what to do. 
    Read more about controlling the "File" menu in the 
  user interface extension guide.
    | 
|  |  
 | 
 
 | 
|  |