Fix extra widgets appearing when switching between subs and closed captions in the...
[dcpomatic.git] / src / wx / language_tag_widget.h
index eee72f6a087296370ea2978a0a3787878ec6fda1..ff3eeb7270f5fb2b525ae77056805d2ef44a70f8 100644 (file)
 
 
 #include <dcp/language_tag.h>
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/wx.h>
-#include <boost/noncopyable.hpp>
+LIBDCP_ENABLE_WARNINGS
 #include <boost/signals2.hpp>
 
 
@@ -31,12 +33,24 @@ class wxStaticText;
 class wxWindow;
 
 
-class LanguageTagWidget : public boost::noncopyable
+class LanguageTagWidget
 {
 public:
-       LanguageTagWidget (wxWindow* parent, wxSizer* sizer, wxString label, wxString tooltip, dcp::LanguageTag tag);
+       LanguageTagWidget (wxWindow* parent, wxString tooltip, boost::optional<dcp::LanguageTag> tag, boost::optional<wxString> size_to_fit = boost::none);
+       ~LanguageTagWidget();
 
-       void set (dcp::LanguageTag tag);
+       LanguageTagWidget (LanguageTagWidget const&) = delete;
+       LanguageTagWidget& operator= (LanguageTagWidget const&) = delete;
+
+       wxSizer* sizer () const {
+               return _sizer;
+       }
+
+       boost::optional<dcp::LanguageTag> get () const {
+               return _tag;
+       }
+       void set (boost::optional<dcp::LanguageTag> tag);
+       void enable (bool e);
 
        boost::signals2::signal<void (dcp::LanguageTag)> Changed;
 
@@ -46,6 +60,7 @@ private:
        wxStaticText* _language;
        wxButton* _edit;
        wxWindow* _parent;
-       dcp::LanguageTag _tag;
+       boost::optional<dcp::LanguageTag> _tag;
+       wxSizer* _sizer;
 };