static void theme_selected_cb (GtkTreeSelection *selection, gpointer data) { EyesApplet *eyes_applet = data; GtkTreeModel *model; GtkTreeIter iter; gchar *theme; gchar *theme_dir; if (!gtk_tree_selection_get_selected (selection, &model, &iter)) return; gtk_tree_model_get (model, &iter, COL_THEME_DIR, &theme, -1); g_return_if_fail (theme); theme_dir = g_strdup_printf ("%s/", theme); if (!g_ascii_strncasecmp (theme_dir, eyes_applet->theme_dir, strlen (theme_dir))) { g_free (theme_dir); return; } g_free (theme_dir); destroy_eyes (eyes_applet); destroy_theme (eyes_applet); load_theme (eyes_applet, theme); setup_eyes (eyes_applet); panel_applet_gconf_set_string ( eyes_applet->applet, "theme_path", theme, NULL); g_free (theme); }
static void destroy_cb (GtkObject *object, EyesApplet *eyes_applet) { g_return_if_fail (eyes_applet); g_source_remove (eyes_applet->timeout_id); if (eyes_applet->hbox) destroy_eyes (eyes_applet); eyes_applet->timeout_id = 0; if (eyes_applet->eye_image) g_object_unref (eyes_applet->eye_image); eyes_applet->eye_image = NULL; if (eyes_applet->pupil_image) g_object_unref (eyes_applet->pupil_image); eyes_applet->pupil_image = NULL; if (eyes_applet->theme_dir) g_free (eyes_applet->theme_dir); eyes_applet->theme_dir = NULL; if (eyes_applet->theme_name) g_free (eyes_applet->theme_name); eyes_applet->theme_name = NULL; if (eyes_applet->eye_filename) g_free (eyes_applet->eye_filename); eyes_applet->eye_filename = NULL; if (eyes_applet->pupil_filename) g_free (eyes_applet->pupil_filename); eyes_applet->pupil_filename = NULL; if (eyes_applet->prop_box.pbox) gtk_widget_destroy (eyes_applet->prop_box.pbox); g_free (eyes_applet); }