summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Mueller <github@johannes-mueller.org>2017-07-21 00:37:07 +0200
committerRobin Gareus <robin@gareus.org>2017-07-31 21:31:22 +0200
commit4a60c277dbf28b5fd371a04e5d7ca3d7b8df669f (patch)
tree6cf6044b7f3af205c1d8ff889122b6ac31175337
parenta61ae46c82616eff3ec1f8dd1e1385cad227d25e (diff)
Some abstractions to make the display look good in the plugin gui
-rw-r--r--gtk2_ardour/plugin_display.cc16
-rw-r--r--gtk2_ardour/plugin_display.h2
-rw-r--r--gtk2_ardour/processor_box.cc6
-rw-r--r--gtk2_ardour/processor_box.h2
4 files changed, 23 insertions, 3 deletions
diff --git a/gtk2_ardour/plugin_display.cc b/gtk2_ardour/plugin_display.cc
index ed95e9aa5a..b04eb271b7 100644
--- a/gtk2_ardour/plugin_display.cc
+++ b/gtk2_ardour/plugin_display.cc
@@ -153,7 +153,7 @@ PluginDisplay::on_expose_event (GdkEventExpose* ev)
cairo_save (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
- Gtkmm2ext::rounded_rectangle (cr, .5, -1.5, width - 1, height + 1, 7);
+ display_frame(cr, width, height);
cairo_clip (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
@@ -176,12 +176,22 @@ PluginDisplay::on_expose_event (GdkEventExpose* ev)
std::string name = get_name();
Gtkmm2ext::Color fill_color = UIConfiguration::instance().color (string_compose ("%1: fill active", name), &failed);
- Gtkmm2ext::rounded_rectangle (cr, .5, -1.5, width - 1, height + 1, 7);
+ display_frame(cr, width, height);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
cairo_set_line_width(cr, 1.0);
- Gtkmm2ext::set_source_rgb_a (cr, fill_color, 1.0);
+ if (failed) {
+ cairo_set_source_rgba (cr, .75, .75, .75, 1.0);
+ } else {
+ Gtkmm2ext::set_source_rgb_a (cr, fill_color, 1.0);
+ }
cairo_stroke (cr);
cairo_destroy(cr);
return true;
}
+
+void
+PluginDisplay::display_frame (cairo_t* cr, double w, double h)
+{
+ cairo_rectangle (cr, 0.0, 0.0, w, h);
+}
diff --git a/gtk2_ardour/plugin_display.h b/gtk2_ardour/plugin_display.h
index 4828ee7739..4a2587e79f 100644
--- a/gtk2_ardour/plugin_display.h
+++ b/gtk2_ardour/plugin_display.h
@@ -43,6 +43,8 @@ protected:
void update_height_alloc (uint32_t inline_height);
virtual uint32_t render_inline (cairo_t *, uint32_t width);
+ virtual void display_frame (cairo_t* cr, double w, double h);
+
boost::shared_ptr<ARDOUR::Plugin> _plug;
PBD::ScopedConnection _qdraw_connection;
PBD::ScopedConnection _death_connection;
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index 476d6c0995..a25ac0de40 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -1646,6 +1646,12 @@ ProcessorEntry::PluginInlineDisplay::update_height_alloc (uint32_t inline_height
_scroll = sc;
}
+void
+ProcessorEntry::PluginInlineDisplay::display_frame (cairo_t* cr, double w, double h)
+{
+ Gtkmm2ext::rounded_rectangle (cr, .5, -1.5, w - 1, h + 1, 7);
+}
+
ProcessorEntry::LuaPluginDisplay::LuaPluginDisplay (ProcessorEntry& e, boost::shared_ptr<ARDOUR::LuaProc> p, uint32_t max_height)
: PluginInlineDisplay (e, p, max_height)
, _luaproc (p)
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h
index 34fac115ca..400b9fafc9 100644
--- a/gtk2_ardour/processor_box.h
+++ b/gtk2_ardour/processor_box.h
@@ -255,6 +255,8 @@ private:
bool on_button_press_event (GdkEventButton *ev);
void update_height_alloc (uint32_t inline_height);
+ void display_frame (cairo_t* cr, double w, double h);
+
ProcessorEntry& _entry;
bool _scroll;
};