mirror of
				https://github.com/AquaMorph/Droplets.git
				synced 2025-10-29 23:53:19 +00:00 
			
		
		
		
	Working menu split and merge
This commit is contained in:
		| @@ -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); | ||||||
|  |  | ||||||
|   /* |   /* | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user