[maemo-commits] [maemo-commits] r13370 - in projects/haf/trunk/gtk+: . docs/reference docs/reference/gtk/tmpl gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Aug 23 13:28:38 EEST 2007
- Previous message: [maemo-commits] r13369 - projects/haf/branches/hildon-desktop/karoliina-safe-mode/src
- Next message: [maemo-commits] r13371 - projects/haf/trunk/gtk+/gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-08-23 13:28:25 +0300 (Thu, 23 Aug 2007) New Revision: 13370 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/docs/reference/ChangeLog projects/haf/trunk/gtk+/docs/reference/gtk/tmpl/gtkmenuitem.sgml projects/haf/trunk/gtk+/gtk/gtk.symbols projects/haf/trunk/gtk+/gtk/gtkcombobox.c projects/haf/trunk/gtk+/gtk/gtkmenuitem.c projects/haf/trunk/gtk+/gtk/gtkmenuitem.h Log: 2007-08-23 Michael Natterer <mitch at imendio.com> Merged from trunk: * gtk/gtkmenuitem.[ch]: add "submenu" property. Fix gtk_menu_item_set_submenu() to accept NULL submenus and deprecate gtk_menu_item_remove_submenu() because we have a properly working setter now (bug #447065). * gtk/gtk.symbols: deprecate gtk_menu_item_remove_submenu(). * gtk/gtkcombobox.c: use gtk_menu_item_set_submenu() instead of gtk_menu_item_remove_submenu(). Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/ChangeLog 2007-08-23 10:28:25 UTC (rev 13370) @@ -1,3 +1,17 @@ +2007-08-23 Michael Natterer <mitch at imendio.com> + + Merged from trunk: + + * gtk/gtkmenuitem.[ch]: add "submenu" property. Fix + gtk_menu_item_set_submenu() to accept NULL submenus and deprecate + gtk_menu_item_remove_submenu() because we have a properly working + setter now (bug #447065). + + * gtk/gtk.symbols: deprecate gtk_menu_item_remove_submenu(). + + * gtk/gtkcombobox.c: use gtk_menu_item_set_submenu() instead of + gtk_menu_item_remove_submenu(). + 2007-08-22 Xan Lopez <xan.lopez at nokia.com> * gtk/gtkarrow.c: add two new style properties: Modified: projects/haf/trunk/gtk+/docs/reference/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/docs/reference/ChangeLog 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/docs/reference/ChangeLog 2007-08-23 10:28:25 UTC (rev 13370) @@ -1,3 +1,9 @@ +2007-06-13 Michael Natterer <mitch at imendio.com> + + Merged from trunk: + + * gtk/tmpl/gtkmenuitem.sgml: remove stuff that has been moved inline. + 2007-08-17 Xan Lopez <xan.lopez at nokia.com> * gtk/gtk-sections.txt: add gtk_window_close_other_temporaries Modified: projects/haf/trunk/gtk+/docs/reference/gtk/tmpl/gtkmenuitem.sgml =================================================================== --- projects/haf/trunk/gtk+/docs/reference/gtk/tmpl/gtkmenuitem.sgml 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/docs/reference/gtk/tmpl/gtkmenuitem.sgml 2007-08-23 10:28:25 UTC (rev 13370) @@ -130,11 +130,11 @@ <!-- ##### FUNCTION gtk_menu_item_set_submenu ##### --> <para> -Sets the widget submenu, or changes it. + </para> - at menu_item: the menu item widget - at submenu: the submenu + at menu_item: + at submenu: <!-- ##### FUNCTION gtk_menu_item_set_accel_path ##### --> @@ -148,10 +148,10 @@ <!-- ##### FUNCTION gtk_menu_item_remove_submenu ##### --> <para> -Removes the widget's submenu. + </para> - at menu_item: the menu item widget + at menu_item: <!-- ##### FUNCTION gtk_menu_item_select ##### --> Modified: projects/haf/trunk/gtk+/gtk/gtk.symbols =================================================================== --- projects/haf/trunk/gtk+/gtk/gtk.symbols 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/gtk/gtk.symbols 2007-08-23 10:28:25 UTC (rev 13370) @@ -2277,15 +2277,17 @@ gtk_menu_item_new gtk_menu_item_new_with_label gtk_menu_item_new_with_mnemonic -gtk_menu_item_remove_submenu gtk_menu_item_select gtk_menu_item_set_accel_path gtk_menu_item_set_right_justified gtk_menu_item_set_submenu gtk_menu_item_toggle_size_allocate gtk_menu_item_toggle_size_request +#ifndef GTK_DISABLE_DEPRECATED +gtk_menu_item_remove_submenu #endif #endif +#endif #if IN_HEADER(__GTK_MENU_SHELL_H__) #if IN_FILE(__GTK_MENU_SHELL_C__) Modified: projects/haf/trunk/gtk+/gtk/gtkcombobox.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkcombobox.c 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/gtk/gtkcombobox.c 2007-08-23 10:28:25 UTC (rev 13370) @@ -3398,7 +3398,7 @@ { parent = find_menu_by_path (combo_box->priv->popup_widget, parent_path, FALSE); - gtk_menu_item_remove_submenu (GTK_MENU_ITEM (parent)); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (parent), NULL); } } } Modified: projects/haf/trunk/gtk+/gtk/gtkmenuitem.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkmenuitem.c 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/gtk/gtkmenuitem.c 2007-08-23 10:28:25 UTC (rev 13370) @@ -50,9 +50,22 @@ LAST_SIGNAL }; +enum { + PROP_0, + PROP_SUBMENU +}; + +static void gtk_menu_item_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void gtk_menu_item_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void gtk_menu_item_finalize (GObject *object); static void gtk_menu_item_destroy (GtkObject *object); -static void gtk_menu_item_finalize (GObject *object); static void gtk_menu_item_size_request (GtkWidget *widget, GtkRequisition *requisition); static void gtk_menu_item_size_allocate (GtkWidget *widget, @@ -108,6 +121,8 @@ GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkItemClass *item_class = GTK_ITEM_CLASS (klass); + gobject_class->set_property = gtk_menu_item_set_property; + gobject_class->get_property = gtk_menu_item_get_property; gobject_class->finalize = gtk_menu_item_finalize; object_class->destroy = gtk_menu_item_destroy; @@ -176,6 +191,21 @@ G_TYPE_NONE, 1, G_TYPE_INT); + /** + * GtkMenuItem:submenu: + * + * The submenu attached to the menu item, or NULL if it has none. + * + * Since: 2.12 + **/ + g_object_class_install_property (gobject_class, + PROP_SUBMENU, + g_param_spec_object ("submenu", + P_("Submenu"), + P_("The submenu attached to the menu item, or NULL if it has none"), + GTK_TYPE_MENU, + GTK_PARAM_READWRITE)); + gtk_widget_class_install_style_property_parser (widget_class, g_param_spec_enum ("selected-shadow-type", "Selected Shadow Type", @@ -284,19 +314,44 @@ return menu_item; } -static void -gtk_menu_item_destroy (GtkObject *object) +static void +gtk_menu_item_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) { - GtkMenuItem *menu_item; + GtkMenuItem *menu_item = GTK_MENU_ITEM (object); + + switch (prop_id) + { + case PROP_SUBMENU: + gtk_menu_item_set_submenu (menu_item, g_value_get_object (value)); + break; - g_return_if_fail (GTK_IS_MENU_ITEM (object)); + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} - menu_item = GTK_MENU_ITEM (object); +static void +gtk_menu_item_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GtkMenuItem *menu_item = GTK_MENU_ITEM (object); + + switch (prop_id) + { + case PROP_SUBMENU: + g_value_set_object (value, gtk_menu_item_get_submenu (menu_item)); + break; - if (menu_item->submenu) - gtk_widget_destroy (menu_item->submenu); - - GTK_OBJECT_CLASS (gtk_menu_item_parent_class)->destroy (object); + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static void @@ -310,36 +365,59 @@ } static void -gtk_menu_item_detacher (GtkWidget *widget, - GtkMenu *menu) +gtk_menu_item_destroy (GtkObject *object) { - GtkMenuItem *menu_item; + GtkMenuItem *menu_item = GTK_MENU_ITEM (object); - g_return_if_fail (GTK_IS_MENU_ITEM (widget)); + if (menu_item->submenu) + gtk_widget_destroy (menu_item->submenu); - menu_item = GTK_MENU_ITEM (widget); + GTK_OBJECT_CLASS (gtk_menu_item_parent_class)->destroy (object); +} + +static void +gtk_menu_item_detacher (GtkWidget *widget, + GtkMenu *menu) +{ + GtkMenuItem *menu_item = GTK_MENU_ITEM (widget); + g_return_if_fail (menu_item->submenu == (GtkWidget*) menu); menu_item->submenu = NULL; } +/** + * gtk_menu_item_set_submenu: + * @menu_item: a #GtkMenuItem + * @submenu: the submenu, or %NULL + * + * Sets or replaces the menu item's submenu, or removes it when a %NULL + * submenu is passed. + **/ void gtk_menu_item_set_submenu (GtkMenuItem *menu_item, GtkWidget *submenu) { g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); + g_return_if_fail (submenu == NULL || GTK_IS_MENU (submenu)); if (menu_item->submenu != submenu) { - gtk_menu_item_remove_submenu (menu_item); - - menu_item->submenu = submenu; - gtk_menu_attach_to_widget (GTK_MENU (submenu), - GTK_WIDGET (menu_item), - gtk_menu_item_detacher); - + if (menu_item->submenu) + gtk_menu_detach (GTK_MENU (menu_item->submenu)); + + if (submenu) + { + menu_item->submenu = submenu; + gtk_menu_attach_to_widget (GTK_MENU (submenu), + GTK_WIDGET (menu_item), + gtk_menu_item_detacher); + } + if (GTK_WIDGET (menu_item)->parent) gtk_widget_queue_resize (GTK_WIDGET (menu_item)); + + g_object_notify (G_OBJECT (menu_item), "submenu"); } } @@ -360,13 +438,22 @@ return menu_item->submenu; } +/** + * gtk_menu_item_remove_submenu: + * @menu_item: a #GtkMenuItem + * + * Removes the widget's submenu. + * + * Deprecated: 2.12: gtk_menu_item_remove_submenu() is deprecated and + * should not be used in newly written code. Use + * gtk_menu_item_set_submenu() instead. + **/ void -gtk_menu_item_remove_submenu (GtkMenuItem *menu_item) +gtk_menu_item_remove_submenu (GtkMenuItem *menu_item) { g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); - - if (menu_item->submenu) - gtk_menu_detach (GTK_MENU (menu_item->submenu)); + + gtk_menu_item_set_submenu (menu_item, NULL); } void _gtk_menu_item_set_placement (GtkMenuItem *menu_item, Modified: projects/haf/trunk/gtk+/gtk/gtkmenuitem.h =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkmenuitem.h 2007-08-23 08:45:06 UTC (rev 13369) +++ projects/haf/trunk/gtk+/gtk/gtkmenuitem.h 2007-08-23 10:28:25 UTC (rev 13370) @@ -99,7 +99,6 @@ void gtk_menu_item_set_submenu (GtkMenuItem *menu_item, GtkWidget *submenu); GtkWidget* gtk_menu_item_get_submenu (GtkMenuItem *menu_item); -void gtk_menu_item_remove_submenu (GtkMenuItem *menu_item); void gtk_menu_item_select (GtkMenuItem *menu_item); void gtk_menu_item_deselect (GtkMenuItem *menu_item); void gtk_menu_item_activate (GtkMenuItem *menu_item); @@ -124,6 +123,7 @@ void _gtk_menu_item_popdown_submenu (GtkWidget *menu_item); #ifndef GTK_DISABLE_DEPRECATED +void gtk_menu_item_remove_submenu (GtkMenuItem *menu_item); #define gtk_menu_item_right_justify(menu_item) gtk_menu_item_set_right_justified ((menu_item), TRUE) #endif /* GTK_DISABLE_DEPRECATED */
- Previous message: [maemo-commits] r13369 - projects/haf/branches/hildon-desktop/karoliina-safe-mode/src
- Next message: [maemo-commits] r13371 - projects/haf/trunk/gtk+/gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]