From aab97ab541d31b6f447e65feb3b2d26b10504d31 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Mon, 23 Jul 2007 14:37:08 +0000 Subject: Port to new gtk+ 2.11 tooltips API. Bug #458284 and bug #455616. 2007-07-23 Christian Persch * configure.in: * src/nautilus-navigation-action.c: (connect_proxy), (disconnect_proxy): * src/nautilus-navigation-window-menus.c: (connect_proxy_cb), (refresh_go_menu): * src/nautilus-navigation-window.c: (location_button_create), (nautilus_navigation_window_init), (nautilus_navigation_window_destroy), (nautilus_navigation_window_finalize), (nautilus_navigation_window_class_init): * src/nautilus-query-editor.c: (nautilus_query_editor_dispose), (nautilus_query_editor_add_row), (nautilus_query_editor_init), (finish_first_line): * src/nautilus-side-pane.c: (side_panel_free), (nautilus_side_pane_class_init), (nautilus_side_pane_init), (nautilus_side_pane_dispose), (nautilus_side_pane_finalize), (nautilus_side_pane_add_panel), (create_shortcut): * src/nautilus-trash-bar.c: (nautilus_trash_bar_class_init), (nautilus_trash_bar_init): * src/nautilus-window-private.h: Port to new gtk+ 2.11 tooltips API. Bug #458284 and bug #455616. svn path=/trunk/; revision=13011 --- ChangeLog | 24 ++++++++++++++++ configure.in | 2 +- src/nautilus-navigation-action.c | 30 ++++++-------------- src/nautilus-navigation-window.c | 19 ++++--------- src/nautilus-navigation-window.h | 2 -- src/nautilus-query-editor.c | 30 ++++++-------------- src/nautilus-side-pane.c | 60 +++++++++++++++------------------------- src/nautilus-trash-bar.c | 26 ++--------------- src/nautilus-window-private.h | 1 - 9 files changed, 73 insertions(+), 121 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3f8de0923..8749ce465 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2007-07-23 Christian Persch + + * configure.in: + * src/nautilus-navigation-action.c: (connect_proxy), + (disconnect_proxy): + * src/nautilus-navigation-window-menus.c: (connect_proxy_cb), + (refresh_go_menu): + * src/nautilus-navigation-window.c: (location_button_create), + (nautilus_navigation_window_init), + (nautilus_navigation_window_destroy), + (nautilus_navigation_window_finalize), + (nautilus_navigation_window_class_init): + * src/nautilus-query-editor.c: (nautilus_query_editor_dispose), + (nautilus_query_editor_add_row), (nautilus_query_editor_init), + (finish_first_line): + * src/nautilus-side-pane.c: (side_panel_free), + (nautilus_side_pane_class_init), (nautilus_side_pane_init), + (nautilus_side_pane_dispose), (nautilus_side_pane_finalize), + (nautilus_side_pane_add_panel), (create_shortcut): + * src/nautilus-trash-bar.c: (nautilus_trash_bar_class_init), + (nautilus_trash_bar_init): + * src/nautilus-window-private.h: Port to new gtk+ 2.11 tooltips API. + Bug #458284 and bug #455616. + 2007-07-23 Alexander Larsson * libnautilus-private/nautilus-search-engine-simple.c: diff --git a/configure.in b/configure.in index aa805b2a7..527316094 100644 --- a/configure.in +++ b/configure.in @@ -14,7 +14,7 @@ m4_define(gnome_ui_minver, 2.6.0) m4_define(gnome_vfs_minver, 2.14.2) m4_define(orbit_minver, 2.4.0) m4_define(pango_minver, 1.1.2) -m4_define(gtk_minver, 2.10.0) +m4_define(gtk_minver, 2.11.6) m4_define(rsvg_minver, 2.0.1) m4_define(xml_minver, 2.4.7) m4_define(startup_notification_minver, 0.8) diff --git a/src/nautilus-navigation-action.c b/src/nautilus-navigation-action.c index 9b7e2b268..0647dc630 100644 --- a/src/nautilus-navigation-action.c +++ b/src/nautilus-navigation-action.c @@ -176,31 +176,20 @@ show_menu_callback (GtkMenuToolButton *button, } } -static gboolean -set_tooltip_callback (GtkMenuToolButton *proxy, - GtkTooltips *tooltips, - const char *tip, - const char *tip_private, - NautilusNavigationAction *action) -{ - gtk_menu_tool_button_set_arrow_tooltip (proxy, tooltips, - action->priv->arrow_tooltip, - NULL); - - return FALSE; -} - static void connect_proxy (GtkAction *action, GtkWidget *proxy) { - GtkWidget *menu; - if (GTK_IS_MENU_TOOL_BUTTON (proxy)) { + NautilusNavigationAction *naction = NAUTILUS_NAVIGATION_ACTION (action); + GtkMenuToolButton *button = GTK_MENU_TOOL_BUTTON (proxy); + GtkWidget *menu; + + /* set an empty menu, so the arrow button becomes sensitive */ menu = gtk_menu_new (); - gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (proxy), - menu); - g_signal_connect (proxy, "set-tooltip", - G_CALLBACK (set_tooltip_callback), action); + gtk_menu_tool_button_set_menu (button, menu); + + gtk_menu_tool_button_set_arrow_tooltip_text (button, + naction->priv->arrow_tooltip); g_signal_connect (proxy, "show-menu", G_CALLBACK (show_menu_callback), action); @@ -213,7 +202,6 @@ static void disconnect_proxy (GtkAction *action, GtkWidget *proxy) { if (GTK_IS_MENU_TOOL_BUTTON (proxy)) { - g_signal_handlers_disconnect_by_func (proxy, G_CALLBACK (set_tooltip_callback), action); g_signal_handlers_disconnect_by_func (proxy, G_CALLBACK (show_menu_callback), action); } diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index 42e7f81a4..aa8aea550 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -182,8 +182,8 @@ location_button_create (NautilusNavigationWindow *window) "active", location_button_should_be_active (window), NULL); - gtk_tooltips_set_tip (window->details->tooltips, button, - _("Toggle between button and text-based location bar"), NULL); + gtk_widget_set_tooltip_text (button, + _("Toggle between button and text-based location bar")); g_signal_connect (button, "toggled", G_CALLBACK (location_button_toggled_cb), window); @@ -199,12 +199,8 @@ nautilus_navigation_window_init (NautilusNavigationWindow *window) GtkWidget *view_as_menu_vbox; GtkToolItem *item; GtkWidget *hbox, *vbox, *eventbox, *extras_vbox; - - window->details = g_new0 (NautilusNavigationWindowDetails, 1); - window->details->tooltips = gtk_tooltips_new (); - g_object_ref (window->details->tooltips); - gtk_object_sink (GTK_OBJECT (window->details->tooltips)); + window->details = G_TYPE_INSTANCE_GET_PRIVATE (window, NAUTILUS_TYPE_NAVIGATION_WINDOW, NautilusNavigationWindowDetails); window->details->content_paned = nautilus_horizontal_splitter_new (); gtk_table_attach (GTK_TABLE (NAUTILUS_WINDOW (window)->details->table), @@ -696,11 +692,6 @@ nautilus_navigation_window_destroy (GtkObject *object) window->details->content_paned = NULL; - if (window->details->tooltips) { - g_object_unref (window->details->tooltips); - window->details->tooltips = NULL; - } - GTK_OBJECT_CLASS (parent_class)->destroy (object); } @@ -715,8 +706,6 @@ nautilus_navigation_window_finalize (GObject *object) nautilus_navigation_window_clear_back_list (window); nautilus_navigation_window_clear_forward_list (window); - g_free (window->details); - G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -1591,4 +1580,6 @@ nautilus_navigation_window_class_init (NautilusNavigationWindowClass *class) NAUTILUS_WINDOW_CLASS (class)->get_icon_name = real_get_icon_name; NAUTILUS_WINDOW_CLASS (class)->get_default_size = real_get_default_size; NAUTILUS_WINDOW_CLASS (class)->close = real_window_close; + + g_type_class_add_private (G_OBJECT_CLASS (class), sizeof (NautilusNavigationWindowDetails)); } diff --git a/src/nautilus-navigation-window.h b/src/nautilus-navigation-window.h index 77113a65f..704c2b1e5 100644 --- a/src/nautilus-navigation-window.h +++ b/src/nautilus-navigation-window.h @@ -72,8 +72,6 @@ struct _NautilusNavigationWindow { /* Widgets to keep track of (for state changes, etc) */ GtkWidget *zoom_control; - - GtkTooltips *tooltips; }; diff --git a/src/nautilus-query-editor.c b/src/nautilus-query-editor.c index cc545fb70..b32379318 100644 --- a/src/nautilus-query-editor.c +++ b/src/nautilus-query-editor.c @@ -45,7 +45,6 @@ #include "gtk/gtkscrolledwindow.h" #include #include "gtk/gtkcelllayout.h" -#include "gtk/gtktooltips.h" #include "gtk/gtkcellrenderertext.h" #include #include @@ -87,7 +86,6 @@ struct NautilusQueryEditorDetails { gboolean is_visible; GtkWidget *invisible_vbox; GtkWidget *visible_vbox; - GtkTooltips *tooltips; GList *rows; @@ -179,11 +177,6 @@ nautilus_query_editor_dispose (GObject *object) eel_remove_weak_pointer (&editor->details->bar); } - if (editor->details->tooltips) { - g_object_unref (editor->details->tooltips); - editor->details->tooltips = NULL; - } - EEL_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); } @@ -931,9 +924,8 @@ nautilus_query_editor_add_row (NautilusQueryEditor *editor, g_signal_connect (button, "clicked", G_CALLBACK (remove_row_cb), row); - - gtk_tooltips_set_tip (editor->details->tooltips, button, - _("Remove this criterion from the search"), NULL); + gtk_widget_set_tooltip_text (button, + _("Remove this criterion from the search")); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); @@ -991,12 +983,8 @@ nautilus_query_editor_init (NautilusQueryEditor *editor) g_signal_connect (button, "clicked", G_CALLBACK (edit_clicked), editor); - editor->details->tooltips = gtk_tooltips_new (); - g_object_ref (editor->details->tooltips); - gtk_object_sink (GTK_OBJECT (editor->details->tooltips)); - - gtk_tooltips_set_tip (editor->details->tooltips, button, - _("Edit the saved search"), NULL); + gtk_widget_set_tooltip_text (button, + _("Edit the saved search")); } void @@ -1026,8 +1014,8 @@ finish_first_line (NautilusQueryEditor *editor, GtkWidget *hbox, gboolean use_go gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); - gtk_tooltips_set_tip (editor->details->tooltips, button, - _("Add a new criterion to this search"), NULL); + gtk_widget_set_tooltip_text (button, + _("Add a new criterion to this search")); if (!editor->details->is_indexed) { if (use_go) { @@ -1036,9 +1024,9 @@ finish_first_line (NautilusQueryEditor *editor, GtkWidget *hbox, gboolean use_go button = gtk_button_new_with_label (_("Reload")); } gtk_widget_show (button); - - gtk_tooltips_set_tip (editor->details->tooltips, button, - _("Perform or update the search"), NULL); + + gtk_widget_set_tooltip_text (button, + _("Perform or update the search")); g_signal_connect (button, "clicked", G_CALLBACK (go_search_cb), editor); diff --git a/src/nautilus-side-pane.c b/src/nautilus-side-pane.c index b4b0c2568..d3e6f93e9 100644 --- a/src/nautilus-side-pane.c +++ b/src/nautilus-side-pane.c @@ -36,7 +36,6 @@ #include #include #include -#include #include #include @@ -56,14 +55,13 @@ struct _NautilusSidePaneDetails { GtkWidget *title_hbox; GtkWidget *title_label; GtkWidget *shortcut_box; - GtkTooltips *tooltips; GList *panels; }; -static void nautilus_side_pane_class_init (GtkObjectClass *object_klass); -static void nautilus_side_pane_init (GtkObject *object); -static void nautilus_side_pane_destroy (GtkObject *object); -static void nautilus_side_pane_finalize (GObject *object); +static void nautilus_side_pane_class_init (NautilusSidePaneClass *klass); +static void nautilus_side_pane_init (GObject *object); +static void nautilus_side_pane_dispose (GObject *object); +static void nautilus_side_pane_finalize (GObject *object); enum { CLOSE_REQUESTED, @@ -96,7 +94,7 @@ side_panel_free (SidePanel *panel) { g_free (panel->title); g_free (panel->tooltip); - g_free (panel); + g_slice_free (SidePanel, panel); } static void @@ -162,24 +160,21 @@ nautilus_side_pane_size_allocate (GtkWidget *widget, /* initializing the class object by installing the operations we override */ static void -nautilus_side_pane_class_init (GtkObjectClass *object_klass) +nautilus_side_pane_class_init (NautilusSidePaneClass *klass) { - GtkWidgetClass *widget_class; GObjectClass *gobject_class; - - NautilusSidePaneClass *klass; - - widget_class = GTK_WIDGET_CLASS (object_klass); - klass = NAUTILUS_SIDE_PANE_CLASS (object_klass); - gobject_class = G_OBJECT_CLASS (object_klass); + GtkWidgetClass *widget_class; + + gobject_class = G_OBJECT_CLASS (klass); + widget_class = GTK_WIDGET_CLASS (klass); gobject_class->finalize = nautilus_side_pane_finalize; - object_klass->destroy = nautilus_side_pane_destroy; + gobject_class->dispose = nautilus_side_pane_dispose; widget_class->size_allocate = nautilus_side_pane_size_allocate; signals[CLOSE_REQUESTED] = g_signal_new ("close_requested", - G_TYPE_FROM_CLASS (object_klass), + G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NautilusSidePaneClass, close_requested), @@ -188,13 +183,15 @@ nautilus_side_pane_class_init (GtkObjectClass *object_klass) G_TYPE_NONE, 0); signals[SWITCH_PAGE] = g_signal_new ("switch_page", - G_TYPE_FROM_CLASS (object_klass), + G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NautilusSidePaneClass, switch_page), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GTK_TYPE_WIDGET); + + g_type_class_add_private (gobject_class, sizeof (NautilusSidePaneDetails)); } static void @@ -313,7 +310,7 @@ menu_detach_callback (GtkWidget *widget, } static void -nautilus_side_pane_init (GtkObject *object) +nautilus_side_pane_init (GObject *object) { NautilusSidePane *side_pane; GtkWidget *frame; @@ -326,7 +323,7 @@ nautilus_side_pane_init (GtkObject *object) side_pane = NAUTILUS_SIDE_PANE (object); - side_pane->details = g_new0 (NautilusSidePaneDetails, 1); + side_pane->details = G_TYPE_INSTANCE_GET_PRIVATE (object, NAUTILUS_TYPE_SIDE_PANE, NautilusSidePaneDetails); frame = gtk_frame_new (NULL); side_pane->details->title_frame = frame; @@ -419,16 +416,12 @@ nautilus_side_pane_init (GtkObject *object) gtk_widget_show (side_pane->details->menu); - side_pane->details->tooltips = gtk_tooltips_new (); - g_object_ref (side_pane->details->tooltips); - gtk_object_sink (GTK_OBJECT (side_pane->details->tooltips)); - - gtk_tooltips_set_tip (side_pane->details->tooltips, close_button, - _("Close the side pane"), NULL); + gtk_widget_set_tooltip_text (close_button, + _("Close the side pane")); } static void -nautilus_side_pane_destroy (GtkObject *object) +nautilus_side_pane_dispose (GObject *object) { NautilusSidePane *side_pane; @@ -439,12 +432,7 @@ nautilus_side_pane_destroy (GtkObject *object) side_pane->details->menu = NULL; } - if (side_pane->details->tooltips) { - g_object_unref (side_pane->details->tooltips); - side_pane->details->tooltips = NULL; - } - - EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); + EEL_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); } static void @@ -461,8 +449,6 @@ nautilus_side_pane_finalize (GObject *object) g_list_free (side_pane->details->panels); - g_free (side_pane->details); - EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); } @@ -487,7 +473,7 @@ nautilus_side_pane_add_panel (NautilusSidePane *side_pane, g_return_if_fail (title != NULL); g_return_if_fail (tooltip != NULL); - panel = g_new0 (SidePanel, 1); + panel = g_slice_new0 (SidePanel); panel->title = g_strdup (title); panel->tooltip = g_strdup (tooltip); panel->widget = widget; @@ -597,7 +583,7 @@ create_shortcut (NautilusSidePane *side_pane, g_signal_connect (button, "clicked", G_CALLBACK (shortcut_clicked_callback), side_pane); - gtk_tooltips_set_tip (side_pane->details->tooltips, button, panel->tooltip, NULL); + gtk_widget_set_tooltip_text (button, panel->tooltip); image = gtk_image_new_from_pixbuf (pixbuf); gtk_widget_show (image); diff --git a/src/nautilus-trash-bar.c b/src/nautilus-trash-bar.c index df5eb1b17..109714c86 100644 --- a/src/nautilus-trash-bar.c +++ b/src/nautilus-trash-bar.c @@ -33,7 +33,6 @@ struct NautilusTrashBarPrivate { - GtkTooltips *tooltips; GtkWidget *button; }; @@ -73,20 +72,6 @@ nautilus_trash_bar_get_property (GObject *object, } } -static void -nautilus_trash_bar_finalize (GObject *object) -{ - NautilusTrashBar *bar; - - bar = NAUTILUS_TRASH_BAR (object); - - if (bar->priv->tooltips != NULL) { - g_object_unref (bar->priv->tooltips); - } - - G_OBJECT_CLASS (nautilus_trash_bar_parent_class)->finalize (object); -} - static void nautilus_trash_bar_trash_state_changed (NautilusTrashMonitor *trash_monitor, gboolean state, @@ -107,7 +92,6 @@ nautilus_trash_bar_class_init (NautilusTrashBarClass *klass) object_class = G_OBJECT_CLASS (klass); - object_class->finalize = nautilus_trash_bar_finalize; object_class->get_property = nautilus_trash_bar_get_property; object_class->set_property = nautilus_trash_bar_set_property; @@ -144,14 +128,8 @@ nautilus_trash_bar_init (NautilusTrashBar *bar) gtk_widget_set_sensitive (bar->priv->button, !nautilus_trash_monitor_is_empty ()); - - bar->priv->tooltips = gtk_tooltips_new (); - g_object_ref_sink (bar->priv->tooltips); - - gtk_tooltips_set_tip (GTK_TOOLTIPS (bar->priv->tooltips), - bar->priv->button, - _("Delete all items in the Trash"), - NULL); + gtk_widget_set_tooltip_text (bar->priv->button, + _("Delete all items in the Trash")); g_signal_connect (bar->priv->button, "clicked", diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h index ade4bf75b..15dbc6989 100644 --- a/src/nautilus-window-private.h +++ b/src/nautilus-window-private.h @@ -123,7 +123,6 @@ struct _NautilusNavigationWindowDetails { /* Toolbar */ GtkWidget *toolbar; - GtkTooltips *tooltips; GtkWidget *location_bar; guint extensions_toolbar_merge_id; -- cgit v1.2.1