diff options
author | Alexander Larsson <alexl@redhat.com> | 2000-11-08 17:34:52 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2000-11-08 17:34:52 +0000 |
commit | 814957b46e16fbaf8999190c2052edbc347c71fe (patch) | |
tree | 0554a3123f5c6f7115db4ecbe4e7cacc00a7cccc /gtk/gtkmenuitem.h | |
parent | b440118aa4644e30ef6d7d44f607f67f05536285 (diff) | |
download | gdk-pixbuf-814957b46e16fbaf8999190c2052edbc347c71fe.tar.gz |
Add note about GtkMenuPositionFunc API changes.
2000-11-08 Alexander Larsson <alexl@redhat.com>
* docs/Changes-2.0.txt: Add note about GtkMenuPositionFunc
API changes.
* gtk/gtkmenu.c: Add support for scrolling menus.
Remove gtk_menu_append/prepend/insert, these have been moved to
gtkcompat.h as #defines.
* gtk/gtkcompat.h.in:
Add compatibility #defines for gtk_menu_append/prepend/insert
* gtk/gtkmenu.h: Add data needed for scrolling menus.
GtkMenuPositionFunc gets an extra argument push_in.
gtk_menu_append/prepend/insert removed.
* gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Change menu
positioning behaviour to fit to scrolling menus.
* gtk/gtkmenuitem.c (gtk_menu_item_forall): Don't recurse
into menuitem->submeny. That is wrong, and broke torn
off submenus of torn off menus, since they were unrealized
when the first menu was unrealized.
* gtk/gtkmenushell.[ch]: Virtualize gtk_menu_shell_insert() and
gtk_menu_shell_select_item() since these need to be overridden in
GtkMenu.
* gtk/gtkoptionmenu.c (gtk_opttion_menu_position): Change menu
positioning behaviour to fit to scrolling menus.
(gtk_option_menu_key_press, gtk_option_menu_button_press): Select
the current item so that it is prelighted when the menu pops up.
This is a workaround to the fact that the menu doesn't get the
initial enter event (due to grabs).
* gtk/gtkfilesel.c, gtk/gtkinputdialog.c, gtk/testgtk.c:
s/gtk_menu_append/gtk_menu_shell_append/
* gtk/gtknotebook.c:
s/gtk_menu_insert/gtk_menu_shell_insert/
* gtk/testgtk.c (create_menu, create_menus):
Create the first menu with 50 items so that menu scrolling
can be tested.
Patch from Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmenuitem.[ch] (gtk_menu_item_toggle_size_request): new
system to handle size requests. First, we ask what the size of
the toggle is. Then, when allocating the size, we allocate the
toggle_size first. This way we can have multiple menu-item
classes w/o needing a seperate class for each.
* gtk/gtkmenu.c (gtk_menu_size_request): Actually use the new system.
* gtk/gtkmenu.c (gtk_menu_size_allocate): Use the new system.
* gtk/gtkcheckmenuitem.c
(gtk_check_menu_item_toggle_size_request): New function to handle
the toggle size-request.
Diffstat (limited to 'gtk/gtkmenuitem.h')
-rw-r--r-- | gtk/gtkmenuitem.h | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/gtk/gtkmenuitem.h b/gtk/gtkmenuitem.h index 2f59c0c9f..df52e516b 100644 --- a/gtk/gtkmenuitem.h +++ b/gtk/gtkmenuitem.h @@ -70,7 +70,6 @@ struct _GtkMenuItemClass { GtkItemClass parent_class; - guint toggle_size; /* If the following flag is true, then we should always hide * the menu when the MenuItem is activated. Otherwise, the * it is up to the caller. For instance, when navigating @@ -79,26 +78,35 @@ struct _GtkMenuItemClass */ guint hide_on_activate : 1; - void (* activate) (GtkMenuItem *menu_item); - void (* activate_item) (GtkMenuItem *menu_item); + void (* activate) (GtkMenuItem *menu_item); + void (* activate_item) (GtkMenuItem *menu_item); + void (* toggle_size_request) (GtkMenuItem *menu_item, + guint16 *requisition); + void (* toggle_size_allocate) (GtkMenuItem *menu_item, + guint16 allocation); }; -GtkType gtk_menu_item_get_type (void) G_GNUC_CONST; -GtkWidget* gtk_menu_item_new (void); -GtkWidget* gtk_menu_item_new_with_label (const gchar *label); -void gtk_menu_item_set_submenu (GtkMenuItem *menu_item, - GtkWidget *submenu); -void gtk_menu_item_remove_submenu (GtkMenuItem *menu_item); -void gtk_menu_item_set_placement (GtkMenuItem *menu_item, - GtkSubmenuPlacement placement); -void gtk_menu_item_configure (GtkMenuItem *menu_item, - gint show_toggle_indicator, - gint show_submenu_indicator); -void gtk_menu_item_select (GtkMenuItem *menu_item); -void gtk_menu_item_deselect (GtkMenuItem *menu_item); -void gtk_menu_item_activate (GtkMenuItem *menu_item); -void gtk_menu_item_right_justify (GtkMenuItem *menu_item); +GtkType gtk_menu_item_get_type (void) G_GNUC_CONST; +GtkWidget* gtk_menu_item_new (void); +GtkWidget* gtk_menu_item_new_with_label (const gchar *label); +void gtk_menu_item_set_submenu (GtkMenuItem *menu_item, + GtkWidget *submenu); +void gtk_menu_item_remove_submenu (GtkMenuItem *menu_item); +void gtk_menu_item_set_placement (GtkMenuItem *menu_item, + GtkSubmenuPlacement placement); +void gtk_menu_item_configure (GtkMenuItem *menu_item, + gint show_toggle_indicator, + gint show_submenu_indicator); +void gtk_menu_item_select (GtkMenuItem *menu_item); +void gtk_menu_item_deselect (GtkMenuItem *menu_item); +void gtk_menu_item_activate (GtkMenuItem *menu_item); +void gtk_menu_item_toggle_size_request (GtkMenuItem *menu_item, + guint16 *requisition); +void gtk_menu_item_toggle_size_allocate (GtkMenuItem *menu_item, + guint16 allocation); +void gtk_menu_item_right_justify (GtkMenuItem *menu_item); + #ifdef __cplusplus |