Diese Bibliothek stellt Funktionen zur Verfügung um Menüzeilen
zu zeichnen und zu manipulieren; für diesen Zweck sind die folgenden
Routinen vorhanden:
Name: |
»Menu Attach« - Hinzufügen, löschen, verändern und
Informationen über ein Submenü ermitteln.
|
AES-Nummer: |
37
|
Deklaration: |
int16_t menu_attach ( int16_t mode, OBJECT *tree, int16_t item,
MENU *mdata );
|
Beschreibung: |
Die Funktion ermöglicht das hinzufügen, löschen und
verändern eines Submenüs. Darüber hinaus lassen sich Informationen
über ein Submenü ermitteln. Es gilt:
Parameter |
Bedeutung
|
|
|
mode |
gewünschte Aktion
0 = |
Information über ein Submenü ermitteln und in mdata ablegen.
|
1 = |
Hinzufügen oder verändern eines Submenüs, dessen
Beschreibung in mdata abgelegt ist. Besitzt mdata den Wert NULL, so
wird das Submenü entfernt.
|
2 = |
Direktes entfernen eines Submenüs; mdata sollte ein
NULL-Zeiger sein
|
|
tree |
Adresse des Menü-Objektbaumes
|
item |
Index des Objektes, mit dem das Submenü verknüpft ist (oder
werden soll) bzw. von dem das Submenü entfernt oder verändert werden
soll
|
mdata |
MENU-Struktur des Submenüs
|
Hinweis:
Nach Möglichkeit sollte nicht mehr als eine
Submenü-Ebene zu einem Menüeintrag angelegt werden, obwohl bis zu
vier Ebenen unterstützt werden. Die Anzahl der Submenüs pro
Menü ist auf 64 begrenzt.
|
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert
0 zurückgegeben wird.
|
Verfügbar: |
Diese Funktion ist nur verfügbar seit AES Version 3.30 und
höher. In AES Version 4.0 und größer sollte appl_getinfo (Opcode 9)
benutzt werden ob der Aufruf möglich ist.
|
Gruppe: |
Menüs
|
Querverweis: |
Binding menu_istart menu_settings menu_popup XMEN_MGR
|
Name: |
»Menu Bar« - Menüleiste zeigen, löschen bzw. installieren.
|
AES-Nummer: |
30
|
Deklaration: |
int16_t menu_bar ( OBJECT *me_btree, int16_t me_bshow );
|
Beschreibung: |
Die Funktion führt abhängig vom Parameter me_bshow
verschiedenen Operationen aus:
me_bshow |
Bedeutung
|
|
|
-3 |
Low-Word der Menüleiste einer Applikation erfragen.
|
-2 |
High-Word der Menüleiste einer Applikation erfragen.
|
-1 |
den Besitzer (Applikation) der Menüzeile erfragen. Da diese
laufend wechseln kann, muß zur sicheren Abfrage der Bildschirm per
wind_update gesperrt werden.
|
0 |
Menüzeile löschen
|
1 |
Menüzeile zeichnen
|
3 |
Menüleistenmodus abfragen (N.AES)
|
4 |
Menüleistenmodus setzen (N.AES, nicht implementiert)
|
5 |
Update des Systemteils d. Menüleiste (N.AES)
|
100 |
Menüzeile installieren, ohne eine Umschaltung der obersten
Applikation zu erzwingen.
|
Definitionen:
MENU_HIDE = 0
MENU_SHOW = 1
MENU_GETMODE = 3
MENU_SETMODE = 4
MENU_UPDATE = 5
MENU_INSTL = 100
Menüleistenmodus:
MENU_HIDDEN = 0x0001 Menüleiste nur bei Bedarf sichtbar
MENU_PULLDOWN = 0x0002 Pulldown-Menüs
MENU_SHADOWED = 0x0004 Menüleistenboxen mit Schatten
Hinweis: Der Parameter me_btree ist ein Zeiger
auf den Objektbaum des entsprechenden Menüs. Am Ende des Programms
darf nicht vergessen werden, die Menüzeile wieder abzumelden.
Mit menu_bar(-2/-3) kann die Baumadresse der Menüleiste einer
Applikation erfragen. menu_bar(-2) liefert das High-Word und
menu_bar(-3) das Low-Word. Nur Verfügbar wenn der Cookie 'MbAr' oder
'AmAN' vorhanden ist.
OBJECT *get_menu(int apid)
{
unsigned int hi = menu_bar((OBJECT *)apid, -2);
unsigned int lo = menu_bar((OBJECT *)apid, -3);
OBJECT *tree = (OBJECT *)(((unsigned long)hi << 16) | lo);
return tree;
}
Das Vorhandensein der erweiterten Möglichkeiten ist über die
Funktion appl_getinfo (Opcode 6) abfragbar.
|
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. Ein Wert von -1 signalisiert, daß es keinen
Eigner der Menüzeile gibt.
|
Verfügbar: |
All AES versions.
|
Gruppe: |
Menüs
|
Querverweis: |
Binding OBJECT
|
Name: |
»Menu istart« - ausrichten eines Submenü-Eintrages
|
AES-Nummer: |
38
|
Deklaration: |
int16_t menu_istart ( int16_t flag, OBJECT *tree, int16_t
imenu, int16_t item );
|
Beschreibung: |
Die Funktion ermöglicht die Ausrichtung eines Submenü-Eintrages
auf die Höhe des entsprechenden Eintrags des (Haupt-) Menüs. Es
gilt:
Parameter |
Bedeutung
|
|
|
flag |
1 = Ausrichtung vornehmen
|
tree |
Adresse des Menü-Objektbaumes
|
imenu |
Index des Submenü-Eintrags, der ausgerichtet werden soll
|
item |
Index des Menüeintrags, mit welchem das Submenü verknüpft
werden soll
|
|
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert
0 zurückgegeben wird.
|
Verfügbar: |
This function is only available with AES versions 3.30 and
above.
Das Vorhandensein dieser Funktion kann über einen Aufruf von
appl_getinfo (Opcode 9) festgestellt werden.
|
Gruppe: |
Menüs
|
Querverweis: |
Binding menu_attach XMEN_MGR
|
Name: |
»Menu Popup« - übernimmt die Darstellung und Abarbeitung
eines Popup-Menüs
|
AES-Nummer: |
36
|
Deklaration: |
int16_t menu_popup ( MENU *me_menu, int16_t me_xpos, int16_t
me_ypos, MENU *me_mdata );
|
Beschreibung: |
Die Funktion übernimmt die Darstellung und Bearbeitung eines
Popup-Menüs. Es gilt:
Parameter |
Bedeutung
|
|
|
me_menu |
Zeiger auf die Struktur des Popups
|
me_xpos |
x-Koordinate des Menüs
|
me_ypos |
y-Koordinate des Menüs
|
me_mdata |
Zeiger auf die Daten des selektierten Menüeintrages.
|
Wenn mn_scroll von MENU auf 0 gesetzt ist wenn
menu_popup aufgerufen wird, wird ein nicht scrollbares Popup-Menü
angezeigt.
Wenn mn_scroll von MENU auf >0 gesetzt ist wenn
menu_popup aufgerufen wird, wird ein scrollbares Popup-Menü
angezeigt; der Wert height von MN_SET bestimmt seine Höhe in
Elementen (beachten Sie, dass Ataris AES Auf-/Ab-Pfeile innerhalb des
Popups zum Scrollen implementiert, um das gleiche Erscheinungsbild von
Dropdown-Menüs beizubehalten, wie sie an Menüleistenelemente
angehängt werden können; beachten Sie, dass NAES genau dieses
Verhalten nachahmt). Siehe auch menu_settings.
Ab AES Version 4.1 wird, wenn mn_scroll von MENU auf
-1 gesetzt ist wenn menu_popup aufgerufen wird, ein
Dropdown-Listenfeld statt eines Popup-Menüs angezeigt; dieses
verfügt über eine Bildlaufleiste, wenn acht oder mehr Einträge
vorhanden sind.
|
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert
0 zurückgegeben wird.
|
Verfügbar: |
Diese Funktion ist nur verfügbar seit AES Version 3.30 und
höher.
Das Vorhandensein dieser Funktion kann über einen Aufruf von
appl_getinfo (Opcode 9) festgestellt werden.
|
Gruppe: |
Menüs
|
Querverweis: |
Binding menu_settings XMEN_MGR
|
Name: |
»Menu Register« - fügt ein Accessory im Accessorymenü ein.
|
AES-Nummer: |
35
|
Deklaration: |
int16_t menu_register ( int16_t me_rapid, CONST int8_t
*me_rpstring );
|
Beschreibung: |
Die Funktion trägt den Namen eines Accessories im
Accessory-Menü ein, oder ändert diesen. Es gilt:
Parameter |
Bedeutung
|
|
|
me_rapid |
Applikations-ID des Accessories oder -1, um den Namen der
Applikation zu verändern.
|
me_rpstring |
Adresse des Textes für den Menüeintrag
|
Obwohl das Verändern des Namens der Applikation erst ab AES
4.0 dokumentiert ist, scheint dieses Feature in allen TOS-Versionen zu
funktionieren.
Wichtig: Der Parameter me_rpstring wird von GEM
nur als Zeiger benutzt; es wird also keine Kopie des neuen Eintrags
angelegt. Der Funktionsaufruf wird erst dann wirksam, wenn das
entsprechende Hauptprogramm einen menu_bar Aufruf tätigt. Daher
sollten Accessories diese Funktion gleich nach dem Start aufrufen,
anderenfalls laufen sie Gefahr, das menu_bar des Desktops zu verpassen.
Ist der Cookie 'MbAr' oder 'AmAN' vorhanden kann per
menu_register(-1,"?\0\n") die Applikations-ID ermittelt
werden. wobei n die ID des fraglichen Accessories angibt. Der
Rückgabewert stellt dann die menu_id (oder -1) dar.
|
Ergebnis: |
Die Funktion liefert die Menü-Kennung für das Accessory, oder
(im Fehlerfall) den Wert -1.
|
Verfügbar: |
All AES versions.
|
Gruppe: |
Menüs
|
Querverweis: |
Binding menu_bar menu_unregister
|
Name: |
»Menu Settings« - Parameter für Popup/Submenüs setzen bzw.
abfragen.
|
AES-Nummer: |
39
|
Deklaration: |
int16_t menu_settings ( int16_t me_flag, MN_SET *me_values );
|
Beschreibung: |
Die Funktion ermöglicht die Manipulation der Parameter für
Popup- und Submenüs. Es gilt:
Parameter |
Bedeutung
|
|
|
me_flag |
Parameter
|
me_values |
Zeiger auf MN_SET-Struktur
|
Hinweis: Die durch das Setzen vorgenommenen
Einstellungen gelten nicht nur für das eigene Programm, sondern für
das ganze System. Aus diesem Grund sollte die Funktion in normalen
Anwenderprogrammen nicht benutzt werden, sondern nur in
Konfigurations-Programmen (z.B. CPX-Modulen) zum Einsatz kommen.
|
Ergebnis: |
Die Funktion liefert stets den Wert 1 zurück.
|
Verfügbar: |
Diese Funktion ist nur verfügbar seit AES Version 3.30 und
höher.
Das Vorhandensein dieser Funktion kann über einen Aufruf von
appl_getinfo (Opcode 9) festgestellt werden.
|
Gruppe: |
Menüs
|
Querverweis: |
Binding menu_popup XMEN_MGR
|