fixed menubar width issue
the width of menubar is not changed when its parent window is resized
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user