summaryrefslogtreecommitdiff
path: root/gtk2_ardour/utils.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-07-31 20:11:15 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-07-31 20:11:15 -0400
commit6a436fd826d1c9d88b60287696cc0836ccce35aa (patch)
tree460a08b4d46359b6b168ece26f592c75fc2fe41f /gtk2_ardour/utils.cc
parentbb59def1ca8a21f915cf636dd1e54957df981656 (diff)
parent4dc74ae2ea13d2e5a8b481961d507df1ff98df97 (diff)
fix merge conflict from master
Diffstat (limited to 'gtk2_ardour/utils.cc')
-rw-r--r--gtk2_ardour/utils.cc49
1 files changed, 48 insertions, 1 deletions
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index 66f87abd9c..557c86c3f6 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -302,6 +302,53 @@ rgba_from_style (string style, uint32_t r, uint32_t g, uint32_t b, uint32_t a, s
}
bool
+rgba_p_from_style (string style, float *r, float *g, float *b, string attr, int state)
+{
+ static Gtk::Window* window = 0;
+ assert (r && g && b);
+
+ if (window == 0) {
+ window = new Window (WINDOW_TOPLEVEL);
+ }
+
+ Gtk::EventBox foo;
+
+ window->add (foo);
+
+ foo.set_name (style);
+ foo.ensure_style ();
+
+ GtkRcStyle* rc = foo.get_style()->gobj()->rc_style;
+
+ if (!rc) {
+ warning << string_compose (_("missing RGBA style for \"%1\""), style) << endl;
+ return false;
+ }
+ if (attr == "fg") {
+ *r = rc->fg[state].red / 65535.0;
+ *g = rc->fg[state].green / 65535.0;
+ *b = rc->fg[state].blue / 65535.0;
+ } else if (attr == "bg") {
+ *r = rc->bg[state].red / 65535.0;
+ *g = rc->bg[state].green / 65535.0;
+ *b = rc->bg[state].blue / 65535.0;
+ } else if (attr == "base") {
+ *r = rc->base[state].red / 65535.0;
+ *g = rc->base[state].green / 65535.0;
+ *b = rc->base[state].blue / 65535.0;
+ } else if (attr == "text") {
+ *r = rc->text[state].red / 65535.0;
+ *g = rc->text[state].green / 65535.0;
+ *b = rc->text[state].blue / 65535.0;
+ } else {
+ return false;
+ }
+
+ window->remove ();
+ return true;
+}
+
+bool
canvas_item_visible (ArdourCanvas::Item* item)
{
return (item->gobj()->object.flags & GNOME_CANVAS_ITEM_VISIBLE) ? true : false;
@@ -348,7 +395,7 @@ emulate_key_event (Gtk::Widget* w, unsigned int keyval)
ev.state = 0;
ev.keyval = keyval;
ev.length = 0;
- ev.string = (gchar*) "";
+ ev.string = "";
ev.hardware_keycode = keymapkey[0].keycode;
ev.group = keymapkey[0].group;
g_free(keymapkey);