From 752a37ed2350c3715a0d2da74231d4cc4bf54112 Mon Sep 17 00:00:00 2001 From: Lightos1 <124387232+Lightos1@users.noreply.github.com> Date: Sun, 5 Jul 2026 15:52:11 +0200 Subject: [PATCH] change changeTo to swapTo --- .../loader/source/oc/pcv/pcv_common.hpp | 29 ++++++++ .../hoc-clk/overlay/src/ui/gui/about_gui.cpp | 9 +++ Source/hoc-clk/overlay/src/ui/gui/about_gui.h | 1 + .../overlay/src/ui/gui/app_profile_gui.cpp | 17 ++++- .../overlay/src/ui/gui/app_profile_gui.h | 1 + .../overlay/src/ui/gui/base_menu_gui.cpp | 17 ++++- .../overlay/src/ui/gui/base_menu_gui.h | 3 + .../overlay/src/ui/gui/freq_choice_gui.h | 4 ++ .../src/ui/gui/global_override_gui.cpp | 67 +++++++++++-------- .../overlay/src/ui/gui/global_override_gui.h | 1 + Source/hoc-clk/overlay/src/ui/gui/info_gui.h | 4 ++ .../hoc-clk/overlay/src/ui/gui/main_gui.cpp | 17 +++-- Source/hoc-clk/overlay/src/ui/gui/main_gui.h | 7 ++ .../hoc-clk/overlay/src/ui/gui/misc_gui.cpp | 66 +++++++++++++++++- Source/hoc-clk/overlay/src/ui/gui/misc_gui.h | 1 + .../hoc-clk/overlay/src/ui/gui/update_gui.cpp | 7 +- .../hoc-clk/overlay/src/ui/gui/update_gui.h | 3 + .../overlay/src/ui/gui/value_choice_gui.h | 5 ++ 18 files changed, 222 insertions(+), 37 deletions(-) diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_common.hpp b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_common.hpp index 614f9151..87eafaa3 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_common.hpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_common.hpp @@ -48,6 +48,35 @@ namespace ams::ldr::hoc::pcv { u64 dvco_calibration_max; }; + /* + struct CvbCpuDfllData { + u32 tune0_low; + u32 tune0_high; + u32 tune1_low; + u32 tune1_high; + u64 padding; + u64 dvco_calibration_max; + }; + + struct CpuCvbTable { + u64 socType; + CvbCpuDfllData dfllData; + u64 padding[3]; + u64 unk; + u32 tune_high_min_millivolts; + u32 tune_high_margin_millivolts; + u32 vmin; + u32 padding_1[3]; + u32 pll_min_millivolts; + u32 vmax; + u32 unkScale; + u32 speedoScale; + u32 voltageScale; + u32 zero; + cvb_entry_t cvb_entry[32]; + }; + */ + struct __attribute__((packed)) div_nmp { u8 divn_shift; u8 divn_width; diff --git a/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp index 6912325d..2fc6d5dc 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp @@ -233,6 +233,10 @@ void AboutGui::update() BaseMenuGui::update(); } +std::string AboutGui::getJumpToItemName() { + return "About"; +} + void AboutGui::refresh() { BaseMenuGui::refresh(); @@ -321,6 +325,11 @@ class CreditsSubMenu : public AboutGui { public: CreditsSubMenu() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: ImageElement* CatImage = NULL; HideableCategoryHeader* CatHeader = NULL; diff --git a/Source/hoc-clk/overlay/src/ui/gui/about_gui.h b/Source/hoc-clk/overlay/src/ui/gui/about_gui.h index f2fef93a..49d71d67 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/about_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/about_gui.h @@ -27,6 +27,7 @@ class AboutGui : public BaseMenuGui { protected: char strings[32][32]; + std::string getJumpToItemName() override; public: AboutGui(); diff --git a/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp index cb1e15c0..7364711e 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp @@ -290,6 +290,11 @@ public: GovernorProfileSubMenuGui(uint64_t appId, HocClkTitleProfileList* pList, HocClkProfile prof) : applicationId(appId), profileList(pList), profile(prof) {} + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + void listUI() override { BaseMenuGui::refresh(); // get latest context if(!this->context) @@ -445,8 +450,14 @@ void AppProfileGui::listUI() this->addProfileUI(HocClkProfile_HandheldChargingUSB); } +std::string jumpItemString = "Edit App Profile"; + void AppProfileGui::changeTo(std::uint64_t applicationId) { + if (applicationId == HOCCLK_GLOBAL_PROFILE_TID) { + jumpItemString = "Edit Global Profile"; + } + HocClkTitleProfileList* profileList = new HocClkTitleProfileList; Result rc = hocclkIpcGetProfiles(applicationId, profileList); if(R_FAILED(rc)) @@ -456,7 +467,7 @@ void AppProfileGui::changeTo(std::uint64_t applicationId) return; } - tsl::changeTo(applicationId, profileList); + tsl::swapTo(applicationId, profileList); } void AppProfileGui::update() @@ -473,4 +484,8 @@ void AppProfileGui::update() "" ); } +} + +std::string AppProfileGui::getJumpToItemName() { + return jumpItemString; } \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h index d3e38c8d..1614e15d 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h @@ -32,6 +32,7 @@ class AppProfileGui : public BaseMenuGui { protected: std::uint64_t applicationId; HocClkTitleProfileList *profileList; + std::string getJumpToItemName() override; void openFreqChoiceGui(tsl::elm::ListItem *listItem, HocClkProfile profile, HocClkModule module); void addModuleListItem(HocClkProfile profile, HocClkModule module); void addModuleListItemToggle(HocClkProfile profile, HocClkModule module); diff --git a/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp index 2f00d4e5..aaee65e8 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp @@ -27,7 +27,7 @@ #include "../format.h" #include "base_menu_gui.h" #include "fatal_gui.h" - +#include "main_gui.h" #define TOP_Y_OFFSET 15 @@ -362,3 +362,18 @@ tsl::elm::Element *BaseMenuGui::baseUI() { return list; } + +std::string BaseMenuGui::getJumpToItemName() { + return ""; +} + +bool BaseMenuGui::handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) { + if (keysDown & KEY_B) { + triggerExitFeedback(); + lastItemName = this->getJumpToItemName(); + tsl::swapTo(); + return true; + } + return false; +} diff --git a/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h index eb0758ff..c3ac4c28 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h @@ -31,6 +31,7 @@ class BaseMenuGui : public BaseGui { protected: + virtual std::string getJumpToItemName(); public: // u8 dockedHighestAllowedRefreshRate = 60; HocClkContext *context; @@ -79,6 +80,8 @@ class BaseMenuGui : public BaseGui { tsl::elm::Element *baseUI() override; void refresh() override; virtual void listUI() = 0; + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override; u16 headerHeight() const override { return HOC_BOX_BOTTOM + 9; } diff --git a/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h b/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h index 98440941..9b7ed041 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h @@ -55,4 +55,8 @@ class FreqChoiceGui : public BaseMenuGui { ~FreqChoiceGui(); void listUI() override; + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } }; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp index 197b8d53..25a8cd0f 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp @@ -41,7 +41,7 @@ void GlobalOverrideGui::openFreqChoiceGui(HocClkModule module) FatalGui::openWithResultCode("hocclkIpcGetFreqList", rc); return; } - + std::map labels = {}; if (module == HocClkModule_CPU) { @@ -103,7 +103,7 @@ void GlobalOverrideGui::addModuleListItemValue( std::uint32_t step, const std::string& suffix, std::uint32_t divisor, - int decimalPlaces, + int decimalPlaces, ValueThresholds thresholds, const std::vector& namedValues, bool showDefaultValue @@ -117,9 +117,9 @@ void GlobalOverrideGui::addModuleListItemValue( tsl::elm::ListItem* listItem = new tsl::elm::ListItem(hocclkFormatModule(module, true)); - + listItem->setValue(FREQ_DEFAULT_TEXT); - + listItem->setClickListener( [this, listItem, @@ -141,10 +141,10 @@ void GlobalOverrideGui::addModuleListItemValue( if (!this->context) { return false; } - + std::uint32_t currentValue = this->context->overrideFreqs[module] * divisor; - + ValueRange range( min, max, @@ -153,22 +153,22 @@ void GlobalOverrideGui::addModuleListItemValue( divisor, decimalPlaces ); - + this->openValueChoiceGui( listItem, currentValue, range, categoryName, - + [this, listItem, module, divisor, suffix, decimalPlaces, thresholds, namedValues, hasNamedValues, showDefaultValue](std::uint32_t value) -> bool { if (!this->context) { return false; } - + this->context->overrideFreqs[module] = value / divisor; this->listHz[module] = value / divisor; - + if (value == 0) { listItem->setValue(FREQ_DEFAULT_TEXT); } else if (hasNamedValues) { @@ -182,36 +182,36 @@ void GlobalOverrideGui::addModuleListItemValue( char buf[32]; if (decimalPlaces > 0) { double displayValue = (double)value / divisor; - snprintf(buf, sizeof(buf), "%.*f%s", + snprintf(buf, sizeof(buf), "%.*f%s", decimalPlaces, displayValue, suffix.c_str()); } else { - snprintf(buf, sizeof(buf), "%u%s", + snprintf(buf, sizeof(buf), "%u%s", value / divisor, suffix.c_str()); } listItem->setValue(buf); } - + Result rc = hocclkIpcSetOverride(module, this->context->overrideFreqs[module]); - + if (R_FAILED(rc)) { FatalGui::openWithResultCode( "hocclkIpcSetOverride", rc); return false; } - + this->lastContextUpdate = armGetSystemTick(); return true; }, - + thresholds, false, std::map(), namedValues, showDefaultValue ); - + return true; } else if ((keys & HidNpadButton_Y) == HidNpadButton_Y) @@ -219,26 +219,26 @@ void GlobalOverrideGui::addModuleListItemValue( if (!this->context) { return false; } - + this->context->overrideFreqs[module] = 0; this->listHz[module] = 0; listItem->setValue(FREQ_DEFAULT_TEXT); - + Result rc = hocclkIpcSetOverride(module, 0); - + if (R_FAILED(rc)) { FatalGui::openWithResultCode("hocclkIpcSetOverride", rc); return false; } - + this->lastContextUpdate = armGetSystemTick(); return true; } - + return false; }); - + this->listElement->addItem(listItem); this->listItems[module] = listItem; } @@ -301,6 +301,11 @@ class GovernorOverrideSubMenuGui : public BaseMenuGui { public: GovernorOverrideSubMenuGui(u32 initialPacked) : packed(initialPacked) {} + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + void listUI() override { BaseMenuGui::refresh(); // get latest context if(!this->context) @@ -391,23 +396,23 @@ void GlobalOverrideGui::refresh() if (this->listItems[m] != nullptr && this->listHz[m] != this->context->overrideFreqs[m]) { - + auto it = this->customFormatModules.find((HocClkModule)m); if (it != this->customFormatModules.end()) { std::string suffix = std::get<0>(it->second); std::uint32_t divisor = std::get<1>(it->second); int decimalPlaces = std::get<2>(it->second); - + if (this->context->overrideFreqs[m] == 0) { this->listItems[m]->setValue(FREQ_DEFAULT_TEXT); } else { char buf[32]; if (decimalPlaces > 0) { double displayValue = (double)this->context->overrideFreqs[m] / divisor; - snprintf(buf, sizeof(buf), "%.*f%s", + snprintf(buf, sizeof(buf), "%.*f%s", decimalPlaces, displayValue, suffix.c_str()); } else { - snprintf(buf, sizeof(buf), "%u%s", + snprintf(buf, sizeof(buf), "%u%s", this->context->overrideFreqs[m] / divisor, suffix.c_str()); } this->listItems[m]->setValue(buf); @@ -418,8 +423,12 @@ void GlobalOverrideGui::refresh() ? formatListFreqHzMem(this->context->overrideFreqs[m], (RamDisplayUnit)configList.values[HocClkConfigValue_RamDisplayUnit]) : formatListFreqHz(this->context->overrideFreqs[m])); } - + this->listHz[m] = this->context->overrideFreqs[m]; } } -} \ No newline at end of file +} + +std::string GlobalOverrideGui::getJumpToItemName() { + return "Temporary Overrides"; +} diff --git a/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h index 51cfd075..9a4b360d 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h @@ -33,6 +33,7 @@ #include "value_choice_gui.h" class GlobalOverrideGui : public BaseMenuGui { protected: + std::string getJumpToItemName() override; std::map> customFormatModules; tsl::elm::ListItem *listItems[HocClkModule_EnumMax]; std::uint32_t listHz[HocClkModule_EnumMax]; diff --git a/Source/hoc-clk/overlay/src/ui/gui/info_gui.h b/Source/hoc-clk/overlay/src/ui/gui/info_gui.h index a1ae8e9d..0721060d 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/info_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/info_gui.h @@ -26,6 +26,10 @@ class InfoGui : public BaseMenuGui { InfoGui(std::string title, std::vector strings); ~InfoGui() = default; void listUI() override; + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } private: std::string m_title; diff --git a/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp index 027204f7..b1b14ca2 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp @@ -24,6 +24,7 @@ * -------------------------------------------------------------------------- */ +#include #include "about_gui.h" #include "app_profile_gui.h" #include "fatal_gui.h" @@ -40,6 +41,8 @@ tsl::elm::Element *MainGui::baseUI() { return list; } +std::string lastItemName; + void MainGui::listUI() { // this->enabledToggle = new tsl::elm::ToggleListItem("Enable", false); // enabledToggle->setStateChangedListener([this](bool state) { @@ -79,7 +82,7 @@ void MainGui::listUI() { tsl::elm::ListItem *globalOverrideItem = new tsl::elm::ListItem("Temporary Overrides"); globalOverrideItem->setClickListener([this](u64 keys) { if ((keys & HidNpadButton_A) == HidNpadButton_A && this->context) { - tsl::changeTo(); + tsl::swapTo(); return true; } @@ -92,7 +95,7 @@ void MainGui::listUI() { tsl::elm::ListItem *miscItem = new tsl::elm::ListItem("Settings"); miscItem->setClickListener([this](u64 keys) { if ((keys & HidNpadButton_A) == HidNpadButton_A && this->context) { - tsl::changeTo(); + tsl::swapTo(); return true; } @@ -103,7 +106,7 @@ void MainGui::listUI() { tsl::elm::ListItem *aboutItem = new tsl::elm::ListItem("About"); aboutItem->setClickListener([this](u64 keys) { if ((keys & HidNpadButton_A) == HidNpadButton_A && this->context) { - tsl::changeTo(); + tsl::swapTo(); return true; } @@ -114,7 +117,7 @@ void MainGui::listUI() { tsl::elm::ListItem *updateItem = new tsl::elm::ListItem("Updates"); updateItem->setClickListener([this](u64 keys) { if ((keys & HidNpadButton_A) == HidNpadButton_A && this->context) { - tsl::changeTo(); + tsl::swapTo(); return true; } @@ -122,6 +125,11 @@ void MainGui::listUI() { }); this->listElement->addItem(updateItem); + if (!lastItemName.empty()) { + this->listElement->jumpToItem(lastItemName); + } + + lastItemName = ""; } void MainGui::refresh() { @@ -131,3 +139,4 @@ void MainGui::refresh() { // this->enabledToggle->setState(this->context->enabled); // } } + diff --git a/Source/hoc-clk/overlay/src/ui/gui/main_gui.h b/Source/hoc-clk/overlay/src/ui/gui/main_gui.h index 363811b7..45a85db4 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/main_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/main_gui.h @@ -28,6 +28,8 @@ #include "base_menu_gui.h" +extern std::string lastItemName; + class MainGui : public BaseMenuGui { public: MainGui() { @@ -40,4 +42,9 @@ class MainGui : public BaseMenuGui { u16 headerHeight() const override { return HOC_HEADER_HEIGHT - 25; } + + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } }; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp index 0ded87e1..6755bf00 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp @@ -26,7 +26,7 @@ #include "labels.h" #include "misc_gui.h" #include "ult_ext.h" - +#include "main_gui.h" // This workaround *may* not be nessasary, but it seems to help with reducing stutter static void kipDataThreadFunc(void *) { @@ -742,6 +742,11 @@ class GeneralSettingsSubMenuGui : public MiscGui { GeneralSettingsSubMenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -792,6 +797,11 @@ class ExperimentalSettingsSubMenuGui : public MiscGui { ExperimentalSettingsSubMenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -906,6 +916,11 @@ class GovernorSettingsSubMenuGui : public MiscGui { GovernorSettingsSubMenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -931,6 +946,11 @@ class DisplaySubMenuGui : public MiscGui { DisplaySubMenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -980,6 +1000,11 @@ class SafetySubMenuGui : public MiscGui { SafetySubMenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -1004,6 +1029,11 @@ class RamSubmenuGui : public MiscGui { RamSubmenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { BaseMenuGui::refresh(); @@ -1239,6 +1269,11 @@ class RamTimingsSubmenuGui : public MiscGui { RamTimingsSubmenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -1486,6 +1521,11 @@ class RamLatenciesSubmenuGui : public MiscGui { RamLatenciesSubmenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + tsl::elm::Element *baseUI() override { auto *list = new TopAnchoredList(); this->listElement = list; @@ -1987,6 +2027,11 @@ class CpuSubmenuGui : public MiscGui { CpuSubmenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); // populate config list early otherwise wont work @@ -2145,6 +2190,11 @@ class GpuSubmenuGui : public MiscGui { GpuSubmenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { Result rc = hocclkIpcGetConfigValues(this->configList); @@ -2290,6 +2340,11 @@ class GpuCustomTableSubmenuGui : public MiscGui { GpuCustomTableSubmenuGui() { } + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { @@ -2525,6 +2580,11 @@ class SocCustomTableSubmenuGui : public MiscGui { public: SocCustomTableSubmenuGui() {} + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } + protected: void listUI() override { @@ -2672,3 +2732,7 @@ void MiscGui::refresh() { } } } + +std::string MiscGui::getJumpToItemName() { + return "Settings"; +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h index b3f4a8b8..b70edaf9 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h @@ -67,4 +67,5 @@ class MiscGui : public BaseMenuGui { tsl::elm::ToggleListItem *enabledToggle; u8 frameCounter = 60; bool shouldSaveKip = false; + std::string getJumpToItemName() override; }; diff --git a/Source/hoc-clk/overlay/src/ui/gui/update_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/update_gui.cpp index 123ea2c9..7160c946 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/update_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/update_gui.cpp @@ -267,5 +267,10 @@ bool UpdateGui::handleInput(u64 keysDown, u64 keysHeld, requestCancel(); return true; } - return false; + + return BaseMenuGui::handleInput(keysDown, keysHeld, touchPos, leftJoy, rightJoy); +} + +std::string UpdateGui::getJumpToItemName() { + return "Updates"; } diff --git a/Source/hoc-clk/overlay/src/ui/gui/update_gui.h b/Source/hoc-clk/overlay/src/ui/gui/update_gui.h index 8cc6c52d..f81e821b 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/update_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/update_gui.h @@ -77,4 +77,7 @@ private: tsl::elm::ListItem *m_items[2] = {nullptr, nullptr}; UpdateStatusPanel *m_status = nullptr; + +protected: + std::string getJumpToItemName() override; }; diff --git a/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h b/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h index 4aeaf05e..d069c3aa 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h +++ b/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h @@ -101,4 +101,9 @@ class ValueChoiceGui : public BaseMenuGui { } void listUI() override; + + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState leftJoyStick, + HidAnalogStickState rightJoyStick) override { + return false; + } }; \ No newline at end of file