| 
									
										
										
										
											2019-02-11 14:43:43 +01:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <LibGUI/GMenuItem.h>
 | 
					
						
							| 
									
										
										
										
											2019-02-12 10:08:35 +01:00
										 |  |  | #include <AK/Function.h>
 | 
					
						
							| 
									
										
										
										
											2019-02-11 14:43:43 +01:00
										 |  |  | #include <AK/Vector.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GMenu { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-02-11 15:37:12 +01:00
										 |  |  |     explicit GMenu(const String& name); | 
					
						
							| 
									
										
										
										
											2019-02-11 14:43:43 +01:00
										 |  |  |     ~GMenu(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-12 10:08:35 +01:00
										 |  |  |     static GMenu* from_menu_id(int); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-11 15:37:12 +01:00
										 |  |  |     void add_item(unsigned identifier, const String& text); | 
					
						
							|  |  |  |     void add_separator(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-12 10:08:35 +01:00
										 |  |  |     Function<void(unsigned)> on_item_activation; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-11 14:43:43 +01:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2019-02-12 00:52:19 +01:00
										 |  |  |     friend class GMenuBar; | 
					
						
							|  |  |  |     int menu_id() const { return m_menu_id; } | 
					
						
							|  |  |  |     int realize_menu(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int m_menu_id { 0 }; | 
					
						
							| 
									
										
										
										
											2019-02-11 15:37:12 +01:00
										 |  |  |     String m_name; | 
					
						
							| 
									
										
										
										
											2019-02-11 14:43:43 +01:00
										 |  |  |     Vector<GMenuItem> m_items; | 
					
						
							|  |  |  | }; |