#include "pbd/basename.h"
#include "pbd/file_utils.h"
+#include "pbd/stacktrace.h"
#include <gtkmm2ext/utils.h>
#include "public_editor.h"
#include "keyboard.h"
#include "utils.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
#include "rgb_macros.h"
#include "gui_thread.h"
#include "ui_config.h"
return Pango::FontDescription (pfd); /* make a copy */
}
+Gdk::Color
+ARDOUR_UI_UTILS::gdk_color_from_rgb (uint32_t rgb)
+{
+ Gdk::Color c;
+ set_color_from_rgb (c, rgb);
+ return c;
+}
+
+Gdk::Color
+ARDOUR_UI_UTILS::gdk_color_from_rgba (uint32_t rgba)
+{
+ Gdk::Color c;
+ set_color_from_rgb (c, rgba);
+ return c;
+}
+
void
ARDOUR_UI_UTILS::set_color_from_rgb (Gdk::Color& c, uint32_t rgb)
{
return RGBA_TO_UINT (r,g,b,a);
}
-
bool
ARDOUR_UI_UTILS::relay_key_press (GdkEventKey* ev, Gtk::Window* win)
{
return xpm_map[name];
}
-vector<string>
-ARDOUR_UI_UTILS::get_color_themes ()
+void
+ARDOUR_UI_UTILS::get_color_themes (map<std::string,std::string>& themes)
{
Searchpath spath(ARDOUR::theme_search_path());
- vector<string> r;
for (vector<string>::iterator s = spath.begin(); s != spath.end(); ++s) {
continue;
}
- r.push_back (Glib::filename_to_utf8 (basename_nosuffix(*e)));
+ XMLProperty const* prop = root->property (X_("theme-name"));
+
+ if (!prop) {
+ continue;
+ }
+
+ themes.insert (make_pair (prop->value(), Glib::filename_to_utf8 (basename_nosuffix(*e))));
}
}
-
- return r;
}
vector<string>
return false;
}
}
+
+bool
+ARDOUR_UI_UTILS::running_from_source_tree ()
+{
+ gchar const *x = g_getenv ("ARDOUR_THEMES_PATH");
+ return x && (string (x).find ("gtk2_ardour") != string::npos);
+}