diff --git a/src/stock/arrow.xpm b/data/icons/arrow.xpm similarity index 100% rename from src/stock/arrow.xpm rename to data/icons/arrow.xpm diff --git a/src/stock/clamp.xpm b/data/icons/clamp.xpm similarity index 100% rename from src/stock/clamp.xpm rename to data/icons/clamp.xpm diff --git a/src/stock/grid.xcf b/data/icons/grid.xcf similarity index 100% rename from src/stock/grid.xcf rename to data/icons/grid.xcf diff --git a/src/stock/grid.xpm b/data/icons/grid.xpm similarity index 100% rename from src/stock/grid.xpm rename to data/icons/grid.xpm diff --git a/src/pixmaps/log.xpm b/data/icons/log.xpm similarity index 100% rename from src/pixmaps/log.xpm rename to data/icons/log.xpm diff --git a/src/pixmaps/logo.png b/data/icons/logo.png similarity index 100% rename from src/pixmaps/logo.png rename to data/icons/logo.png diff --git a/src/pixmaps/logo.xpm b/data/icons/logo.xpm similarity index 100% rename from src/pixmaps/logo.xpm rename to data/icons/logo.xpm diff --git a/src/pixmaps/menu_zoom.xcf b/data/icons/menu_zoom.xcf similarity index 100% rename from src/pixmaps/menu_zoom.xcf rename to data/icons/menu_zoom.xcf diff --git a/src/pixmaps/menu_zoom.xpm b/data/icons/menu_zoom.xpm similarity index 100% rename from src/pixmaps/menu_zoom.xpm rename to data/icons/menu_zoom.xpm diff --git a/src/pixmaps/mini_icon.xpm b/data/icons/mini_icon.xpm similarity index 100% rename from src/pixmaps/mini_icon.xpm rename to data/icons/mini_icon.xpm diff --git a/src/pixmaps/mini_icon_plot.xcf b/data/icons/mini_icon_plot.xcf similarity index 100% rename from src/pixmaps/mini_icon_plot.xcf rename to data/icons/mini_icon_plot.xcf diff --git a/src/pixmaps/mini_icon_plot.xpm b/data/icons/mini_icon_plot.xpm similarity index 100% rename from src/pixmaps/mini_icon_plot.xpm rename to data/icons/mini_icon_plot.xpm diff --git a/src/stock/part-browser.xcf b/data/icons/part-browser.xcf similarity index 100% rename from src/stock/part-browser.xcf rename to data/icons/part-browser.xcf diff --git a/src/stock/part-browser.xpm b/data/icons/part-browser.xpm similarity index 100% rename from src/stock/part-browser.xpm rename to data/icons/part-browser.xpm diff --git a/src/stock/plot.xcf b/data/icons/plot.xcf similarity index 100% rename from src/stock/plot.xcf rename to data/icons/plot.xcf diff --git a/src/stock/plot.xpm b/data/icons/plot.xpm similarity index 100% rename from src/stock/plot.xpm rename to data/icons/plot.xpm diff --git a/src/stock/plot2.xcf b/data/icons/plot2.xcf similarity index 100% rename from src/stock/plot2.xcf rename to data/icons/plot2.xcf diff --git a/src/stock/rotate.xpm b/data/icons/rotate.xpm similarity index 100% rename from src/stock/rotate.xpm rename to data/icons/rotate.xpm diff --git a/src/stock/sim-settings.xpm b/data/icons/sim-settings.xpm similarity index 100% rename from src/stock/sim-settings.xpm rename to data/icons/sim-settings.xpm diff --git a/src/stock/text.xpm b/data/icons/text.xpm similarity index 100% rename from src/stock/text.xpm rename to data/icons/text.xpm diff --git a/src/pixmaps/tool_arrow.xpm b/data/icons/tool_arrow.xpm similarity index 100% rename from src/pixmaps/tool_arrow.xpm rename to data/icons/tool_arrow.xpm diff --git a/src/pixmaps/tool_text.xpm b/data/icons/tool_text.xpm similarity index 100% rename from src/pixmaps/tool_text.xpm rename to data/icons/tool_text.xpm diff --git a/src/pixmaps/tool_wire.xpm b/data/icons/tool_wire.xpm similarity index 100% rename from src/pixmaps/tool_wire.xpm rename to data/icons/tool_wire.xpm diff --git a/src/stock/vclamp.xpm b/data/icons/vclamp.xpm similarity index 100% rename from src/stock/vclamp.xpm rename to data/icons/vclamp.xpm diff --git a/src/stock/voltmeter.xpm b/data/icons/voltmeter.xpm similarity index 100% rename from src/stock/voltmeter.xpm rename to data/icons/voltmeter.xpm diff --git a/src/stock/wire.xpm b/data/icons/wire.xpm similarity index 100% rename from src/stock/wire.xpm rename to data/icons/wire.xpm diff --git a/src/stock/zoom_in.xpm b/data/icons/zoom_in.xpm similarity index 100% rename from src/stock/zoom_in.xpm rename to data/icons/zoom_in.xpm diff --git a/src/stock/zoom_out.xpm b/data/icons/zoom_out.xpm similarity index 100% rename from src/stock/zoom_out.xpm rename to data/icons/zoom_out.xpm diff --git a/src/stock/zoom_pan.xpm b/data/icons/zoom_pan.xpm similarity index 100% rename from src/stock/zoom_pan.xpm rename to data/icons/zoom_pan.xpm diff --git a/src/stock/zoom_region.xpm b/data/icons/zoom_region.xpm similarity index 100% rename from src/stock/zoom_region.xpm rename to data/icons/zoom_region.xpm diff --git a/data/wscript b/data/wscript index eef75450..259861a4 100644 --- a/data/wscript +++ b/data/wscript @@ -29,6 +29,9 @@ def build(bld): bld.install_files (bld.env.path_examples, bld.path.ant_glob('examples/*.oregano')) bld.install_files (bld.env.path_partslib, bld.path.ant_glob('libraries/*.oreglib')) bld.install_files (bld.env.path_ui, bld.path.ant_glob('xml/*.ui')) + bld.install_files (bld.env.path_icons, bld.path.ant_glob('icons/*.png')) + bld.install_files (bld.env.path_icons, bld.path.ant_glob('icons/*.svg')) + bld.install_files (bld.env.path_icons, bld.path.ant_glob('icons/*.jpg')) try: bld.exec_command(['update-desktop-database', utils.subst_vars('${DATADIR}/applications', bld.env)]) diff --git a/src/dialogs.c b/src/dialogs.c index 96e31d04..4506ff6f 100644 --- a/src/dialogs.c +++ b/src/dialogs.c @@ -35,8 +35,6 @@ #include "dialogs.h" #include "oregano.h" -#include "pixmaps/logo.xpm" - void oregano_error (gchar *msg) { oregano_error_with_title (msg, NULL); } void oregano_error_with_title (gchar *title, gchar *desc) @@ -117,7 +115,8 @@ void dialog_about (void) const char *docs[] = {"Ricardo Markiewicz (es)", "Jordi Mallach (ca)", - "Marc Lorber (en)", NULL}; + "Marc Lorber (en)", + "Bernhard Schuster (de,en,sv)", NULL}; const gchar *copy = _ ("(c) 2012-2013 Bernhard Schuster\n" "(c) 2009-2012 Marc Lorber\n" @@ -130,7 +129,6 @@ void dialog_about (void) return; } - logo = gdk_pixbuf_new_from_xpm_data ((const char **)logo_xpm); about = gtk_about_dialog_new (); gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (about), "Oregano"); gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (about), VERSION); @@ -141,8 +139,10 @@ void dialog_about (void) gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about), "https://ahoi.io/project/oregano"); gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), authors); gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG (about), docs); - gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (about), logo); + gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (about), oregano_get_icon("oregano-logo")); + gtk_dialog_run (GTK_DIALOG (about)); + gtk_widget_destroy (about); about = NULL; } diff --git a/src/icons.h b/src/icons.h new file mode 100644 index 00000000..3bfb76bb --- /dev/null +++ b/src/icons.h @@ -0,0 +1,42 @@ +#ifndef OREGANO_ICONS_H +#define OREGANO_ICONS_H + +#include + + +void oregano_icon_theme_changed(GtkIconTheme *iconteme, gpointer user_data) +{ + +} + +void oregano_icon_init() +{ + GtkIconTheme* icon_theme = gtk_icon_theme_get_default(); + g_assert (icon_theme != NULL); + gtk_icon_theme_append_search_path (icon_theme, OREGANO_ICONDIR); + g_signal_connect (icon_theme, "changed", G_CALLBACK(oregano_icon_theme_changed), NULL); +} + + +GdkPixbuf * oregano_get_icon(const gchar *icon_name) +{ + GtkIconTheme* icon_theme = gtk_icon_theme_get_default(); + g_assert (icon_theme != NULL); + GError *e = NULL; + + GtkIconInfo *icon_info = gtk_icon_theme_lookup_icon (icon_theme, + icon_name, + 64, + 0); + g_assert (icon_info); + + GdkPixbuf* pixbuf = gtk_icon_info_load_icon (icon_info, &e); + if (e) { + g_message("Failed to get %s %s %i", icon_name, e->message, e->code); + g_clear_error(&e); + return NULL; + } + return pixbuf; +} + +#endif diff --git a/src/oregano.c b/src/oregano.c index e27c84fa..efdcbc17 100644 --- a/src/oregano.c +++ b/src/oregano.c @@ -54,9 +54,9 @@ #include "load-schematic.h" #include "load-common.h" #include "oregano-config.h" -#include "stock.h" #include "oregano.h" #include "splash.h" +#include "icons.h" #include @@ -87,14 +87,15 @@ static void oregano_class_init (OreganoClass *klass) static void oregano_init (Oregano *object) { cursors_init (); - stock_init (); + + oregano_icon_init(); oregano_config_load (); } Oregano *oregano_new (void) { - return g_object_new (oregano_get_type (), "application-id", "org.gnome.oregano", "flags", + return g_object_new (oregano_get_type (), "application-id", "io.ahoi.oregano", "flags", G_APPLICATION_HANDLES_OPEN, NULL); } diff --git a/src/pixmaps/README b/src/pixmaps/README deleted file mode 100644 index 4df941e0..00000000 --- a/src/pixmaps/README +++ /dev/null @@ -1,2 +0,0 @@ -The pixmaps here should eventually be moved to ../stock/ - diff --git a/src/pixmaps/plot.xpm b/src/pixmaps/plot.xpm deleted file mode 100644 index 7aba9337..00000000 --- a/src/pixmaps/plot.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -static char * plot_xpm[] = { -"16 16 53 1", -" c None", -". c #1E1E1E", -"+ c #272727", -"@ c #2E2E2E", -"# c #932F3D", -"$ c #993242", -"% c #A33142", -"& c #962E3D", -"* c #70232E", -"= c #932F3F", -"- c #A23243", -"; c #292929", -"> c #7F2836", -", c #922F3E", -"' c #9F3040", -") c #963141", -"! c #2C2C2C", -"~ c #9D3243", -"{ c #6D232F", -"] c #933040", -"^ c #8A2D3B", -"/ c #952D3C", -"( c #1E1D1D", -"_ c #9B3444", -": c #AF3547", -"< c #491D23", -"[ c #932C3B", -"} c #2B2B2B", -"| c #2D2D2D", -"1 c #333333", -"2 c #2A2A2A", -"3 c #2C2B2B", -"4 c #552930", -"5 c #8A313E", -"6 c #872A38", -"7 c #9F3141", -"8 c #813944", -"9 c #AE384A", -"0 c #571D26", -"a c #9E3948", -"b c #3E2D2F", -"c c #94303F", -"d c #7D2532", -"e c #5D2A32", -"f c #641E29", -"g c #8E2B3A", -"h c #AE3A4B", -"i c #AC3445", -"j c #6B2F38", -"k c #A53445", -"l c #A13141", -"m c #63212B", -"n c #6A212C", -" . ", -" + ", -" @ ", -" #$% . &", -" *= - ; >,", -" ' ) ! ~ ", -"{] ^/ ( _ ", -":< [ } ] ", -"_|;1!2_}}1231451", -"6 78. 90 ", -" ab c ", -" de fg ", -" h i ", -" jk_l ", -" +mn ", -" . "}; diff --git a/wscript b/wscript index 04e3a196..3a6dd681 100644 --- a/wscript +++ b/wscript @@ -33,11 +33,11 @@ def configure(conf): #things the applications needs to know about, for easier re-use in subdir wscript(s) conf.env.path_ui = utils.subst_vars('${DATADIR}/oregano/ui/', conf.env) + conf.env.path_examples = utils.subst_vars('${DATADIR}/oregano/icons/', conf.env) conf.env.path_model = utils.subst_vars('${DATADIR}/oregano/models/', conf.env) conf.env.path_partslib = utils.subst_vars('${DATADIR}/oregano/library/', conf.env) conf.env.path_lang = utils.subst_vars('${DATADIR}/oregano/language-specs/', conf.env) conf.env.path_examples = utils.subst_vars('${DATADIR}/oregano/examples/', conf.env) -# conf.env.path_icons = '${DATADIR}/oregano/icons/' # conf.env.path_mime = '${DATADIR}/oregano/mime/' # conf.env.path_locale = '${DATADIR}/oregano/locale/' # conf.env.path_schemas = utils.subst_vars('${DATADIR}/glib-2.0/schemas/', conf.env) @@ -45,11 +45,11 @@ def configure(conf): #define the above paths so the application does know about files locations conf.define('OREGANO_UIDIR', conf.env.path_ui) + conf.define('OREGANO_ICONDIR', conf.env.path_icons) conf.define('OREGANO_MODELDIR', conf.env.path_model) conf.define('OREGANO_LIBRARYDIR', conf.env.path_partslib) conf.define('OREGANO_LANGDIR', conf.env.path_lang) conf.define('OREGANO_EXAMPLEDIR', conf.env.path_examples) -# conf.define('OREGANO_ICONDIR', conf.env.path_icons) # conf.define('OREGANO_MIMEDIR', conf.env.path_mime) # conf.define('OREGANO_LOCALEDIR', conf.env.path_locale) # conf.define('OREGANO_SCHEMASDIR', conf.env.path_schemas)