Eigene dynamische Menüs schreiben

Sie Menüs oder Teile eines Menüs selbst erstellen oder ändern, indem Sie für das Menü mit Namen name den Befehl

    (menu-bind name . prog)

benutzen. Sie können neue Einträge an ein existierendes Menü mit dem Namen name mit dem Befehl

    (menu-extend name . prog)

anhängen. prog ist hier ein Programm, das von dem Menüeintrag repräsentiert wird. Sehen Sie sich die Dateien im Verzeichnis

    progs/menu

um zu sehen, wie die Standard TeXmacs-Menüs definiert sind.

Genauer gesagt, ist das Programm prog in menu-set oder menu-append eine Liste von Einträgen einer der folgenden Formen:

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

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

("entry" action)

–-

(if condition menu-definition)

(link variable)

Die Konstruktoren => und -> werden benutzt, um Pulldown- bzw. Pullright-Menüs zu erzeugen. menu-definition enthält ein Programm, das ein Unter-Menü erstellt. Der Konstruktor ("entry" action) erzeugt einen normalen Eintrag, der action kompiliert und ausführt, wenn man auf den Eintrag entry klickt. Die Einträge können mit –- getrennt werden. Der Konstruktor if wird benutzt, wenn ein Eintrag nur erfolgen soll, wenn eine bestimmte Bedingung condition erfüllt ist, z.B. dass man im mathematischen Modus ist.

Wenn sie ein Menü mit Namen name definiert haben, können Sie dieses Menü indirekt mit dem link Konstruktor verwenden. Das hat für Untermenüs zwei Vorteile:

Die Haupt-TeXmacs-Menüs sind: texmacs-menu, texmacs-popup-menu, texmacs-main-icons, texmacs-context-icons und texmacs-extra-icons. Andere indirekte Standard-Menüs sind: file-menu, edit-menu, insert-menu, text-menu, paragraph-menu, document-menu, options-menu und 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".