mirror of
https://github.com/AquaMorph/Droplets.git
synced 2025-04-30 01:35:34 +00:00
Working menu split and merge
This commit is contained in:
parent
1298c79196
commit
874bd8072a
@ -30,6 +30,8 @@ void ProcessControls() {
|
|||||||
// Split selected
|
// Split selected
|
||||||
if(selected_menu->GetState() == MenuState::kSplit) {
|
if(selected_menu->GetState() == MenuState::kSplit) {
|
||||||
manager->ToggleSplit();
|
manager->ToggleSplit();
|
||||||
|
left_menu->UpdateMenuState();
|
||||||
|
right_menu->UpdateMenuState();
|
||||||
// Enable split
|
// Enable split
|
||||||
if (manager->GetSplitMode()) {
|
if (manager->GetSplitMode()) {
|
||||||
droplet_left->UpdateState(DropletState::kLeft);
|
droplet_left->UpdateState(DropletState::kLeft);
|
||||||
|
12
src/menu.cpp
12
src/menu.cpp
@ -16,13 +16,12 @@ Menu::Menu(DaisyPatch* m_patch,
|
|||||||
buffer = selected;
|
buffer = selected;
|
||||||
highlighted = selected;
|
highlighted = selected;
|
||||||
|
|
||||||
head->SetStateVisibility(MenuState::kChange, false);
|
|
||||||
|
|
||||||
if (state == DropletState::kLeft) {
|
if (state == DropletState::kLeft) {
|
||||||
head->SetStateTitle(MenuState::kChange, "Right");
|
head->SetStateTitle(MenuState::kChange, "Right");
|
||||||
} else if (state == DropletState::kRight) {
|
} else if (state == DropletState::kRight) {
|
||||||
head->SetStateTitle(MenuState::kChange, "Left");
|
head->SetStateTitle(MenuState::kChange, "Left");
|
||||||
}
|
}
|
||||||
|
this->UpdateMenuState();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Menu::InMenu() {
|
bool Menu::InMenu() {
|
||||||
@ -106,3 +105,12 @@ MenuState Menu::GetState() {
|
|||||||
return highlighted->GetState();
|
return highlighted->GetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Menu::UpdateMenuState() {
|
||||||
|
if (manager->GetSplitMode()) {
|
||||||
|
head->SetStateVisibility(MenuState::kChange, true);
|
||||||
|
head->SetStateTitle(MenuState::kSplit, "Merge");
|
||||||
|
} else {
|
||||||
|
head->SetStateVisibility(MenuState::kChange, false);
|
||||||
|
head->SetStateTitle(MenuState::kSplit, "Split");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -84,6 +84,11 @@ class Menu {
|
|||||||
* @return menu state
|
* @return menu state
|
||||||
*/
|
*/
|
||||||
MenuState GetState();
|
MenuState GetState();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Updates the menu upon a split or a merge.
|
||||||
|
*/
|
||||||
|
void UpdateMenuState();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CASCADE_MENU_H_
|
#endif // CASCADE_MENU_H_
|
||||||
|
@ -91,7 +91,20 @@ class MenuItem {
|
|||||||
*/
|
*/
|
||||||
void ToggleVisibility();
|
void ToggleVisibility();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the visibility of all menu items with a given state.
|
||||||
|
*
|
||||||
|
* @param state
|
||||||
|
* @param visibility
|
||||||
|
*/
|
||||||
void SetStateVisibility(MenuState m_state, bool visibility);
|
void SetStateVisibility(MenuState m_state, bool visibility);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the title of all menu items with a given state.
|
||||||
|
*
|
||||||
|
* @param state
|
||||||
|
* @param title
|
||||||
|
*/
|
||||||
void SetStateTitle(MenuState m_state, std::string m_title);
|
void SetStateTitle(MenuState m_state, std::string m_title);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user