#include "ardour_dialog.h"
+#ifdef interface
+#undef interface
+#endif
+
#include <gtkmm.h>
#include <boost/shared_ptr.hpp>
Gtk::Label* value_label;
Gtk::Entry* entry;
- uint width;
+ guint width;
};
/// MetadataField that accepts only numbers
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:
SessionMetadataDialog (std::string const & name);
protected:
- void init_data ();
+ void init_data ( bool skip_user = false );
void load_extra_data (ARDOUR::SessionMetadata const & data);
void save_data ();
Gtk::Notebook notebook;
private:
+ void init_user_data ();
void init_track_data ();
void init_album_data ();
void init_people_data ();
+ void init_school_data ();
typedef boost::shared_ptr<SessionMetadataSet> DataSetPtr;
typedef std::list<DataSetPtr> DataSetList;