Man Scilab

addmenu
Scilab Function

addmenu - interactive button or menu definition

Calling Sequence

addmenu(button [,submenus] [,action])
addmenu(gwin,button [,submenus] [,action])

Parameters

Description

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

Examples


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

See Also

setmenu ,   unsetmenu ,   delmenu ,  

Back