X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fcontent_widget.h;h=3fa1f0ddc20c168d6d45d0cdf773c2d872f93db9;hb=e60bb3e51bd1508b149e6b8f6608f09b5196ae26;hp=bbe16039998e9d22db60594cd5b3534d856538ef;hpb=7b2054e2a73844450b5b55c5788c02af671812ce;p=dcpomatic.git diff --git a/src/wx/content_widget.h b/src/wx/content_widget.h index bbe160399..3fa1f0ddc 100644 --- a/src/wx/content_widget.h +++ b/src/wx/content_widget.h @@ -41,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. @@ -90,7 +90,7 @@ public: } _connections.clear (); - + _content = content; _wrapped->Enable (!_content.empty ()); @@ -103,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 */ @@ -140,9 +141,9 @@ public: } _ignore_model_changes = false; } - + private: - + void set_single () { if (_wrapped->IsShown ()) { @@ -151,7 +152,7 @@ private: _sizer->Detach (_button); _button->Hide (); - _sizer->Add (_wrapped, _position); + _sizer->Add (_wrapped, _position, _span); _wrapped->Show (); _sizer->Layout (); } @@ -161,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 (); } @@ -183,10 +184,11 @@ private: update_from_model (); } } - + T* _wrapped; wxGridBagSizer* _sizer; wxGBPosition _position; + wxGBSpan _span; wxButton* _button; List _content; int _property;