From 7ba87b7b54e16e419e8de6f644b03a8cd331a000 Mon Sep 17 00:00:00 2001 From: Thorsten Otto Date: Fri, 12 Jul 2024 14:37:21 +0200 Subject: [PATCH] Clarify scrolling submenu behavior Contributed by Lonny Pursell. --- gem/aes/menu_/menu_attach.ui | 6 +-- gem/aes/menu_/menu_popup.ui | 67 ++++++++++++++++++++++++---------- gem/aes/menu_/menu_settings.ui | 4 +- gem/aes/structures/menu.ui | 5 ++- 4 files changed, 56 insertions(+), 26 deletions(-) diff --git a/gem/aes/menu_/menu_attach.ui b/gem/aes/menu_/menu_attach.ui index 24d5c5fbe..30583f677 100644 --- a/gem/aes/menu_/menu_attach.ui +++ b/gem/aes/menu_/menu_attach.ui @@ -167,9 +167,9 @@ Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert 0 zurckgegeben wird. !item [Verfgbar:] -Diese Funktion ist nur Verfgbar seit AES Version 3.30 und -h”her. In AES Version 4.0 und gr”žer sollte (!link [appl_getinfo][%apgi_9]) -(Opcode 9) benutzt werden ob er Aufruf m”glich ist. +Diese Funktion ist nur verf(!uumlaut)gbar seit AES Version 3.30 und +h(!oumlaut)her. In AES Version 4.0 und gr(!oumlaut)žer sollte (!link [appl_getinfo][%apgi_9]) +(Opcode 9) benutzt werden ob der Aufruf m(!oumlaut)glich ist. !item [Gruppe:] (!link [Mens][Menfunktionen]) diff --git a/gem/aes/menu_/menu_popup.ui b/gem/aes/menu_/menu_popup.ui index fce5fe263..42c74c979 100644 --- a/gem/aes/menu_/menu_popup.ui +++ b/gem/aes/menu_/menu_popup.ui @@ -33,14 +33,25 @@ Y-coordinate of the menu's top left corner Pointer to the data of the selected menu entry !end_xlist +If (!I)mn_scroll(!i) of MENU is set to 0 when menu_popup is called, a +non-scrollable popup menu will be displayed. + +if (!I)mn_scroll(!i) of MENU is set to >0 when menu_popup is called, a +scrolling popup menu will be displayed; height of MN_SET determines +it's height in items (note that Atari's AES implements up/down arrows +within the popup for scrolling to maintain the same look and feel of +dropdown menus as they can be attached to menubar items, note that NAES +mimics this exact behavior). See also menu_settings. + +As of (!nolink [AES]) version 4.1, if (!I)mn_scroll(!i) of MENU is set to -1 +when menu_popup is called, a dropdown list box instead of a popup menu will be +displayed; this will have a scroll bar if eight entries or more exist. + !item [(!nolink [Return]) value:] An error has arisen only if the value 0 is returned. !item [Availability:] This function is available only with (!nolink [AES]) versions 3.30 and above. -As of (!nolink [AES]) version 4.1, if (!I)mn_scroll(!i) of MENU is set to -1 -when menu_popup is called, a dropdown list box instead of a popup menu will be -displayed; this will have a scroll bar if eight entries or more exist. The presence of this function can be ascertained by a call of (!link [appl_getinfo][%apgi_9]) (opcode 9). @@ -106,7 +117,7 @@ int_out !! int_out[0] !! Return value (!begin_liste) [Beschreibung] !item [Name:] -¯Menu (!nolink [Popup])® - bernimmt die Darstellung und Abarbeitung eines (!nolink [Popup])-Mens +¯Menu (!nolink [Popup])® - (!uumlaut)bernimmt die Darstellung und Abarbeitung eines (!nolink [Popup])-Men(!uumlaut)s !item [AES-Nummer:] 36 @@ -116,7 +127,7 @@ int16_t menu_popup ( MENU *me_menu, int16_t me_xpos, int16_t me_ypos, MENU *me_mdata ); !item [Beschreibung:] -Die Funktion bernimmt die Darstellung und Bearbeitung eines (!nolink [Popup])-Mens. Es +Die Funktion (!uumlaut)bernimmt die Darstellung und Bearbeitung eines (!nolink [Popup])-Men(!uumlaut)s. Es gilt: !begin_xlist !compressed [Parameter] @@ -127,35 +138,51 @@ Bedeutung !item [me_menu] Zeiger auf die Struktur des (!link [Popups][MENU]) !item [me_xpos] -x-Koordinate des Mens +x-Koordinate des Men(!uumlaut)s !item [me_ypos] -y-Koordinate des Mens +y-Koordinate des Men(!uumlaut)s !item [me_mdata] -Zeiger auf die Daten des selektierten Meneintrages. +Zeiger auf die Daten des selektierten Men(!uumlaut)eintrages. !end_xlist +Wenn (!I)mn_scroll(!i) von MENU auf 0 gesetzt ist wenn menu_popup +aufgerufen wird, wird ein nicht scrollbares Popup-Men(!uumlaut) angezeigt. + +Wenn (!I)mn_scroll(!i) von MENU auf >0 gesetzt ist wenn menu_popup +aufgerufen wird, wird ein scrollbares Popup-Men(!uumlaut) angezeigt; der Wert (!I)height(!i) von +MN_SET bestimmt seine H(!oumlaut)he in Elementen (beachten Sie, dass Ataris AES +Auf-/Ab-Pfeile innerhalb des Popups zum Scrollen implementiert, um das +gleiche Erscheinungsbild von Dropdown-Men(!uumlaut)s beizubehalten, wie sie an +Men(!uumlaut)leistenelemente angeh(!aumlaut)ngt werden k(!oumlaut)nnen; beachten Sie, dass NAES +genau dieses Verhalten nachahmt). Siehe auch menu_settings. + +Ab (!nolink [AES]) Version 4.1 wird, wenn (!I)mn_scroll(!i) von MENU +auf -1 gesetzt ist wenn menu_popup aufgerufen wird, ein +Dropdown-Listenfeld statt eines Popup-Men(!uumlaut)s angezeigt; dieses verf(!uumlaut)gt +(!uumlaut)ber eine Bildlaufleiste, wenn acht oder mehr Eintr(!aumlaut)ge vorhanden sind. + !item [Ergebnis:] Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert 0 -zurckgegeben wird. +zur(!uumlaut)ckgegeben wird. -!item [Verfgbar:] -This function is only available with AES versions 3.30 and -above. +!item [Verf(!uumlaut)gbar:] +Diese Funktion ist nur verf(!uumlaut)gbar seit (!nolink [AES]) Version 3.30 und +h(!oumlaut)her. -Das Vorhandensein dieser Funktion kann ber einen Aufruf +Das Vorhandensein dieser Funktion kann (!uumlaut)ber einen Aufruf von (!link [appl_getinfo][%apgi_9]) (Opcode 9) festgestellt werden. !item [Gruppe:] -(!link [Mens][Menfunktionen]) +(!link [Men(!uumlaut)s][Men(!uumlaut)funktionen]) !item [Querverweis:] -(!link [Binding] [Bindings fr menu_popup]) ~ menu_settings ~ XMEN_MGR +(!link [Binding] [Bindings f(!uumlaut)r menu_popup]) ~ menu_settings ~ XMEN_MGR (!ende_liste) -!begin_node Bindings fr menu_popup +!begin_node Bindings f(!uumlaut)r menu_popup !ignore_index (!begin_liste) [GEM-Arrays] @@ -183,10 +210,10 @@ int16_t menu_popup (MENU *me_menu, int16_t me_xpos, Adresse !! Feldelement !! Belegung !hline 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 +control+2 !! control[1] !! 2 # Eintr(!aumlaut)ge in int_in +control+4 !! control[2] !! 1 # Eintr(!aumlaut)ge in int_out +control+6 !! control[3] !! 2 # Eintr(!aumlaut)ge in addr_in +control+8 !! control[4] !! 0 # Eintr(!aumlaut)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 diff --git a/gem/aes/menu_/menu_settings.ui b/gem/aes/menu_/menu_settings.ui index 63b383772..5925e3b3f 100644 --- a/gem/aes/menu_/menu_settings.ui +++ b/gem/aes/menu_/menu_settings.ui @@ -138,8 +138,8 @@ kommen. Die Funktion liefert stets den Wert 1 zurck. !item [Verfgbar:] -This function is only available with AES versions 3.30 and -above. +Diese Funktion ist nur verf(!uumlaut)gbar seit (!nolink [AES]) Version 3.30 und +h(!oumlaut)her. Das Vorhandensein dieser Funktion kann ber einen Aufruf von (!link [appl_getinfo][%apgi_9]) (Opcode 9) festgestellt werden. diff --git a/gem/aes/structures/menu.ui b/gem/aes/structures/menu.ui index 16616950f..c53f0eddf 100644 --- a/gem/aes/structures/menu.ui +++ b/gem/aes/structures/menu.ui @@ -12,6 +12,7 @@ typedef struct /* 0 - The menu will not scroll */ /* >0 - The menu will scroll (no scrollbar) */ /* -1 - The menu will scroll (with scrollbar) */ + /* (AES >= 4.1) */ int16_t mn_keystate; /* The [CTRL], [ALT], [SHIFT] key state at */ /* the time the mouse button was pressed */ } MENU; @@ -32,7 +33,9 @@ typedef struct int16_t mn_item; /* Anfangs-Meneintrag (bestimmt */ /* die Position des Mens */ int16_t mn_scroll; /* 0 = nicht scrollen */ - /* >0 = scrollen */ + /* >0 = scrollen (ohne scrollbar) */ + /* -1 = scrollen (mit scrollbar) */ + /* (AES >= 4.1) */ int16_t mn_keystate; /* Tastaturstatus (Shift, Control */ /* bzw. Alternate) */ } MENU;