File: //usr/share/jed/lib/menus.sl
public variable Menu_Popups_Loaded = 0;
$1 = "Global";
menu_create_menu_bar ($1);
menu_append_popup ($1, "&File");
menu_append_popup ($1, "&Edit");
menu_append_popup ($1, "M&ode"); % mode-specific
menu_append_popup ($1, "&Search");
menu_append_popup ($1, "&Buffers");
menu_append_popup ($1, "W&indows"); % Emacs uses ESC-w for yank. Keep it
ifnot (_jed_secure_mode)
menu_append_popup ($1, "S&ystem");
menu_append_popup ($1, "&Help");
menu_set_menu_bar_prefix ($1, "F10 key ==> ");
#ifndef IBMPC_SYSTEM
setkey ("select_menubar", "\e[21~"); % F10
# ifdef UNIX
_for (0, 9, 1)
{
% Bind keys F0-F9 to select_menubar.
$1 = ();
setkey ("select_menubar", sprintf ("^(k%d)", $1));
}
#endif
#endif
private define unset_setkey (fun, key)
{
unsetkey (key);
setkey (fun, key);
}
define enable_menu_keys ()
{
#ifdef UNIX
unset_setkey ("select_menubar", "^(k;)");
#else
# ifdef IBMPC_SYSTEM
unset_setkey ("select_menubar", "^@D");
# endif
#endif
unset_setkey ("select_menubar", "\em");
unset_setkey ("@\emF", "\ef");
unset_setkey ("@\emE", "\ee");
unset_setkey ("@\emo", "\eo"); % Mode menu
unset_setkey ("@\emS", "\es");
unset_setkey ("@\emB", "\eb");
unset_setkey ("@\emi", "\ei");
unset_setkey ("@\emH", "\eh");
unset_setkey ("@\emy", "\ey");
#ifdef IBMPC_SYSTEM
unset_setkey ("@\emF", "^@!"); % Alt-F
unset_setkey ("@\emE", "^@^R"); % Alt-E
unset_setkey ("@\emo", "^@^X"); % Alt-O
unset_setkey ("@\emS", "^@^_"); % Alt-S
unset_setkey ("@\emB", "^@0"); % Alt-B
unset_setkey ("@\emi", "^@^W"); % Alt-I
unset_setkey ("@\emH", "^@#"); % Alt-H
unset_setkey ("@\emy", "^@^U"); % Alt-Y
#endif
}
enable_menu_keys ();
private variable Active_Mode = NULL;
private define init_mode_callback (menu)
{
variable fun;
variable mode;
mode = get_mode_name ();
if (mode == Active_Mode)
return;
Active_Mode = mode;
menu += ".M&ode";
menu_delete_items (menu);
fun = mode_get_mode_info ("init_mode_menu");
if (fun == NULL)
{
menu_set_object_available (menu, 0);
return;
}
menu_set_object_available (menu, 1);
@fun (menu);
}
autoload ("menu_load_popups", "popups");
menu_set_init_menubar_callback ("Global", &init_mode_callback);
menu_set_select_menubar_callback ("Global", &menu_load_popups);