From 9d35a105bd3cfa14bd139028490ce880ce4d7fb5 Mon Sep 17 00:00:00 2001 From: Colin Fletcher Date: Tue, 10 Feb 2015 11:06:55 +0000 Subject: Add EAN barcode field to session metadata dialogue Add an EAN13MetadataField type to the session metadata dialogue, and use it for entry of the EAN barcode in the 'album' tab. --- gtk2_ardour/session_metadata_dialog.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gtk2_ardour/session_metadata_dialog.h') diff --git a/gtk2_ardour/session_metadata_dialog.h b/gtk2_ardour/session_metadata_dialog.h index 1599e50bb3..6dc4e6e371 100644 --- a/gtk2_ardour/session_metadata_dialog.h +++ b/gtk2_ardour/session_metadata_dialog.h @@ -120,6 +120,35 @@ 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 (); + 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: -- cgit v1.2.3