From 32cf838ecf98550e079cf4a604951d4885488ca0 Mon Sep 17 00:00:00 2001 From: Marcus Minhorst Date: Sat, 12 Jul 2025 14:00:04 -0400 Subject: [PATCH] Added Home/End menu binds --- src/common/menu/menu.cpp | 3 +++ src/common/menu/menu.h | 2 ++ wadsrc/static/zscript/engine/ui/menu/menu.zs | 2 ++ wadsrc/static/zscript/engine/ui/menu/optionmenu.zs | 12 ++++++++++++ 4 files changed, 19 insertions(+) diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp index b97118b98..7dfd33bd4 100644 --- a/src/common/menu/menu.cpp +++ b/src/common/menu/menu.cpp @@ -668,6 +668,9 @@ bool M_Responder (event_t *ev) case GK_BACKSPACE: mkey = MKEY_Clear; break; case GK_PGUP: mkey = MKEY_PageUp; break; case GK_PGDN: mkey = MKEY_PageDown; break; + case GK_HOME: mkey = MKEY_Home; break; + case GK_END: mkey = MKEY_End; break; + default: if (!keyup) { diff --git a/src/common/menu/menu.h b/src/common/menu/menu.h index a96e25929..c9596e8f3 100644 --- a/src/common/menu/menu.h +++ b/src/common/menu/menu.h @@ -28,6 +28,8 @@ enum EMenuKey MKEY_Right, MKEY_PageUp, MKEY_PageDown, + MKEY_Home, + MKEY_End, //----------------- Keys past here do not repeat. MKEY_Enter, MKEY_Back, // Back to previous menu diff --git a/wadsrc/static/zscript/engine/ui/menu/menu.zs b/wadsrc/static/zscript/engine/ui/menu/menu.zs index ed98a97e9..cb8756f3b 100644 --- a/wadsrc/static/zscript/engine/ui/menu/menu.zs +++ b/wadsrc/static/zscript/engine/ui/menu/menu.zs @@ -122,6 +122,8 @@ class Menu : Object native ui version("2.4") MKEY_Right, MKEY_PageUp, MKEY_PageDown, + MKEY_Home, + MKEY_End, MKEY_Enter, MKEY_Back, MKEY_Clear, diff --git a/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs b/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs index 5dc8643a3..b45b160ad 100644 --- a/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs +++ b/wadsrc/static/zscript/engine/ui/menu/optionmenu.zs @@ -560,6 +560,18 @@ class OptionMenu : Menu MenuScrollViewport(MaxItems, true); break; + case MKEY_Home: + MenuScrollViewport(-mDesc.mItems.Size(), true); + mDesc.mSelectedItem = -1; + MenuMoveCursor(1); + break; + + case MKEY_End: + MenuScrollViewport(mDesc.mItems.Size(), true); + mDesc.mSelectedItem = -1; + MenuMoveCursor(-1); + break; + case MKEY_Enter: if (mDesc.mSelectedItem >= 0 && mDesc.mItems[mDesc.mSelectedItem].Activate()) {