fixed menubar width issue
the width of menubar is not changed when its parent window is resized
This commit is contained in:
		
							parent
							
								
									977a6c0e86
								
							
						
					
					
						commit
						3ba765ea68
					
				@ -102,12 +102,15 @@ namespace nana
 | 
				
			|||||||
		:	public widget_object<category::widget_tag, drawerbase::menubar::trigger>
 | 
							:	public widget_object<category::widget_tag, drawerbase::menubar::trigger>
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	public:
 | 
						public:
 | 
				
			||||||
		menubar();								///< The default constructor delay creation.
 | 
							menubar() = default;					///< The default constructor delay creation.
 | 
				
			||||||
		menubar(window);						///< Create a menubar at the top of the specified window.
 | 
							menubar(window);						///< Create a menubar at the top of the specified window.
 | 
				
			||||||
 | 
							~menubar();
 | 
				
			||||||
		void create(window);					///< Create a menubar at the top of the specified window.
 | 
							void create(window);					///< Create a menubar at the top of the specified window.
 | 
				
			||||||
		menu& push_back(const nana::string&);	///< Appends a new (empty) menu.
 | 
							menu& push_back(const nana::string&);	///< Appends a new (empty) menu.
 | 
				
			||||||
		menu& at(size_t index) const;		    ///< Gets the menu specified by index.
 | 
							menu& at(size_t index) const;		    ///< Gets the menu specified by index.
 | 
				
			||||||
		std::size_t length() const;		        ///< Number of menus.
 | 
							std::size_t length() const;		        ///< Number of menus.
 | 
				
			||||||
 | 
						private:
 | 
				
			||||||
 | 
							::nana::event_handle evt_resized_{nullptr};
 | 
				
			||||||
	};//end class menubar
 | 
						};//end class menubar
 | 
				
			||||||
}//end namespace nana
 | 
					}//end namespace nana
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -574,17 +574,27 @@ namespace nana
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//class menubar
 | 
						//class menubar
 | 
				
			||||||
		menubar::menubar(){}
 | 
					 | 
				
			||||||
		menubar::menubar(window wd)
 | 
							menubar::menubar(window wd)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			create(wd);
 | 
								create(wd);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							menubar::~menubar()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								API::umake_event(evt_resized_);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		void menubar::create(window wd)
 | 
							void menubar::create(window wd)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			widget_object<category::widget_tag, drawerbase::menubar::trigger>
 | 
								widget_object<category::widget_tag, drawerbase::menubar::trigger>
 | 
				
			||||||
				::create(wd, rectangle(nana::size(API::window_size(wd).width, 28)));
 | 
									::create(wd, rectangle(nana::size(API::window_size(wd).width, 28)));
 | 
				
			||||||
			API::attach_menubar(handle());
 | 
								API::attach_menubar(handle());
 | 
				
			||||||
 | 
								evt_resized_ = API::events(wd).resized([this](const ::nana::arg_resized& arg)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									auto sz = this->size();
 | 
				
			||||||
 | 
									sz.width = arg.width;
 | 
				
			||||||
 | 
									this->size(sz);
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		menu& menubar::push_back(const nana::string& text)
 | 
							menu& menubar::push_back(const nana::string& text)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user