mirror of
https://github.com/AquaMorph/Droplets.git
synced 2025-04-29 17:35:33 +00:00
Merge keeps currently selected droplet
This commit is contained in:
parent
af3bf7bcf5
commit
8618675c2d
14
src/main.cpp
14
src/main.cpp
@ -40,10 +40,18 @@ void ProcessControls() {
|
||||
droplet_right = GetDroplet(DropletState::kRight,
|
||||
left_menu->GetBufferState());
|
||||
}
|
||||
// Disable split
|
||||
// Merge
|
||||
else {
|
||||
droplet_left->UpdateState(DropletState::kFull);
|
||||
delete droplet_right;
|
||||
if (selected_menu == left_menu) {
|
||||
droplet_left->UpdateState(DropletState::kFull);
|
||||
delete droplet_right;
|
||||
} else {
|
||||
droplet_right->UpdateState(DropletState::kFull);
|
||||
delete droplet_left;
|
||||
droplet_left = droplet_right;
|
||||
left_menu->SetState(right_menu->GetBufferState());
|
||||
selected_menu = left_menu;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Switch side
|
||||
|
17
src/menu.cpp
17
src/menu.cpp
@ -109,6 +109,17 @@ MenuState Menu::GetState() {
|
||||
return highlighted->GetState();
|
||||
}
|
||||
|
||||
void Menu::SetState(MenuState state) {
|
||||
MenuItem* ptr = head;
|
||||
while(ptr != NULL) {
|
||||
if (ptr->GetState() == state) {
|
||||
Select(ptr);
|
||||
return;
|
||||
}
|
||||
ptr = ptr->GetNext();
|
||||
}
|
||||
}
|
||||
|
||||
MenuState Menu::GetBufferState() {
|
||||
return buffer->GetState();
|
||||
}
|
||||
@ -124,8 +135,12 @@ void Menu::UpdateMenuState() {
|
||||
}
|
||||
|
||||
void Menu::Select() {
|
||||
Select(highlighted);
|
||||
}
|
||||
|
||||
void Menu::Select(MenuItem* item) {
|
||||
if (selected->GetState() != MenuState::kSplit) {
|
||||
buffer = selected;
|
||||
}
|
||||
selected = highlighted;
|
||||
selected = item;
|
||||
}
|
||||
|
14
src/menu.h
14
src/menu.h
@ -84,6 +84,13 @@ class Menu {
|
||||
* @return menu state
|
||||
*/
|
||||
MenuState GetState();
|
||||
|
||||
/*
|
||||
* Set the menu state.
|
||||
*
|
||||
* @param state menu state
|
||||
*/
|
||||
void SetState(MenuState state);
|
||||
|
||||
/*
|
||||
* Returns the previously selected menu item.
|
||||
@ -102,6 +109,13 @@ class Menu {
|
||||
* Select the currently highlighted menu item.
|
||||
*/
|
||||
void Select();
|
||||
|
||||
/*
|
||||
* Select the given menu item.
|
||||
*
|
||||
* @param item menu item to select
|
||||
*/
|
||||
void Select(MenuItem* item);
|
||||
};
|
||||
|
||||
#endif // DROPLETS_MENU_H_
|
||||
|
Loading…
x
Reference in New Issue
Block a user