Remove some never-seen tooltips (overridden by other
[ardour.git] / gtk2_ardour / option_editor.h
index f76ba2df93e41c3270a70e2bf131add803abb6c7..dd34b850579437347b5b77f4fe352115170644be 100644 (file)
@@ -26,7 +26,8 @@
 #include <gtkmm/spinbutton.h>
 #include <gtkmm/table.h>
 #include "gtkmm2ext/slider_controller.h"
-#include "ardour_dialog.h"
+#include "ardour_window.h"
+#include "audio_clock.h"
 #include "ardour/types.h"
 
 /** @file option_editor.h
@@ -70,6 +71,13 @@ public:
 
        void add_widget_to_page (OptionEditorPage*, Gtk::Widget*);
        void add_widgets_to_page (OptionEditorPage*, Gtk::Widget*, Gtk::Widget*);
+
+       void set_note (std::string const &);
+
+private:
+       void maybe_add_note (OptionEditorPage *, int);
+       
+       std::string _note;
 };
 
 /** A component which provides a subheading within the dialog */
@@ -136,7 +144,7 @@ public:
                return _id;
        }
 
-private:
+protected:
 
        std::string _id;
        std::string _name;
@@ -151,6 +159,10 @@ public:
        void set_state_from_config ();
        void add_to_page (OptionEditorPage*);
 
+       void set_sensitive (bool yn) {
+               _button->set_sensitive (yn);
+       }
+
 private:
 
        void toggled ();
@@ -346,7 +358,7 @@ public:
 
 private:
        void db_changed ();
-       
+
        Gtk::Adjustment _db_adjustment;
        Gtkmm2ext::HSliderController* _db_slider;
        Glib::RefPtr<Gdk::Pixbuf> _pix;
@@ -357,6 +369,38 @@ private:
        sigc::slot<bool, ARDOUR::gain_t> _set;
 };
 
+class ClockOption : public Option
+{
+public:
+       ClockOption (std::string const &, std::string const &, sigc::slot<ARDOUR::framecnt_t>, sigc::slot<bool, ARDOUR::framecnt_t>);
+       void set_state_from_config ();
+       void add_to_page (OptionEditorPage *);
+       void set_session (ARDOUR::Session *);
+
+private:
+       Gtk::Label _label;
+       AudioClock _clock;
+       sigc::slot<ARDOUR::framecnt_t> _get;
+       sigc::slot<bool, ARDOUR::framecnt_t> _set;
+};
+
+class DirectoryOption : public Option
+{
+public:
+       DirectoryOption (std::string const &, std::string const &, sigc::slot<std::string>, sigc::slot<bool, std::string>);
+
+       void set_state_from_config ();
+       void add_to_page (OptionEditorPage *);
+
+private:
+       void file_set ();
+       void current_folder_set ();
+       
+       sigc::slot<std::string> _get; ///< slot to get the configuration variable's value
+       sigc::slot<bool, std::string> _set;  ///< slot to set the configuration variable's value
+       Gtk::FileChooserButton _file_chooser;
+};
+
 /** Class to represent a single page in an OptionEditor's notebook.
  *  Pages are laid out using a 3-column table; the 1st column is used
  *  to indent non-headings, and the 2nd and 3rd for actual content.
@@ -372,7 +416,7 @@ public:
 };
 
 /** The OptionEditor dialog base class */
-class OptionEditor : public ArdourDialog
+class OptionEditor : public ArdourWindow
 {
 public:
        OptionEditor (ARDOUR::Configuration *, std::string const &);
@@ -380,13 +424,16 @@ public:
 
        void add_option (std::string const &, OptionEditorComponent *);
 
+       void set_current_page (std::string const &);
+
 protected:
 
+       virtual void parameter_changed (std::string const &);
+
        ARDOUR::Configuration* _config;
 
 private:
 
-       void parameter_changed (std::string const &);
        PBD::ScopedConnection config_connection;
 
        Gtk::Notebook _notebook;