X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkaccelgroup.h;h=fe8b1f779ba624a2730f83dade33e1ffaebfbf1f;hb=ca2368dba958d6fecf2fce417307bb9cbbe6eb6b;hp=5fca1a33b3547f3b22f59fef293b4c2f3561ed02;hpb=d07573c090f8ca8c3fdb8f4d3f63b32be96ea7d6;p=~andy%2Fgtk diff --git a/gtk/gtkaccelgroup.h b/gtk/gtkaccelgroup.h index 5fca1a33b..fe8b1f779 100644 --- a/gtk/gtkaccelgroup.h +++ b/gtk/gtkaccelgroup.h @@ -12,22 +12,24 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. + * License along with this library. If not, see . */ /* * 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_ACCEL_GROUP_H__ #define __GTK_ACCEL_GROUP_H__ +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include #include @@ -53,23 +55,39 @@ typedef enum /* --- typedefs & structures --- */ -typedef struct _GtkAccelGroup GtkAccelGroup; -typedef struct _GtkAccelGroupClass GtkAccelGroupClass; -typedef struct _GtkAccelKey GtkAccelKey; -typedef struct _GtkAccelGroupEntry GtkAccelGroupEntry; +typedef struct _GtkAccelGroup GtkAccelGroup; +typedef struct _GtkAccelGroupClass GtkAccelGroupClass; +typedef struct _GtkAccelGroupPrivate GtkAccelGroupPrivate; +typedef struct _GtkAccelKey GtkAccelKey; +typedef struct _GtkAccelGroupEntry GtkAccelGroupEntry; typedef gboolean (*GtkAccelGroupActivate) (GtkAccelGroup *accel_group, GObject *acceleratable, guint keyval, GdkModifierType modifier); + +/** + * GtkAccelGroupFindFunc: + * @key: + * @closure: + * @data: (closure): + * + * Since: 2.2 + */ +typedef gboolean (*GtkAccelGroupFindFunc) (GtkAccelKey *key, + GClosure *closure, + gpointer data); + +/** + * GtkAccelGroup: + * + * An object representing and maintaining a group of accelerators. + */ struct _GtkAccelGroup { - GObject parent; - guint lock_count; - GdkModifierType modifier_mask; - GSList *acceleratables; - guint n_accels; - GtkAccelGroupEntry *priv_accels; + GObject parent; + GtkAccelGroupPrivate *priv; }; + struct _GtkAccelGroupClass { GObjectClass parent_class; @@ -78,7 +96,14 @@ struct _GtkAccelGroupClass guint keyval, GdkModifierType modifier, GClosure *accel_closure); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; + struct _GtkAccelKey { guint accel_key; @@ -88,20 +113,31 @@ struct _GtkAccelKey /* -- Accelerator Groups --- */ -GType gtk_accel_group_get_type (void); -GtkAccelGroup* gtk_accel_group_new (void); -void gtk_accel_group_lock (GtkAccelGroup *accel_group); -void gtk_accel_group_unlock (GtkAccelGroup *accel_group); -void gtk_accel_group_connect (GtkAccelGroup *accel_group, - guint accel_key, - GdkModifierType accel_mods, - GtkAccelFlags accel_flags, - GClosure *closure, - GQuark accel_path_quark); -gboolean gtk_accel_group_disconnect (GtkAccelGroup *accel_group, - guint accel_key, - GdkModifierType accel_mods); -gboolean gtk_accel_groups_disconnect_closure (GClosure *closure); +GType gtk_accel_group_get_type (void) G_GNUC_CONST; +GtkAccelGroup* gtk_accel_group_new (void); +gboolean gtk_accel_group_get_is_locked (GtkAccelGroup *accel_group); +GdkModifierType + gtk_accel_group_get_modifier_mask (GtkAccelGroup *accel_group); +void gtk_accel_group_lock (GtkAccelGroup *accel_group); +void gtk_accel_group_unlock (GtkAccelGroup *accel_group); +void gtk_accel_group_connect (GtkAccelGroup *accel_group, + guint accel_key, + GdkModifierType accel_mods, + GtkAccelFlags accel_flags, + GClosure *closure); +void gtk_accel_group_connect_by_path (GtkAccelGroup *accel_group, + const gchar *accel_path, + GClosure *closure); +gboolean gtk_accel_group_disconnect (GtkAccelGroup *accel_group, + GClosure *closure); +gboolean gtk_accel_group_disconnect_key (GtkAccelGroup *accel_group, + guint accel_key, + GdkModifierType accel_mods); +gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group, + GQuark accel_quark, + GObject *acceleratable, + guint accel_key, + GdkModifierType accel_mods); /* --- GtkActivatable glue --- */ @@ -109,15 +145,13 @@ void _gtk_accel_group_attach (GtkAccelGroup *accel_group, GObject *object); void _gtk_accel_group_detach (GtkAccelGroup *accel_group, GObject *object); -gboolean gtk_accel_groups_activate (GObject *acceleratable, +gboolean gtk_accel_groups_activate (GObject *object, guint accel_key, GdkModifierType accel_mods); -GSList* gtk_accel_groups_from_acceleratable (GObject *object); -GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group, - gboolean (*find_func) (GtkAccelKey *key, - GClosure *closure, - gpointer data), - gpointer data); +GSList* gtk_accel_groups_from_object (GObject *object); +GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group, + GtkAccelGroupFindFunc find_func, + gpointer data); GtkAccelGroup* gtk_accel_group_from_accel_closure (GClosure *closure); @@ -127,10 +161,28 @@ gboolean gtk_accelerator_valid (guint keyval, void gtk_accelerator_parse (const gchar *accelerator, guint *accelerator_key, GdkModifierType *accelerator_mods); +GDK_AVAILABLE_IN_3_4 +void gtk_accelerator_parse_with_keycode (const gchar *accelerator, + guint *accelerator_key, + guint **accelerator_codes, + GdkModifierType *accelerator_mods); gchar* gtk_accelerator_name (guint accelerator_key, GdkModifierType accelerator_mods); +GDK_AVAILABLE_IN_3_4 +gchar* gtk_accelerator_name_with_keycode (GdkDisplay *display, + guint accelerator_key, + guint keycode, + GdkModifierType accelerator_mods); +gchar* gtk_accelerator_get_label (guint accelerator_key, + GdkModifierType accelerator_mods); +GDK_AVAILABLE_IN_3_4 +gchar* gtk_accelerator_get_label_with_keycode (GdkDisplay *display, + guint accelerator_key, + guint keycode, + GdkModifierType accelerator_mods); void gtk_accelerator_set_default_mod_mask (GdkModifierType default_mod_mask); -guint gtk_accelerator_get_default_mod_mask (void); +GdkModifierType + gtk_accelerator_get_default_mod_mask (void); /* --- internal --- */ @@ -138,6 +190,11 @@ GtkAccelGroupEntry* gtk_accel_group_query (GtkAccelGroup *accel_group, guint accel_key, GdkModifierType accel_mods, guint *n_entries); + +void _gtk_accel_group_reconnect (GtkAccelGroup *accel_group, + GQuark accel_path_quark); +GSList* _gtk_accel_group_get_accelerables (GtkAccelGroup *accel_group); + struct _GtkAccelGroupEntry { GtkAccelKey key; @@ -146,11 +203,6 @@ struct _GtkAccelGroupEntry }; -#ifndef GTK_DISABLE_DEPRECATED -#define gtk_accel_group_ref g_object_ref -#define gtk_accel_group_unref g_object_unref -#endif /* GTK_DISABLE_DEPRECATED */ - G_END_DECLS