Code

Make all icons themable (except the filter icons).
[inkscape.git] / src / main.cpp
index eb1a0b103fefbe3d3a8d6de512b848e0df8082c9..b9e5a98e2f4f39ae1afaec9c5b4f5dfd77fee4a9 100644 (file)
@@ -68,8 +68,7 @@
 #include "svg/stringstream.h"
 
 #include "inkscape-private.h"
-#include "inkscape-stock.h"
-#include "inkscape_version.h"
+#include "inkscape-version.h"
 
 #include "sp-namedview.h"
 #include "sp-guide.h"
@@ -110,8 +109,10 @@ using Inkscape::Extension::Internal::PrintWin32;
 #endif
 
 #include "application/application.h"
-
 #include "main-cmdlineact.h"
+#include "widgets/icon.h"
+#include "ui/widget/panel.h"
+
 
 #include <png.h>
 #include <errno.h>
@@ -562,6 +563,9 @@ main(int argc, char **argv)
     rt.setPathInfo();
 #endif
 
+    // Prevents errors like "Unable to wrap GdkPixbuf..." (in nr-filter-image.cpp for example)
+    Gtk::Main::init_gtkmm_internals();
+
     // Bug #197475
     set_extensions_env();
 
@@ -830,19 +834,17 @@ sp_main_gui(int argc, char const **argv)
     int retVal = sp_common_main( argc, argv, &fl );
     g_return_val_if_fail(retVal == 0, 1);
 
-    inkscape_gtk_stock_init();
+    // Add our icon directory to the search path for icon theme lookups.
+    gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), INKSCAPE_PIXMAPDIR);
 
     gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL);
-
     Inkscape::Debug::log_display_config();
 
-    /* Set default icon */
-    gchar *filename = (gchar *) g_build_filename (INKSCAPE_APPICONDIR, "inkscape.png", NULL);
-    if (Inkscape::IO::file_test(filename, (GFileTest)(G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_SYMLINK))) {
-        gtk_window_set_default_icon_from_file(filename, NULL);
-    }
-    g_free (filename);
-    filename = 0;
+    // Set default window icon. Obeys the theme.
+    gtk_window_set_default_icon_name("inkscape");
+    // Do things that were previously in inkscape_gtk_stock_init().
+    sp_icon_get_phys_size(GTK_ICON_SIZE_MENU);
+    Inkscape::UI::Widget::Panel::prep();
 
     gboolean create_new = TRUE;
 
@@ -948,7 +950,7 @@ int sp_main_shell(char const* command_name)
     gsize sizeLeft = buffer_size - offset;
     gchar *useme = command_line + offset;
 
-    fprintf(stdout, "Inkscape %s interactive shell mode. Type 'quit' to quit.\n", INKSCAPE_VERSION);
+    fprintf(stdout, "Inkscape %s interactive shell mode. Type 'quit' to quit.\n", Inkscape::version_string);
     fflush(stdout);
     char* linedata = 0;
     do {
@@ -1721,7 +1723,7 @@ sp_process_args(poptContext ctx)
                 break;
             }
             case SP_ARG_VERSION: {
-                printf("Inkscape %s (%s)\n", INKSCAPE_VERSION, __DATE__);
+                printf("Inkscape %s (%s)\n", Inkscape::version_string, __DATE__);
                 exit(0);
                 break;
             }