diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/caja-property-browser.c | 149 |
1 files changed, 69 insertions, 80 deletions
diff --git a/src/caja-property-browser.c b/src/caja-property-browser.c index 8c8cea9d..5fb5c249 100644 --- a/src/caja-property-browser.c +++ b/src/caja-property-browser.c @@ -35,13 +35,10 @@ #include <eel/eel-gdk-extensions.h> #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> -#include <eel/eel-mate-extensions.h> #include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <eel/eel-image-table.h> #include <eel/eel-labeled-image.h> #include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <eel/eel-vfs-extensions.h> #include <eel/eel-xml-extensions.h> #include <libxml/parser.h> @@ -122,9 +119,6 @@ struct CajaPropertyBrowserDetails gboolean has_local; }; -static void caja_property_browser_class_init (GtkObjectClass *object_klass); -static void caja_property_browser_init (GtkObject *object); -static void caja_property_browser_destroy (GtkObject *object); static void caja_property_browser_update_contents (CajaPropertyBrowser *property_browser); static void caja_property_browser_set_category (CajaPropertyBrowser *property_browser, const char *new_category); @@ -200,41 +194,85 @@ static GtkTargetEntry drag_types[] = }; -EEL_CLASS_BOILERPLATE (CajaPropertyBrowser, - caja_property_browser, - GTK_TYPE_WINDOW) +G_DEFINE_TYPE (CajaPropertyBrowser, caja_property_browser, GTK_TYPE_WINDOW) + + +/* Destroy the three dialogs for adding patterns/colors/emblems if any of them + exist. */ +static void +caja_property_browser_destroy_dialogs (CajaPropertyBrowser *property_browser) +{ + if (property_browser->details->patterns_dialog) + { + gtk_widget_destroy (property_browser->details->patterns_dialog); + property_browser->details->patterns_dialog = NULL; + } + if (property_browser->details->colors_dialog) + { + gtk_widget_destroy (property_browser->details->colors_dialog); + property_browser->details->colors_dialog = NULL; + } + if (property_browser->details->emblems_dialog) + { + gtk_widget_destroy (property_browser->details->emblems_dialog); + property_browser->details->emblems_dialog = NULL; + } +} -/* initializing the class object by installing the operations we override */ static void -caja_property_browser_class_init (GtkObjectClass *object_klass) +caja_property_browser_dispose (GObject *object) { - CajaPropertyBrowserClass *klass; - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (object_klass); + CajaPropertyBrowser *property_browser; + + property_browser = CAJA_PROPERTY_BROWSER (object); + + caja_property_browser_destroy_dialogs (property_browser); + + g_free (property_browser->details->path); + g_free (property_browser->details->category); + g_free (property_browser->details->dragged_file); + g_free (property_browser->details->drag_type); + + eel_g_list_free_deep (property_browser->details->keywords); - klass = CAJA_PROPERTY_BROWSER_CLASS (object_klass); + if (property_browser->details->property_chit) + { + g_object_unref (property_browser->details->property_chit); + } + + G_OBJECT_CLASS (caja_property_browser_parent_class)->dispose (object); +} - object_klass->destroy = caja_property_browser_destroy; +/* initializing the class object by installing the operations we override */ +static void +caja_property_browser_class_init (CajaPropertyBrowserClass *klass) +{ + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + G_OBJECT_CLASS (klass)->dispose = caja_property_browser_dispose; widget_class->drag_begin = caja_property_browser_drag_begin; widget_class->drag_data_get = caja_property_browser_drag_data_get; widget_class->drag_end = caja_property_browser_drag_end; + + g_type_class_add_private (klass, sizeof (CajaPropertyBrowserDetails)); } /* initialize the instance's fields, create the necessary subviews, etc. */ static void -caja_property_browser_init (GtkObject *object) +caja_property_browser_init (CajaPropertyBrowser *property_browser) { - CajaPropertyBrowser *property_browser; GtkWidget *widget, *temp_box, *temp_hbox, *temp_frame, *vbox; GtkWidget *temp_button; GtkWidget *viewport; PangoAttrList *attrs; char *temp_str; - property_browser = CAJA_PROPERTY_BROWSER (object); - widget = GTK_WIDGET (object); + widget = GTK_WIDGET (property_browser); - property_browser->details = g_new0 (CajaPropertyBrowserDetails, 1); + property_browser->details = G_TYPE_INSTANCE_GET_PRIVATE (property_browser, + CAJA_TYPE_PROPERTY_BROWSER, + CajaPropertyBrowserDetails); property_browser->details->category = g_strdup ("patterns"); property_browser->details->category_type = CAJA_PROPERTY_PATTERN; @@ -405,55 +443,6 @@ caja_property_browser_init (GtkObject *object) caja_property_browser_set_path(property_browser, BROWSER_CATEGORIES_FILE_NAME); } -/* Destroy the three dialogs for adding patterns/colors/emblems if any of them - exist. */ -static void -caja_property_browser_destroy_dialogs (CajaPropertyBrowser *property_browser) -{ - if (property_browser->details->patterns_dialog) - { - gtk_widget_destroy (property_browser->details->patterns_dialog); - property_browser->details->patterns_dialog = NULL; - } - if (property_browser->details->colors_dialog) - { - gtk_widget_destroy (property_browser->details->colors_dialog); - property_browser->details->colors_dialog = NULL; - } - if (property_browser->details->emblems_dialog) - { - gtk_widget_destroy (property_browser->details->emblems_dialog); - property_browser->details->emblems_dialog = NULL; - } -} - -static void -caja_property_browser_destroy (GtkObject *object) -{ - CajaPropertyBrowser *property_browser; - - - property_browser = CAJA_PROPERTY_BROWSER (object); - - caja_property_browser_destroy_dialogs (property_browser); - - g_free (property_browser->details->path); - g_free (property_browser->details->category); - g_free (property_browser->details->dragged_file); - g_free (property_browser->details->drag_type); - - eel_g_list_free_deep (property_browser->details->keywords); - - if (property_browser->details->property_chit) - { - g_object_unref (property_browser->details->property_chit); - } - - g_free (property_browser->details); - - EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); -} - /* create a new instance */ CajaPropertyBrowser * caja_property_browser_new (GdkScreen *screen) @@ -555,7 +544,7 @@ caja_property_browser_drag_begin (GtkWidget *widget, /* it's not a color, so, for now, it must be an image */ /* fiddle with the category to handle the "reset" case properly */ char * save_category = property_browser->details->category; - if (eel_strcmp (property_browser->details->category, "colors") == 0) + if (g_strcmp0 (property_browser->details->category, "colors") == 0) { property_browser->details->category = "patterns"; } @@ -625,7 +614,7 @@ caja_property_browser_drag_data_get (GtkWidget *widget, guint16 colorArray[4]; /* handle the "reset" case as an image */ - if (eel_strcmp (property_browser->details->dragged_file, RESET_IMAGE_NAME) != 0) + if (g_strcmp0 (property_browser->details->dragged_file, RESET_IMAGE_NAME) != 0) { gdk_color_parse (property_browser->details->dragged_file, &color); @@ -783,7 +772,7 @@ make_drag_image (CajaPropertyBrowser *property_browser, const char* file_name) return NULL; } - is_reset = eel_strcmp (file_name, RESET_IMAGE_NAME) == 0; + is_reset = g_strcmp0 (file_name, RESET_IMAGE_NAME) == 0; if (strcmp (property_browser->details->category, "patterns") == 0 && property_browser->details->property_chit != NULL) @@ -1240,7 +1229,7 @@ add_pattern_to_browser (GtkDialog *dialog, gint response_id, gpointer *data) /* don't allow the user to change the reset image */ basename = g_file_get_basename (selected); - if (basename && eel_strcmp (basename, RESET_IMAGE_NAME) == 0) + if (basename && g_strcmp0 (basename, RESET_IMAGE_NAME) == 0) { eel_show_error_dialog (_("Sorry, but you cannot replace the reset image."), _("Reset is a special image that cannot be deleted."), @@ -1725,7 +1714,7 @@ element_clicked_callback (GtkWidget *image_table, drag_types[0].target = property_browser->details->drag_type; /* treat the reset property in the colors section specially */ - if (eel_strcmp (element_name, RESET_IMAGE_NAME) == 0) + if (g_strcmp0 (element_name, RESET_IMAGE_NAME) == 0) { drag_types[0].target = "x-special/mate-reset-background"; } @@ -1888,7 +1877,7 @@ make_properties_from_directories (CajaPropertyBrowser *property_browser) /* Keep track of ERASE objects to place them prominently later */ if (property_browser->details->category_type == CAJA_PROPERTY_PATTERN - && !eel_strcmp (object_name, RESET_IMAGE_NAME)) + && !g_strcmp0 (object_name, RESET_IMAGE_NAME)) { g_assert (reset_object == NULL); reset_object = property_image; @@ -2408,7 +2397,7 @@ caja_property_browser_set_category (CajaPropertyBrowser *property_browser, const char *new_category) { /* there's nothing to do if the category is the same as the current one */ - if (eel_strcmp (property_browser->details->category, new_category) == 0) + if (g_strcmp0 (property_browser->details->category, new_category) == 0) { return; } @@ -2417,15 +2406,15 @@ caja_property_browser_set_category (CajaPropertyBrowser *property_browser, property_browser->details->category = g_strdup (new_category); /* set up the property type enum */ - if (eel_strcmp (new_category, "patterns") == 0) + if (g_strcmp0 (new_category, "patterns") == 0) { property_browser->details->category_type = CAJA_PROPERTY_PATTERN; } - else if (eel_strcmp (new_category, "colors") == 0) + else if (g_strcmp0 (new_category, "colors") == 0) { property_browser->details->category_type = CAJA_PROPERTY_COLOR; } - else if (eel_strcmp (new_category, "emblems") == 0) + else if (g_strcmp0 (new_category, "emblems") == 0) { property_browser->details->category_type = CAJA_PROPERTY_EMBLEM; } @@ -2447,7 +2436,7 @@ caja_property_browser_set_path (CajaPropertyBrowser *property_browser, const char *new_path) { /* there's nothing to do if the uri is the same as the current one */ - if (eel_strcmp (property_browser->details->path, new_path) == 0) + if (g_strcmp0 (property_browser->details->path, new_path) == 0) { return; } |