diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-05 09:01:49 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-05 09:01:55 -0500 |
commit | 2449fc9681ba62eda3f3a42904a3691fe022954d (patch) | |
tree | 4a407a7afba6be2e14c64d446c7556b0c158313e /gtk2_ardour/theme_manager.h | |
parent | 207fd04587e7d354c9b98453b01cc0825b2ba556 (diff) |
several steps closer to more sane color system
Diffstat (limited to 'gtk2_ardour/theme_manager.h')
-rw-r--r-- | gtk2_ardour/theme_manager.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gtk2_ardour/theme_manager.h b/gtk2_ardour/theme_manager.h index dee5b705c0..c55ef7fcc1 100644 --- a/gtk2_ardour/theme_manager.h +++ b/gtk2_ardour/theme_manager.h @@ -28,9 +28,18 @@ #include <gtkmm/button.h> #include <gtkmm/scale.h> #include <gtkmm/rc.h> + +#include "canvas/canvas.h" + #include "ardour_window.h" + #include "ui_config.h" +namespace ArdourCanvas { + class Container; + class ScrollGroup; +} + class ThemeManager : public ArdourWindow { public: @@ -53,6 +62,8 @@ class ThemeManager : public ArdourWindow void on_icon_set_changed (); private: + Gtk::Notebook notebook; + struct ColorDisplayModelColumns : public Gtk::TreeModel::ColumnRecord { ColorDisplayModelColumns() { add (name); @@ -89,7 +100,53 @@ class ThemeManager : public ArdourWindow Gtk::Label icon_set_label; Gtk::ComboBoxText icon_set_dropdown; + ColorDisplayModelColumns base_color_columns; + Gtk::ScrolledWindow base_color_scroller; + ArdourCanvas::GtkCanvasViewport base_color_viewport; + ArdourCanvas::Container* base_color_group; + std::string base_color_edit_name; + + sigc::connection color_dialog_connection; + void foobar_response (int); + + ArdourCanvas::Container* initialize_canvas (ArdourCanvas::Canvas& canvas); + void build_base_color_canvas (ArdourCanvas::Container&, bool (ThemeManager::*event_handler)(GdkEvent*,std::string), double width, double height); + void base_color_viewport_allocated (Gtk::Allocation&); + void base_color_dialog_done (int); + bool base_color_event (GdkEvent*, std::string); + void edit_named_color (std::string); + bool button_press_event (GdkEventButton*); + + + struct ColorAliasModelColumns : public Gtk::TreeModel::ColumnRecord { + ColorAliasModelColumns() { + add (name); + add (alias); + add (color); + } + + Gtk::TreeModelColumn<std::string> name; + Gtk::TreeModelColumn<std::string> alias; + Gtk::TreeModelColumn<Gdk::Color> color; + }; + + ColorAliasModelColumns alias_columns; + Gtk::TreeView alias_display; + Glib::RefPtr<Gtk::TreeStore> alias_list; + Gtk::ScrolledWindow alias_scroller; + + bool alias_button_press_event (GdkEventButton*); + + Gtk::Window* palette_window; + std::string palette_edit_name; + + void choose_color_from_palette (std::string const &target_name); + bool palette_chosen (GdkEvent*, std::string); + void palette_canvas_allocated (Gtk::Allocation& alloc, ArdourCanvas::Container* group, bool (ThemeManager::*event_handler)(GdkEvent*,std::string)); + bool palette_done (GdkEventAny*); + + void setup_aliases (); }; #endif /* __ardour_gtk_color_manager_h__ */ |