Home AESAES MagiC FunktionenMagiC Funktionen ObjektfunktionenObjektfunktionen

8.17 Menüfunktionen

Diese Bibliothek stellt Funktionen zur Verfügung um Menüzeilen zu zeichnen und zu manipulieren; für diesen Zweck sind die folgenden Routinen vorhanden:

menu_attach Hinzufügen, verändern, löschen eines Submenüs
menu_bar Behandlung der Menüleiste
menu_click Behandlung von Pull-Down-Menüs
menu_icheck Häkchen bei Menüoptionen setzen oder löschen
menu_ienable Menüeintrag sperren oder freigeben
menu_istart Ausrichten eines Submenü-Eintrages
menu_popup Darstellung und Bearbeitung eines Popup-Menüs
menu_register Accessory im Desk-Menü eintragen
menu_settings Menüparameter setzen bzw. abfragen
menu_text Text eines Menüeintrages verändern
menu_tnormal Menütitel invertieren
menu_unregister Accessory-Namen aus dem Menü entfernen

Hinweis: Ab AES-Version 4.0 (bzw. MagiC 3) wurde diese Bibliothek stark überarbeitet, und übernimmt nun auch die Darstellung und Verwaltung von Popup- und Submenüs.

Querverweis: Menüs und Menüzeilen   Style-Guidelines   XMEN_MGR

8.17.1 menu_attach

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
 

8.17.1.1 Bindings für menu_attach

C: int16_t menu_attach ( int16_t mode, OBJECT *tree, int16_t item, MENU *mdata );
 
Umsetzung:
 
