diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-07-31 20:11:15 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-07-31 20:11:15 -0400 |
commit | 6a436fd826d1c9d88b60287696cc0836ccce35aa (patch) | |
tree | 460a08b4d46359b6b168ece26f592c75fc2fe41f /gtk2_ardour/utils.cc | |
parent | bb59def1ca8a21f915cf636dd1e54957df981656 (diff) | |
parent | 4dc74ae2ea13d2e5a8b481961d507df1ff98df97 (diff) |
fix merge conflict from master
Diffstat (limited to 'gtk2_ardour/utils.cc')
-rw-r--r-- | gtk2_ardour/utils.cc | 49 |
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); |