mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 11:12:45 +00:00 
			
		
		
		
	LibGUI: Allow adding previously constructed menus to Menubar
This commit is contained in:
		
							parent
							
								
									9cf93528f5
								
							
						
					
					
						commit
						c88d77361c
					
				
					 4 changed files with 18 additions and 0 deletions
				
			
		|  | @ -10,6 +10,12 @@ | |||
| 
 | ||||
| namespace GUI { | ||||
| 
 | ||||
| ErrorOr<void> Menubar::try_add_menu(Badge<Window>, NonnullRefPtr<Menu> menu) | ||||
| { | ||||
|     TRY(m_menus.try_append(menu)); | ||||
|     return {}; | ||||
| } | ||||
| 
 | ||||
| ErrorOr<NonnullRefPtr<Menu>> Menubar::try_add_menu(Badge<Window>, String name) | ||||
| { | ||||
|     auto menu = TRY(try_add<Menu>(move(name))); | ||||
|  |  | |||
|  | @ -23,6 +23,7 @@ class Menubar : public Core::Object { | |||
| public: | ||||
|     virtual ~Menubar() override = default; | ||||
| 
 | ||||
|     ErrorOr<void> try_add_menu(Badge<Window>, NonnullRefPtr<Menu>); | ||||
|     ErrorOr<NonnullRefPtr<Menu>> try_add_menu(Badge<Window>, String name); | ||||
|     Menu& add_menu(Badge<Window>, String name); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1272,6 +1272,16 @@ Gfx::Bitmap* Window::back_bitmap() | |||
|     return m_back_store ? &m_back_store->bitmap() : nullptr; | ||||
| } | ||||
| 
 | ||||
| ErrorOr<void> Window::try_add_menu(NonnullRefPtr<Menu> menu) | ||||
| { | ||||
|     TRY(m_menubar->try_add_menu({}, move(menu))); | ||||
|     if (m_window_id) { | ||||
|         menu->realize_menu_if_needed(); | ||||
|         ConnectionToWindowServer::the().async_add_menu(m_window_id, menu->menu_id()); | ||||
|     } | ||||
|     return {}; | ||||
| } | ||||
| 
 | ||||
| ErrorOr<NonnullRefPtr<Menu>> Window::try_add_menu(String name) | ||||
| { | ||||
|     auto menu = TRY(m_menubar->try_add_menu({}, move(name))); | ||||
|  |  | |||
|  | @ -222,6 +222,7 @@ public: | |||
| 
 | ||||
|     Menu& add_menu(String name); | ||||
|     ErrorOr<NonnullRefPtr<Menu>> try_add_menu(String name); | ||||
|     ErrorOr<void> try_add_menu(NonnullRefPtr<Menu> menu); | ||||
|     void flash_menubar_menu_for(MenuItem const&); | ||||
| 
 | ||||
|     void flush_pending_paints_immediately(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 thankyouverycool
						thankyouverycool