1 /* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * GtkAccelGroup: Accelerator manager for GtkObjects.
5 * Copyright (C) 1998 Tim Janik
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
22 #ifndef __GTK_ACCEL_GROUP_H__
23 #define __GTK_ACCEL_GROUP_H__
27 #include <gtk/gtkobject.h>
28 #include <gtk/gtkenums.h>
33 #endif /* __cplusplus */
36 typedef struct _GtkAccelGroup GtkAccelGroup;
37 typedef struct _GtkAccelEntry GtkAccelEntry;
41 /* should the accelerator appear in
42 * the widget's display?
44 GTK_ACCEL_VISIBLE = 1 << 0,
45 /* should the signal associated with
46 * this accelerator be also visible?
48 GTK_ACCEL_SIGNAL_VISIBLE = 1 << 1,
49 /* may the accelerator be removed
52 GTK_ACCEL_LOCKED = 1 << 2,
60 GdkModifierType modifier_mask;
61 GSList *attach_objects;
68 GtkAccelGroup *accel_group;
69 guint accelerator_key;
70 GdkModifierType accelerator_mods;
72 GtkAccelFlags accel_flags;
80 GtkAccelGroup* gtk_accel_group_new (void);
81 GtkAccelGroup* gtk_accel_group_get_default (void);
82 GtkAccelGroup* gtk_accel_group_ref (GtkAccelGroup *accel_group);
83 void gtk_accel_group_unref (GtkAccelGroup *accel_group);
84 gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
86 GdkModifierType accel_mods);
87 gboolean gtk_accel_groups_activate (GtkObject *object,
89 GdkModifierType accel_mods);
90 void gtk_accel_group_attach (GtkAccelGroup *accel_group,
92 void gtk_accel_group_detach (GtkAccelGroup *accel_group,
94 void gtk_accel_group_lock (GtkAccelGroup *accel_group);
95 void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
97 /* Accelerator Group Entries
99 GtkAccelEntry* gtk_accel_group_get_entry (GtkAccelGroup *accel_group,
101 GdkModifierType accel_mods);
102 void gtk_accel_group_lock_entry (GtkAccelGroup *accel_group,
104 GdkModifierType accel_mods);
105 void gtk_accel_group_unlock_entry (GtkAccelGroup *accel_group,
107 GdkModifierType accel_mods);
108 void gtk_accel_group_add (GtkAccelGroup *accel_group,
110 GdkModifierType accel_mods,
111 GtkAccelFlags accel_flags,
113 const gchar *accel_signal);
114 void gtk_accel_group_remove (GtkAccelGroup *accel_group,
116 GdkModifierType accel_mods,
119 /* Accelerator Signals
121 void gtk_accel_group_handle_add (GtkObject *object,
122 guint accel_signal_id,
123 GtkAccelGroup *accel_group,
125 GdkModifierType accel_mods,
126 GtkAccelFlags accel_flags);
127 void gtk_accel_group_handle_remove (GtkObject *object,
128 GtkAccelGroup *accel_group,
130 GdkModifierType accel_mods);
131 guint gtk_accel_group_create_add (GtkType class_type,
132 GtkSignalRunType signal_flags,
133 guint handler_offset);
134 guint gtk_accel_group_create_remove (GtkType class_type,
135 GtkSignalRunType signal_flags,
136 guint handler_offset);
137 void gtk_accel_group_marshal_add (GtkObject *object,
141 void gtk_accel_group_marshal_remove (GtkObject *object,
148 GSList* gtk_accel_groups_from_object (GtkObject *object);
149 GSList* gtk_accel_group_entries_from_object (GtkObject *object);
154 gboolean gtk_accelerator_valid (guint keyval,
155 GdkModifierType modifiers);
156 void gtk_accelerator_parse (const gchar *accelerator,
157 guint *accelerator_key,
158 GdkModifierType *accelerator_mods);
159 gchar* gtk_accelerator_name (guint accelerator_key,
160 GdkModifierType accelerator_mods);
161 void gtk_accelerator_set_default_mod_mask (GdkModifierType default_mod_mask);
162 guint gtk_accelerator_get_default_mod_mask (void);
168 #endif /* __cplusplus */
171 #endif /* __GTK_ACCEL_GROUP_H__ */