Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2025.0.0 - English


addmenu

interactive button or menu definition

Syntax

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

Arguments

button

a character string. The button name. An & can be placed before the character in the name to be used for keyboard shortcut; this character will be underlined on the GUI. Under MacOSX, a sub-menu with the same name is automatically added (no button can be added to the menu bar).

submenus

a vector of character string. The sub_menus items names

action

a list with 2 elements action=list(flag,proc_name)

flag

an integer (default value is 0)

flag==0

the action is defined by a scilab instruction

flag==1

the action is defined by a C or Fortran procedure

flag==2

the action is defined by a scilab function

proc_name

a character string which gives the name of scilab variable containing the instruction or the name of procedure to call.

gwin

integer. The number of graphic window where the button is required to be installed

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 syntax is: (char* button_name, int* gwin,int *k)

If

action argument is set to 2 proc_name designes a Scilab function. This function syntax 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

if (getscilabmode() == "STD") then
    addmenu('foo');
    foo = 'disp(''hello'')';

    addmenu('Hello',['Franck';'Peter'])
    Hello = ['disp(''hello Franck'')';'disp(''hello Peter'')'];

    addmenu('Bye',list(0,'French_Bye'));
    French_Bye = 'disp(''Au revoir'')';

    addmenu(0,'Hello',['Franck';'Peter']);
    Hello_0 = ['disp(''hello Franck'')';'disp(''hello Peter'')'];

    //C defined Callback
    // creating Callback code
    code=[ '#include ""machine.h""'
    '#include ""sciprint.h""'
    'void foo(char *name, int *win, int *entry)'
    '{'
    '  if (*win==-1) '
    '    sciprint(""menu %s(%i) in Scilab window selected.\n"", name, *entry+1);'
    '  else'
    '    sciprint(""menu %s(%i) in window %i selected.\n"", name, *entry+1, *win);'
    '}'];
    //creating foo.c file
    current_dir = pwd();
    chdir(TMPDIR);
    mputl(code, TMPDIR+'/foo.c');
    //creating Makefile
    ilib_for_link('foo','foo.c',[],'c');
    exec('loader.sce');
    chdir(current_dir);
    //add menu
    addmenu(0,'foo',['a','b','c'],list(1,'foo'));
else
    mprintf('This example requires to use scilab with GUI mode.\n');
end

See also

  • setmenu — interactive button or menu activation
  • unsetmenu — interactive button or menu or submenu de-activation
  • delmenu — interactive button or menu deletion
Report an issue
<< Menus Menus delmenu >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 24 11:13:10 CEST 2024