# Menu

# Description

The Menu class is used to create and manage in-game menu interfaces, providing user interaction functionality.

# How to Use

// Create main menu
Menu* mainMenu = Menu::Create("My Script");

// Add submenu
Menu* comboMenu = mainMenu->AddMenu("Combo Settings");

// Add checkbox
MenuOption* useQ = comboMenu->AddCheckBox("Use Q", true);

// Add slider
MenuOption* qRange = comboMenu->AddSlider("Q Skill Range", 900, 500, 1200);

// Add hotkey
MenuOption* comboKey = comboMenu->AddHotKey("Combo Key", 0x0020); // Space key

// Add color picker
MenuOption* drawColor = comboMenu->AddColorPick("Display Color", true, MAKE_COLOR(255, 0, 0, 255));

// Add separator
comboMenu->AddSeparator("Advanced Settings");

// Add string list
std::vector<const char*> modes = { "Normal", "Aggressive", "Conservative" };
MenuOption* comboMode = comboMenu->AddStringList("Combo Mode", 0, modes);

// Check menu option values
if (useQ->GetBool() && comboKey->GetBool())
{
    // Execute code that uses Q ability
}

int Menu::Language()

Get the current menu language setting.

Return Value Description
0 English
1 Chinese
int language = Menu::Language();
if (language == 1)
{
    // Chinese interface related logic
}

bool Menu::IsOpen()

Check if the menu is open.

if (Menu::IsOpen())
{
    // Logic when menu is open
}

void Menu::AddTranslate(const char* englishText, const char8_t* ChineseText)

Add English and Chinese translations for text.

Parameter Name Parameter Type Description
englishText const char* English text
ChineseText const char8_t* Chinese text
Menu::AddTranslate("Use Q", u8"使用Q");

static Menu* Menu::Create(const char* Title)

Create a new menu.

Parameter Name Parameter Type Description
Title const char* Menu title
Menu* mainMenu = Menu::Create("My Script");

Menu* Menu::AddMenu(const char* Title)

Add a submenu.

Parameter Name Parameter Type Description
Title const char* Submenu title
Menu* comboMenu = mainMenu->AddMenu("Combo Settings");

MenuOption* Menu::AddCheckBox(const char* Name, bool Boolean)

Add a checkbox option.

Parameter Name Parameter Type Description
Name const char* Option name
Boolean bool Default value
MenuOption* useQ = comboMenu->AddCheckBox("Use Q", true);

MenuOption* Menu::AddSlider(const char* Name, int Value, int MinValue, int MaxValue)

Add a slider option.

Parameter Name Parameter Type Description
Name const char* Option name
Value int Default value
MinValue int Minimum value
MaxValue int Maximum value
MenuOption* qRange = comboMenu->AddSlider("Q Skill Range", 900, 500, 1200);

MenuOption* Menu::AddHotKey(const char* Name, int DefaultKey)

Add a hotkey option.

Parameter Name Parameter Type Description
Name const char* Option name
DefaultKey int Default key
MenuOption* comboKey = comboMenu->AddHotKey("Combo Key", 0x0020); // Space key

MenuOption* Menu::AddToggleKey(const char* Name, int DefaultKey, bool Boolean)

Add a toggle key option.

Parameter Name Parameter Type Description
Name const char* Option name
DefaultKey int Default key
Boolean bool Default toggle state
MenuOption* farmToggle = comboMenu->AddToggleKey("Farm Mode", 0x0057, true); // W key

MenuOption* Menu::AddStringList(const char* Name, int DefaultIdx, std::vector<const char*> const& Elements)

Add a string list option.

Parameter Name Parameter Type Description
Name const char* Option name
DefaultIdx int Default selected index
Elements std::vector<const char*> const& List elements
std::vector<const char*> modes = { "Normal", "Aggressive", "Conservative" };
MenuOption* comboMode = comboMenu->AddStringList("Combo Mode", 0, modes);

MenuOption* Menu::AddColorPick(const char* Name, bool Boolean, int DefaultColor)

Add a color picker option.

Parameter Name Parameter Type Description
Name const char* Option name
Boolean bool Default toggle state
DefaultColor int Default color
MenuOption* drawColor = comboMenu->AddColorPick("Display Color", true, MAKE_COLOR(255, 0, 0, 255));

void Menu::AddSeparator(const char* Txt = nullptr, int color = 0xFFFFFFFF)

Add a separator.

Parameter Name Parameter Type Description
Txt const char* Separator text (optional)
color int Text color (optional)
comboMenu->AddSeparator("Advanced Settings");