|  |  |  | 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 >> |