Skip to content

Commit

Permalink
Clarify scrolling submenu behavior
Browse files Browse the repository at this point in the history
Contributed by Lonny Pursell.
  • Loading branch information
th-otto committed Jul 12, 2024
1 parent de98c0b commit 7ba87b7
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 26 deletions.
6 changes: 3 additions & 3 deletions gem/aes/menu_/menu_attach.ui
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,9 @@ Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert 0
zurckgegeben wird.

!item [Verfgbar:]
Diese Funktion ist nur Verfgbar seit AES Version 3.30 und
hher. In AES Version 4.0 und gržer sollte (!link [appl_getinfo][%apgi_9])
(Opcode 9) benutzt werden ob er Aufruf mglich 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 [Mens][Menfunktionen])
Expand Down
67 changes: 47 additions & 20 deletions gem/aes/menu_/menu_popup.ui
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -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])-Mens
¯Menu (!nolink [Popup])® - (!uumlaut)bernimmt die Darstellung und Abarbeitung eines (!nolink [Popup])-Men(!uumlaut)s

!item [AES-Nummer:]
36
Expand All @@ -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])-Mens. Es
Die Funktion (!uumlaut)bernimmt die Darstellung und Bearbeitung eines (!nolink [Popup])-Men(!uumlaut)s. Es
gilt:

!begin_xlist !compressed [Parameter]
Expand All @@ -127,35 +138,51 @@ Bedeutung
!item [me_menu]
Zeiger auf die Struktur des (!link [Popups][MENU])
!item [me_xpos]
x-Koordinate des Mens
x-Koordinate des Men(!uumlaut)s
!item [me_ypos]
y-Koordinate des Mens
y-Koordinate des Men(!uumlaut)s
!item [me_mdata]
Zeiger auf die Daten des selektierten Meneintrages.
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
zurckgegeben wird.
zur(!uumlaut)ckgegeben wird.

!item [Verfgbar:]
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 [Mens][Menfunktionen])
(!link [Men(!uumlaut)s][Men(!uumlaut)funktionen])

!item [Querverweis:]
(!link [Binding] [Bindings fr menu_popup]) ~ menu_settings ~ XMEN_MGR
(!link [Binding] [Bindings f(!uumlaut)r menu_popup]) ~ menu_settings ~ XMEN_MGR

(!ende_liste)



!begin_node Bindings fr menu_popup
!begin_node Bindings f(!uumlaut)r menu_popup
!ignore_index

(!begin_liste) [GEM-Arrays]
Expand Down Expand Up @@ -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 # Eintrge in int_in
control+4 !! control[2] !! 1 # Eintrge in int_out
control+6 !! control[3] !! 2 # Eintrge in addr_in
control+8 !! control[4] !! 0 # Eintrge 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
Expand Down
4 changes: 2 additions & 2 deletions gem/aes/menu_/menu_settings.ui
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ kommen.
Die Funktion liefert stets den Wert 1 zurck.

!item [Verfgbar:]
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.
Expand Down
5 changes: 4 additions & 1 deletion gem/aes/structures/menu.ui
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,7 +33,9 @@ typedef struct
int16_t mn_item; /* Anfangs-Meneintrag (bestimmt */
/* die Position des Mens */
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;
Expand Down

0 comments on commit 7ba87b7

Please sign in to comment.