int16_t menu_attach (int16_t mode, OBJECT *tree, int16_t item,
                     MENU *mdata)
{
   int_in[0]  = mode;
   int_in[1]  = item;
   addr_in[0] = tree;
   addr_in[1] = mdata;

   return ( crys_if(37) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 37 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 2 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] mode
int_in+2 int_in[1] item
addr_in addr_in[0] tree
addr_in+4 addr_in[1] mdata
int_out int_out[0] Return-Wert

8.17.2 menu_bar

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
 

8.17.2.1 Bindings für menu_bar

C: int16_t menu_bar ( OBJECT *me_btree, int16_t me_bshow );
 
Umsetzung:
 
int16_t menu_bar (OBJECT *me_btree, int16_t me_bshow)
{
   int_in[0]  = me_bshow;
   addr_in[0] = me_btree;

   return ( crys_if(30) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 30 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_bshow
addr_in addr_in[0] me_btree
int_out int_out[0] Return-Wert

8.17.3 menu_click

Name: »Menu click« - Art der Menüsteuerung setzen bzw. erfragen
 
AES-Nummer: 37
 
Deklaration: int16_t menu_click ( int16_t click, int16_t setit );
 
Beschreibung: Mit Hilfe dieser Funktion ist es möglich die Behandlung der Drop-Down-Menüs auf die vom Macintosh bekannten Pull-Down-Menüs umzustellen. Es gilt:
 
Parameter Bedeutung
   
click
0 = Dropdown
1 = Pulldown
setit
0 = Menüsteuerung abfragen
1 = Menüsteuerung setzen
Ergebnis: Die Funktion liefert die eingestellte Menüsteuerung zurück (0 = Dropdown, 1 = Pulldown).
 
Verfügbar: Auf dem PC steht diese Funktion erst ab GEM/3 und KAOS 1.4.2 und MagiC zur Verfügung; auf dem Atari sollte das Vorhandensein per appl_getinfo (Opcode 5) ermittelt werden.
 
Gruppe: Menüs
 
Querverweis: Binding
 

8.17.3.1 Bindings für menu_click

C: int16_t menu_click ( int16_t click, int16_t setit );
 
Umsetzung:
 
int16_t menu_click (int16_t click, int16_t setit)
{
   int_in[0] = click;
   int_in[1] = setit;

   return ( crys_if(37) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 37 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 0 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] click
int_in+2 int_in[1] setit
int_out int_out[0] Return-Wert

8.17.4 menu_icheck

Name: »Menu indicate Check« - schreibt oder löscht ein Häckchen in der Menüleiste.
 
AES-Nummer: 31
 
Deklaration: int16_t menu_icheck ( OBJECT *me_ctree, int16_t me_citem, int16_t me_ccheck );
 
Beschreibung: Die Funktion löscht oder setzt ein Häkchen vor einem Menüeintrag. Es gilt:
 
Parameter Bedeutung
   
me_ctree Adresse des Menü-Objektbaumes
me_citem Nummer des Menüeintrages
me_ccheck
0 = Häkchen löschen
1 = Häkchen setzen

Hinweis: Aus optischen Gründen sollte man jeden Eintrag eines Menüs mit zwei Leerzeichen beginnen lassen. Ab PC-GEM 2.0 werden statt des Häkchens kleine Dreiecke für diesen Zweck verwendet.
 
Ergebnis: Bei einem Rückgabewert von Null ist ein Fehler aufgetreten.
 
Verfügbar: All AES versions.
 
Gruppe: Menüs
 
Querverweis: Binding   OBJECT
 

8.17.4.1 Bindings für menu_icheck

C: int16_t menu_icheck ( OBJECT *me_ctree, int16_t me_citem, int16_t me_ccheck );
 
Umsetzung:
 
int16_t menu_icheck (OBJECT *me_ctree, int16_t me_citem,
                     int16_t me_ccheck)
{
   int_in[0]  = me_citem;
   int_in[1]  = me_ccheck;
   addr_in[0] = me_ctree;

   return ( crys_if(31) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 31 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_citem
int_in+2 int_in[1] me_ccheck
addr_in addr_in[0] me_ctree
int_out int_out[0] Return-Wert

8.17.5 menu_ienable

Name: »Menu indicate enable« - aktiviert oder deaktiviert einen Menüpunkt.
 
AES-Nummer: 32
 
Deklaration: int16_t menu_ienable ( OBJECT *me_etree, int16_t me_eitem, int16_t me_eenable );
 
Beschreibung: Die Funktion schaltet Menüeinträge ein oder aus. Es gilt:
 
Parameter Bedeutung
   
me_etree Adresse des Menü-Objektbaumes
me_eitem Nummer des Menüeintrages
me_eenable
0 = Menü deaktivieren
1 = Menü aktivieren
Ergebnis: Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0 zurückgegeben wird.
 
Verfügbar: All AES versions.
 
Gruppe: Menüs
 
Querverweis: Binding   OBJECT
 

8.17.5.1 Bindings für menu_ienable

C: int16_t menu_ienable ( OBJECT *me_etree, int16_t me_eitem, int16_t me_eenable );
 
Umsetzung:
 
int16_t menu_ienable (OBJECT *me_etree, int16_t me_eitem,
                      int16_t me_eenable)
{
   int_in[0]  = me_eitem;
   int_in[1]  = me_eenable;
   addr_in[0] = me_etree;

   return ( crys_if(32) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 32 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_eitem
int_in+2 int_in[1] me_eenable
addr_in addr_in[0] me_etree
int_out int_out[0] Return-Wert

8.17.6 menu_istart

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
 

8.17.6.1 Bindings für menu_istart

C: int16_t menu_istart ( int16_t flag, OBJECT *tree, int16_t imenu, int16_t item );
 
Umsetzung:
 
int16_t menu_istart (int16_t flag, OBJECT *tree,
                     int16_t imenu, int16_t item)
{
   int_in[0]  = flag;
   int_in[1]  = imenu;
   int_in[2]  = item;
   addr_in[0] = tree;

   return ( crys_if(38) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 38 # Opcode der Funktion
control+2 control[1] 3 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] flag
int_in+2 int_in[1] imenu
int_in+4 int_in[2] item
addr_in addr_in[0] tree
int_out int_out[0] Return-Wert

8.17.7 menu_popup

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
 

8.17.7.1 Bindings für menu_popup

C: int16_t menu_popup ( MENU *me_menu, int16_t me_xpos, int16_t me_ypos, MENU *me_mdata );
 
Umsetzung:
 
int16_t menu_popup (MENU *me_menu, int16_t me_xpos,
                   int16_t me_ypos, MENU *me_mdata)
{
   int_in[0]  = me_xpos;
   int_in[1]  = me_ypos;
   addr_in[0] = me_menu;
   addr_in[1] = me_mdata;

   return ( crys_if(36) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 36 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 2 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_xpos
int_in+2 int_in[1] me_ypos
addr_in addr_in[0] me_menu
addr_in+4 addr_in[1] me_mdata
int_out int_out[0] Return-Wert

8.17.8 menu_register

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
 

8.17.8.1 Bindings für menu_register

C: int16_t menu_register ( int16_t me_rapid, CONST int8_t *me_rpstring );
 
Umsetzung:
 
int16_t menu_register (int16_t me_rapid,
                       CONST int8_t *me_rpstring)
{
   int_in[0]  = me_rapid;
   addr_in[0] = me_rpstring;

   return ( crys_if(35) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 35 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_rapid
addr_in addr_in[0] me_rpstring
int_out int_out[0] Return-Wert

8.17.9 menu_settings

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
0 = abfragen
1 = setzen
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
 

8.17.9.1 Bindings für menu_settings

C: int16_t menu_settings ( int16_t me_flag, MN_SET *me_values );
 
Umsetzung:
 
int16_t menu_settings (int16_t me_flag, MN_SET *me_values)
{
   int_in[0]  = me_flag;
   addr_in[0] = me_values;

   return ( crys_if(39) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 39 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_flag
addr_in addr_in[0] me_values
int_out int_out[0] Return-Wert

8.17.10 menu_text

Name: »Menu Text« - ersetzt den Text eines Menüeintrags.
 
AES-Nummer: 34
 
Deklaration: int16_t menu_text ( OBJECT *me_ttree, int16_t me_titem, CONST int8_t *me_ttext );
 
Beschreibung: Die Funktion ändert den Text in einem Menüeintrag. Auf diese Art können Menütexte vom Zustand der Applikation abhängig gemacht, d.h. kontext-sensitiv gestaltet werden. Es gilt:
 
Parameter Bedeutung
   
me_ttree Adresse des Menü-Objektbaumes
me_titem Nummer des zu ändernden Menüeintrages
me_ttext Adresse des neuen Eintrags

Wichtig: Der Parameter me_ttext wird von GEM nur als Zeiger benutzt; es wird also keine Kopie des neuen Eintrags angelegt. Ferner sollte man darauf achten, daß der neue Eintrag die Länge des alten nicht überschreitet.
 
Ergebnis: Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0 zurückgegeben wird.
 
Verfügbar: All AES versions.
 
Gruppe: Menüs
 
Querverweis: Binding   OBJECT
 

8.17.10.1 Bindings für menu_text

C: int16_t menu_text ( OBJECT *me_ttree, int16_t me_titem, CONST int8_t *me_ttext );
 
Umsetzung:
 
int16_t menu_text (OBJECT *me_ttree, int16_t me_titem,
                   CONST int8_t *me_ttext)
{
   int_in[0]  = me_titem;
   addr_in[0] = me_ttree;
   addr_in[1] = me_ttext;

   return ( crys_if(34) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 34 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 2 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_titem
addr_in addr_in[0] me_ttree
addr_in+4 addr_in[1] me_ttext
int_out int_out[0] Return-Wert

8.17.11 menu_tnormal

Name: »Menu Text normal« - stellt einen Menütitel invers oder normal dar.
 
AES-Nummer: 33
 
Deklaration: int16_t menu_tnormal ( OBJECT *me_ntree, int16_t me_ntitle, int16_t me_nnormal );
 
Beschreibung: Die Funktion invertiert einen Menütitel. Es gilt:
 
Parameter Bedeutung
   
me_ntree Adresse des Menü-Objektbaumes
me_ntitle Nummer des Menütitels
me_nnormal
0 = Menü invers darstellen
1 = Menü normal darstellen
Ergebnis: Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0 zurückgegeben wird.
 
Verfügbar: All AES versions.
 
Gruppe: Menüs
 
Querverweis: Binding
 

8.17.11.1 Bindings für menu_tnormal

C: int16_t menu_tnormal ( OBJECT *me_ntree, int16_t me_ntitle, int16_t me_nnormal );
 
Umsetzung:
 
int16_t menu_tnormal (OBJECT *me_ntree, int16_t me_ntitle,
                      int16_t me_nnormal)
{
   int_in[0]  = me_ntitle;
   int_in[1]  = me_nnormal;
   addr_in[0] = me_ntree;

   return ( crys_if(33) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 33 # Opcode der Funktion
control+2 control[1] 2 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] me_ntitle
int_in+2 int_in[1] me_nnormal
addr_in addr_in[0] me_ntree
int_out int_out[0] Return-Wert

8.17.12 menu_unregister

Name: »Menu unregister« - Accessory Namen aus Menü entfernen
 
AES-Nummer: 36
 
Deklaration: int16_t menu_unregister ( int16_t mid );
 
Beschreibung: Die Funktion erlaubt es einem Accessorie, seinen Namen wieder aus der Menüzeile zu entfernen.
 
Der Parameter mid ist die Applikations-ID des entsprechenden Accessories.
 
Ergebnis: z.Zt. unbekannt.
 
Verfügbar: Die Funktion steht nur unter PC-GEM ab 2.0, KAOS ab 1.4.2 und MagiC zur Verfügung.
 
Gruppe: Menüs
 
Querverweis: Binding   menu_register
 

8.17.12.1 Bindings für menu_unregister

C: int16_t menu_unregister ( int16_t mid );
 
Umsetzung:
 
int16_t menu_unregister (int16_t mid)
{
   int_in[0] = mid;
   return ( crys_if(36) );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
control control[0] 36 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 0 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
int_in int_in[0] mid
int_out int_out[0] Return-Wert

Home AESAES MagiC FunktionenMagiC Funktionen ObjektfunktionenObjektfunktionen