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>
34 #endif /* __cplusplus */
37 typedef struct _GtkAccelGroup GtkAccelGroup;
38 typedef struct _GtkAccelEntry GtkAccelEntry;
40 /* enum GtkAccelFlags:
42 * GTK_ACCEL_VISIBLE - should the accelerator appear in
43 * the widget's display?
44 * GTK_ACCEL_SIGNAL_VISIBLE - should the signal associated
45 * with this accelerator be also visible?
46 * GTK_ACCEL_LOCKED - may the accelerator be removed again?
54 GSList *attach_objects;
61 GtkAccelGroup *accel_group;
62 guint accelerator_key;
63 guint accelerator_mods;
65 GtkAccelFlags accel_flags;
73 GtkAccelGroup* gtk_accel_group_new (void);
74 GtkAccelGroup* gtk_accel_group_get_default (void);
75 GtkAccelGroup* gtk_accel_group_ref (GtkAccelGroup *accel_group);
76 void gtk_accel_group_unref (GtkAccelGroup *accel_group);
77 gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
80 gboolean gtk_accel_groups_activate (GtkObject *object,
83 void gtk_accel_group_attach (GtkAccelGroup *accel_group,
85 void gtk_accel_group_detach (GtkAccelGroup *accel_group,
87 void gtk_accel_group_lock (GtkAccelGroup *accel_group);
88 void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
90 /* Accelerator Group Entries
92 GtkAccelEntry* gtk_accel_group_get_entry (GtkAccelGroup *accel_group,
95 void gtk_accel_group_lock_entry (GtkAccelGroup *accel_group,
98 void gtk_accel_group_unlock_entry (GtkAccelGroup *accel_group,
101 void gtk_accel_group_add (GtkAccelGroup *accel_group,
104 GtkAccelFlags accel_flags,
106 const gchar *accel_signal);
107 void gtk_accel_group_remove (GtkAccelGroup *accel_group,
112 /* Accelerator Signals
114 void gtk_accel_group_handle_add (GtkObject *object,
115 guint accel_signal_id,
116 GtkAccelGroup *accel_group,
119 GtkAccelFlags accel_flags);
120 void gtk_accel_group_handle_remove (GtkObject *object,
121 GtkAccelGroup *accel_group,
124 guint gtk_accel_group_create_add (GtkType class_type,
125 GtkSignalRunType run_type,
126 guint handler_offset);
127 guint gtk_accel_group_create_remove (GtkType class_type,
128 GtkSignalRunType run_type,
129 guint handler_offset);
130 void gtk_accel_group_marshal_add (GtkObject *object,
134 void gtk_accel_group_marshal_remove (GtkObject *object,
141 GSList* gtk_accel_groups_from_object (GtkObject *object);
142 GSList* gtk_accel_group_entries_from_object (GtkObject *object);
147 gboolean gtk_accelerator_valid (guint keyval,
149 void gtk_accelerator_parse (const gchar *accelerator,
150 guint *accelerator_key,
151 guint *accelerator_mods);
152 gchar* gtk_accelerator_name (guint accelerator_key,
153 guint accelerator_mods);
154 void gtk_accelerator_set_default_mod_mask (guint default_mod_mask);
155 guint gtk_accelerator_get_default_mod_mask (void);
161 #endif /* __cplusplus */
164 #endif /* __GTK_ACCEL_GROUP_H__ */