addmenu - interactive button or menu definition
The function allows the user to add new buttons or menus in the main window or graphics windows command panels.
+ button for a main window command
+ button_gwin for a graphic window command
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.
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)
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'))