X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkmenushell.h;h=c3bd8797e4c36a1e63fbed35890d8eba86dce85e;hb=aaedf5a35219b034a244730564b8fdf2b7d32540;hp=f68282a5e771780aeee337eecf963b7ced54c373;hpb=279e878bddb61086f813385dc94fd04a5465473a;p=~andy%2Fgtk diff --git a/gtk/gtkmenushell.h b/gtk/gtkmenushell.h index f68282a5e..c3bd8797e 100644 --- a/gtk/gtkmenushell.h +++ b/gtk/gtkmenushell.h @@ -2,106 +2,122 @@ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public + * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . */ /* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef __GTK_MENU_SHELL_H__ #define __GTK_MENU_SHELL_H__ -#include -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS -#define GTK_TYPE_MENU_SHELL (gtk_menu_shell_get_type ()) -#define GTK_MENU_SHELL(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_MENU_SHELL, GtkMenuShell)) -#define GTK_MENU_SHELL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_SHELL, GtkMenuShellClass)) -#define GTK_IS_MENU_SHELL(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_MENU_SHELL)) -#define GTK_IS_MENU_SHELL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_SHELL)) +#define GTK_TYPE_MENU_SHELL (gtk_menu_shell_get_type ()) +#define GTK_MENU_SHELL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MENU_SHELL, GtkMenuShell)) +#define GTK_MENU_SHELL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_SHELL, GtkMenuShellClass)) +#define GTK_IS_MENU_SHELL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MENU_SHELL)) +#define GTK_IS_MENU_SHELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_SHELL)) +#define GTK_MENU_SHELL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MENU_SHELL, GtkMenuShellClass)) -typedef struct _GtkMenuShell GtkMenuShell; -typedef struct _GtkMenuShellClass GtkMenuShellClass; +typedef struct _GtkMenuShell GtkMenuShell; +typedef struct _GtkMenuShellClass GtkMenuShellClass; +typedef struct _GtkMenuShellPrivate GtkMenuShellPrivate; struct _GtkMenuShell { GtkContainer container; - - GList *children; - GtkWidget *active_menu_item; - GtkWidget *parent_menu_shell; - - guint active : 1; - guint have_grab : 1; - guint have_xgrab : 1; - guint button : 2; - guint ignore_leave : 1; - guint menu_flag : 1; - guint ignore_enter : 1; - - guint32 activate_time; + + /*< private >*/ + GtkMenuShellPrivate *priv; }; struct _GtkMenuShellClass { GtkContainerClass parent_class; - - guint submenu_placement : 1; - - void (*deactivate) (GtkMenuShell *menu_shell); - void (*selection_done) (GtkMenuShell *menu_shell); - - void (*move_current) (GtkMenuShell *menu_shell, - GtkMenuDirectionType direction); - void (*activate_current) (GtkMenuShell *menu_shell, - gboolean force_hide); - void (*cancel) (GtkMenuShell *menu_shell); -}; - -GtkType gtk_menu_shell_get_type (void); -void gtk_menu_shell_append (GtkMenuShell *menu_shell, - GtkWidget *child); -void gtk_menu_shell_prepend (GtkMenuShell *menu_shell, - GtkWidget *child); -void gtk_menu_shell_insert (GtkMenuShell *menu_shell, - GtkWidget *child, - gint position); -void gtk_menu_shell_deactivate (GtkMenuShell *menu_shell); -void gtk_menu_shell_select_item (GtkMenuShell *menu_shell, - GtkWidget *menu_item); -void gtk_menu_shell_activate_item (GtkMenuShell *menu_shell, - GtkWidget *menu_item, - gboolean force_deactivate); + guint submenu_placement : 1; + void (*deactivate) (GtkMenuShell *menu_shell); + void (*selection_done) (GtkMenuShell *menu_shell); + + void (*move_current) (GtkMenuShell *menu_shell, + GtkMenuDirectionType direction); + void (*activate_current) (GtkMenuShell *menu_shell, + gboolean force_hide); + void (*cancel) (GtkMenuShell *menu_shell); + void (*select_item) (GtkMenuShell *menu_shell, + GtkWidget *menu_item); + void (*insert) (GtkMenuShell *menu_shell, + GtkWidget *child, + gint position); + gint (*get_popup_delay) (GtkMenuShell *menu_shell); + gboolean (*move_selected) (GtkMenuShell *menu_shell, + gint distance); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); +}; -#ifdef __cplusplus -} -#endif /* __cplusplus */ +GType gtk_menu_shell_get_type (void) G_GNUC_CONST; + +void gtk_menu_shell_append (GtkMenuShell *menu_shell, + GtkWidget *child); +void gtk_menu_shell_prepend (GtkMenuShell *menu_shell, + GtkWidget *child); +void gtk_menu_shell_insert (GtkMenuShell *menu_shell, + GtkWidget *child, + gint position); +void gtk_menu_shell_deactivate (GtkMenuShell *menu_shell); +void gtk_menu_shell_select_item (GtkMenuShell *menu_shell, + GtkWidget *menu_item); +void gtk_menu_shell_deselect (GtkMenuShell *menu_shell); +void gtk_menu_shell_activate_item (GtkMenuShell *menu_shell, + GtkWidget *menu_item, + gboolean force_deactivate); +void gtk_menu_shell_select_first (GtkMenuShell *menu_shell, + gboolean search_sensitive); +void gtk_menu_shell_cancel (GtkMenuShell *menu_shell); +gboolean gtk_menu_shell_get_take_focus (GtkMenuShell *menu_shell); +void gtk_menu_shell_set_take_focus (GtkMenuShell *menu_shell, + gboolean take_focus); + +GtkWidget *gtk_menu_shell_get_selected_item (GtkMenuShell *menu_shell); +GtkWidget *gtk_menu_shell_get_parent_shell (GtkMenuShell *menu_shell); + +GDK_AVAILABLE_IN_3_6 +void gtk_menu_shell_bind_model (GtkMenuShell *menu_shell, + GMenuModel *model, + const gchar *action_namespace, + gboolean with_separators); + +G_END_DECLS #endif /* __GTK_MENU_SHELL_H__ */