Creare menu dinamici personalizzati

Si può definire (o modificare) un (una parte di un) menu con il nome name usando

    (menu-bind name . prog)

e aggiungere nuove voci ad un (ad una parte di un) menu esistente con il nome name usando

    (menu-extend name . prog)

Qui prog è un programma che rappresenta le voci del menu. In particolare, si possono guardare i file nella directory

    $TEXMACS_PATH/progs/menu

per vedere come sono definiti i menu standard di TeXmacs.

Più precisamente, il programma prog in menu-set o menu-append è una lista di voci che possono avere una delle seguenti forme:

    (=> "pulldown menu name" menu-definition)

(-> "pullright menu name" menu-definition)

("entry" action)

–-

(if condition menu-definition)

(link variable)

I costruttori => e -> sono utilizzati per creare dei menu che si aprono verso il basso o verso destra e menu-definition deve contenere un programma che crea il submenu. Il costruttore ("entry" action) crea una voce normale, dove action sarà compilata ed eseguita quando si clicca su entry. Gli elementi del menu possono essere separati usando –-. Il costruttore if è usato per inserire elementi del menu solamente se una certa condition è soddisfatta (per esempio, se ci si trova in modalità matematica).

Infine, se si dichiara un menu name, allora si può utilizzare questo menu indirettamente usando il costruttore link. Questo modo indiretto di dichiarare dei sottomenu ha due vantaggi

I menu principali di TeXmacs sono texmacs-menu, texmacs-popup-menu, texmacs-main-icons, texmacs-context-icons e texmacs-extra-icons. Altri menu standard indiretti sono file-menu, edit-menu, insert-menu, text-menu, paragraph-menu, document-menu, options-menu and help-menu.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".