Scilab Reference Manual |
---|
addmenu — interactive button or menu definition
addmenu(button [,submenus] [,action]) addmenu(gwin,button [,submenus] [,action])
button | : a character string. The button name. On Windows operating systems (not X_window), an & can be placed before the character in the name to be used for keyboard shortcut; this character will be underlined on the GUI. | ||||||||||
submenus | : a vector of character string. The sub_menus items names | ||||||||||
action | : a list with 2 elements action=list(flag,proc_name)
| ||||||||||
gwin | : integer. The number of graphic window where the button is required to be installed |
The function allows the user to add new buttons or menus in the main window or graphics windows command panels.
If | action argument is not given the action associated with a button must be defined by a scilab instruction given by the character string variable which name is + button for a main window command + button_gwin for a graphic window command |
If | action argument is set to 0 proc_name should be the name of a Scilab string vector. Actions associated with the kth sub_menu must be defined by scilab instructions stored in the kth element of the character string variable. |
If | action argument is set to 1 proc_name designes a C or Fortran procedure, this procedure may be interfaced in Fortran subroutine default/fbutn.f or dynamically linked with scilab using the link function. The C calling sequence is: (char* button_name, int* gwin,int *k) |
If | action argument is set to 2 proc_name designes a Scilab function. This function calling sequence should be: + proc_name(k)for a main window command + proc_name(k,gwin)for a graphic window command or a main window command |
addmenu('foo') foo='disp(''hello'')' addmenu('Hello',['Franck';'Peter']) Hello=['disp(''hello Franck'')';'disp(''hello Peter'')'] addmenu(0,'Hello',['Franck';'Peter']) Hello_0=['disp(''hello Franck'')';'disp(''hello Peter'')'] addmenu('Bye',list(0,'French_Bye')) French_Bye='disp(''Au revoir'')' //C defined Callback // creating Callback code code=[ '#include ""machine.h""' 'void foo(char *name,int *win,int *entry)' '{' ' if (*win==-1) ' ' sciprint(""menu %s(%i) in Scilab window selected\r\n"",name,*entry+1);' ' else' ' sciprint(""menu %s(%i) in window %i selected\r\n"",name,*entry+1,*win);' '}']; //creating foo.c file dir=getcwd(); chdir(TMPDIR) mputl(code,TMPDIR+'/foo.c'); //reating Makefile ilib_for_link('foo','foo.o',[],'c'); exec('loader.sce'); chdir(dir); //add menu addmenu('foo',['a','b','c'],list(1,'foo'))
<< Gui | delmenu >> |