GiD - The personal pre and post processor

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »


GiD offers you the opportunity to customize the pull-down menus. You can add new menus or to change the existing ones. If you are creating a problem type, these functions should be called from the InitGIDProject or InitGIDPostProcess functions (see TCL AND TK EXTENSION).

Note: Menus and option menus are identified by their names.
Note: It is not necessary to restore the menus when leaving the problem type, GiD does this automatically.
The Tcl functions are:

  • GiDMenu::Create { menu_name_untranslated prepost {pos -1} {translationfunc _} }

Creates a new menu. New menus are inserted between the Calculate and Help menus.

    • menu_name_untranslated: text of the new menu (English).
    • prepost can have these values:

"PRE" to create the menu only in GiD Preprocess.
"POST" to create the menu only in GiD Postprocess.
"PREPOST" to create the menu in both Pre- and Postprocess.

    • pos: optional, index where the new menu will be inserted (by default it is inserted before the 'Help' menu)
    • translationfunc: optional, must be _ for GiD strings (default), or = for problemtype strings


  • GiDMenu::Delete { menu_name_untranslated prepost {translationfunc _} }

Deletes a menu.

    • menu_name_untranslated: text of the menu to be deleted (English).
    • prepost can have these values:

"PRE" to delete the menu only in GiD Preprocess.
"POST" to delete the menu only in GiD Postprocess.
"PREPOST" to delete the menu in both Pre- and Postprocess.

    • translationfunc: optional, must be _ for GiD strings (default), or = for problemtype strings


  • GiDMenu::InsertOption { menu_name_untranslated option_name_untranslated position prepost command {acceler ""} {icon ""} {ins_repl "replace"} {translationfunc _} }

Creates a new option for a given menu in a given position (positions start at 0, the word 'end' can be used for the last one).

    • menu_name_untranslated: text of the menu into which you wish to insert the new option (English), e.g "Utilities"
    • option_name_untranslated: name of the new option (English) you want to insert.

The option name, is a menu sublevels sublevels list, like [list "List" "Points"]
If you wish to insert a separator line in the menu, put "---" as the option_name.

    • position: position in the menu where the option is to be inserted. Note that positions start at 0, and separator lines also count.
    • prepost: this argument can have the following values:

"PRE" to insert the option into GiD Preprocess menus.
"POST" to insert the option into GiD Postprocess menus.
"PREPOST" to insert the option into both Pre- and Postprocess menus.

    • command: is the command called when the menu option is selected.
    • acceler: optional, key accelerator, like "Control-s"
    • icon: optional, name of a 16x16 pixels icon to show in the menu
    • ins_repl: optional, if the argument is:
      • replace: (default) the new option replaces the option in the given position
      • insert: the new option is inserted before the given position.
      • insertafter: the new option is inserted after the given position.
    • translationfunc: optional, must be _ for GiD strings (default), or = for problemtype strings


  • GiDMenu::RemoveOption {menu_name_untranslated option_name_untranslated prepost {translationfunc _}}

Removes an option from a given menu.

    • menu_name_untranslated: name of the menu (English) which contains the option you want to remove. e.g "Utilities"
    • option_name_untranslated: name of the option (English) you want to remove. The option name, is a menu sublevels list, like [list "List" "Points"]
    • prepost: this argument can have the following values:

"PRE" to insert the option into GiD Preprocess menus.
"POST" to insert the option into GiD Postprocess menus.
"PREPOST" to insert the option into both Pre- and Postprocess menus.

    • translationfunc: optional, must be _ for GiD strings (default), or = for problemtype strings


To remove separators, the option_name is — , but you can append an index (starting from 0) to specify wich separator must be removed, if there are more than one.
e.g.
GiDMenu::RemoveOption "Geometry" [list "Create" "---2"] PRE

  • GiDMenu::ModifyOption { menu_name_untranslated option_name_untranslated prepost new_option_name {new_command default} {new_acceler default} {new_icon default} {translationfunc _} }

Edit an existent option from a given menu
some parameters can be 'default' to keep the current value for the command, accelerator, etc

  • GiDMenu::UpdateMenus {}

Updates changes made on menus. This function must be called when all calls to create, delete or modify menus are made.

  • GiD_RegisterPluginAddedMenuProc and GiD_UnRegisterPluginAddedMenuProc

This commands can be used to specify a callback procedure name to be called to do some change to the original menus
GiD_RegisterPluginAddedMenuProc <procname>
GiD_UnRegisterPluginAddedMenuProc<procname>
The procedure prototype to be registered must not expect any parameter, something like this.


proc <procname> { } {
... do something ...
}


e.g. a plugin can modify a menu to add some entry, but this entry will be lost when GiD create again all menus, for example when starting a new model. Registering the procedure will be applied again when recreating menus.

  • GiD_RegisterExtensionProc and GiD_UnRegisterExtensionProc

This tcl command must be used to register a procedure that is able to handle when using 'drag and drop' of a file on the GiD window.
It is possible to specify the extension (or a list of extensions) of the files to be handled, the mode PRE or POST where it will be handled, and the name of the callback procedure to be called.
GiD_RegisterExtensionProc <list of extensions> <prepost> <procname>
GiD_UnRegisterExtensionProc <list of extensions> <prepost>
<extension> is the file extension, preceded by a dot
<prepost> could be PRE or POST
The procedure prototype to be registered must expect a single parameter, the dropped file name, something like this.


proc <procname> { filename } {
... do something ...
}


Example:

GiD_RegisterExtensionProc ".gif .png" PRE MyImageProcedure



EXAMPLE: creating and modifying menus
In this example we create a new menu called "New Menu" and we modify the GiD Help menu:

The code to make these changes would be:

GiDMenu::Create "New Menu" "PRE" -1 =
GiDMenu::InsertOption "New Menu" [list "Option 1"] 0 PRE "Command_1" "" "" replace =
GiDMenu::InsertOption "New Menu" [list "Option 2"] 1 PRE "Command_2" "" "" replace =
GiDMenu::InsertOption "New Menu" [list "---"] 2 PRE "" "" "" replace =
GiDMenu::InsertOption "New Menu" [list "Option 3"] 3 PRE "Command_3" "" "" replace =
GiDMenu::InsertOption "Help" [list "My Help"] 1 PRE "" "" "" insert _
GiDMenu::InsertOption "Help" [list "My Help" "My help 1"] 0 PRE "Command_help1" "" "" replace _
GiDMenu::InsertOption "Help" [list "My Help" "My help 2"] 1 PRE "Command_help2" "" "" replace _
GiDMenu::RemoveOption "Help" [list "Customization Help"] PRE _
GiDMenu::RemoveOption "Help" [list "What is new"] PRE _
GiDMenu::RemoveOption "Help" [list "FAQ"] PRE _
GiDMenu::UpdateMenus




  • No labels