X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fcontent_widget.h;h=3fa1f0ddc20c168d6d45d0cdf773c2d872f93db9;hb=aeb835a18c8df347e0ed68fb24631b320abeb611;hp=9e1338b7c880eda03c5bfbeed58e00110d4fe94b;hpb=e6c67f4aac2ca9afc275b6f13058e1e46f2cecc3;p=dcpomatic.git diff --git a/src/wx/content_widget.h b/src/wx/content_widget.h index 9e1338b7c..3fa1f0ddc 100644 --- a/src/wx/content_widget.h +++ b/src/wx/content_widget.h @@ -27,6 +27,7 @@ #include #include #include +#include #include #include "wx_util.h" @@ -40,7 +41,7 @@ * @param V Data type of state as used by the view. */ template -class ContentWidget +class ContentWidget : public boost::noncopyable { public: /** @param parent Parent window. @@ -89,7 +90,7 @@ public: } _connections.clear (); - + _content = content; _wrapped->Enable (!_content.empty ()); @@ -102,11 +103,12 @@ public: } /** Add this widget to a wxGridBagSizer */ - void add (wxGridBagSizer* sizer, wxGBPosition position) + void add (wxGridBagSizer* sizer, wxGBPosition position, wxGBSpan span = wxDefaultSpan) { _sizer = sizer; _position = position; - _sizer->Add (_wrapped, _position); + _span = span; + _sizer->Add (_wrapped, _position, _span); } /** Update the view from the model */ @@ -139,9 +141,9 @@ public: } _ignore_model_changes = false; } - + private: - + void set_single () { if (_wrapped->IsShown ()) { @@ -150,7 +152,7 @@ private: _sizer->Detach (_button); _button->Hide (); - _sizer->Add (_wrapped, _position); + _sizer->Add (_wrapped, _position, _span); _wrapped->Show (); _sizer->Layout (); } @@ -160,11 +162,11 @@ private: if (_button->IsShown ()) { return; } - + _wrapped->Hide (); _sizer->Detach (_wrapped); _button->Show (); - _sizer->Add (_button, _position); + _sizer->Add (_button, _position, _span); _sizer->Layout (); } @@ -182,10 +184,11 @@ private: update_from_model (); } } - + T* _wrapped; wxGridBagSizer* _sizer; wxGBPosition _position; + wxGBSpan _span; wxButton* _button; List _content; int _property;