X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fsession_metadata_dialog.h;h=b52efe4c0cdabb71f8e75c1c0bc20ae20d65359e;hb=7701207123891b400c144db880b77dc698a202ea;hp=1599e50bb3e9c5d804f8fac5eae821bab80d09f1;hpb=7000afdc66c9e0ae8dcf9ec080517dabba1e7f34;p=ardour.git diff --git a/gtk2_ardour/session_metadata_dialog.h b/gtk2_ardour/session_metadata_dialog.h index 1599e50bb3..b52efe4c0c 100644 --- a/gtk2_ardour/session_metadata_dialog.h +++ b/gtk2_ardour/session_metadata_dialog.h @@ -120,6 +120,38 @@ class NumberMetadataField : public MetadataField { guint width; }; +/// MetadataField that accepts EAN-13 data only +class EAN13MetadataField : public MetadataField { + private: + typedef std::string (ARDOUR::SessionMetadata::*Getter) () const; + typedef void (ARDOUR::SessionMetadata::*Setter) (std::string const &); + public: + EAN13MetadataField (Getter getter, Setter setter, std::string const & field_name, guint width = 13); + MetadataPtr copy (); + + void save_data (ARDOUR::SessionMetadata & data) const; + void load_data (ARDOUR::SessionMetadata const & data); + + Gtk::Widget & name_widget (); + Gtk::Widget & value_widget (); + Gtk::Widget & edit_widget (); + + Gtk::Label* status_label; + void update_status (); + private: + void update_value (); + std::string numeric_string (std::string const & str) const; + + Getter getter; + Setter setter; + + Gtk::Label* label; + Gtk::Label* value_label; + Gtk::Entry* entry; + + guint width; +}; + /// Interface for MetadataFields class SessionMetadataSet : public ARDOUR::SessionHandlePtr { public: