* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+
+/*
+ * Modified by the GTK+ Team and others 1997-1999. 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/.
+ */
+
#ifndef __GTK_ACCEL_GROUP_H__
#define __GTK_ACCEL_GROUP_H__
#ifdef __cplusplus
extern "C" {
-#pragma }
#endif /* __cplusplus */
typedef struct _GtkAccelGroup GtkAccelGroup;
typedef struct _GtkAccelEntry GtkAccelEntry;
-/* enum GtkAccelFlags:
- *
- * GTK_ACCEL_VISIBLE - should the accelerator appear in
- * the widget's display?
- * GTK_ACCEL_SIGNAL_VISIBLE - should the signal associated
- * with this accelerator be also visible?
- * GTK_ACCEL_LOCKED - may the accelerator be removed again?
- */
+typedef enum
+{
+ /* should the accelerator appear in
+ * the widget's display?
+ */
+ GTK_ACCEL_VISIBLE = 1 << 0,
+ /* should the signal associated with
+ * this accelerator be also visible?
+ */
+ GTK_ACCEL_SIGNAL_VISIBLE = 1 << 1,
+ /* may the accelerator be removed
+ * again?
+ */
+ GTK_ACCEL_LOCKED = 1 << 2,
+ GTK_ACCEL_MASK = 0x07
+} GtkAccelFlags;
struct _GtkAccelGroup
{
- guint ref_count;
- guint lock_count;
- guint modifier_mask;
- GSList *attach_objects;
+ guint ref_count;
+ guint lock_count;
+ GdkModifierType modifier_mask;
+ GSList *attach_objects;
};
struct _GtkAccelEntry
*/
GtkAccelGroup *accel_group;
guint accelerator_key;
- guint accelerator_mods;
+ GdkModifierType accelerator_mods;
GtkAccelFlags accel_flags;
GtkObject *object;
};
+/* Accelerators
+ */
+gboolean gtk_accelerator_valid (guint keyval,
+ GdkModifierType modifiers);
+void gtk_accelerator_parse (const gchar *accelerator,
+ guint *accelerator_key,
+ GdkModifierType *accelerator_mods);
+gchar* gtk_accelerator_name (guint accelerator_key,
+ GdkModifierType accelerator_mods);
+void gtk_accelerator_set_default_mod_mask (GdkModifierType default_mod_mask);
+guint gtk_accelerator_get_default_mod_mask (void);
+
+
/* Accelerator Groups
*/
GtkAccelGroup* gtk_accel_group_new (void);
GtkAccelGroup* gtk_accel_group_get_default (void);
GtkAccelGroup* gtk_accel_group_ref (GtkAccelGroup *accel_group);
void gtk_accel_group_unref (GtkAccelGroup *accel_group);
-gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
- guint accel_key,
- guint accel_mods);
+void gtk_accel_group_lock (GtkAccelGroup *accel_group);
+void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
gboolean gtk_accel_groups_activate (GtkObject *object,
guint accel_key,
- guint accel_mods);
+ GdkModifierType accel_mods);
+
+/* internal functions
+ */
+gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
+ guint accel_key,
+ GdkModifierType accel_mods);
void gtk_accel_group_attach (GtkAccelGroup *accel_group,
GtkObject *object);
void gtk_accel_group_detach (GtkAccelGroup *accel_group,
GtkObject *object);
-void gtk_accel_group_lock (GtkAccelGroup *accel_group);
-void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
-/* Accelerator Group Entries
+/* Accelerator Group Entries (internal)
*/
GtkAccelEntry* gtk_accel_group_get_entry (GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods);
+ GdkModifierType accel_mods);
void gtk_accel_group_lock_entry (GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods);
+ GdkModifierType accel_mods);
void gtk_accel_group_unlock_entry (GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods);
+ GdkModifierType accel_mods);
void gtk_accel_group_add (GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods,
+ GdkModifierType accel_mods,
GtkAccelFlags accel_flags,
GtkObject *object,
const gchar *accel_signal);
void gtk_accel_group_remove (GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods,
+ GdkModifierType accel_mods,
GtkObject *object);
-/* Accelerator Signals
+/* Accelerator Signals (internal)
*/
void gtk_accel_group_handle_add (GtkObject *object,
guint accel_signal_id,
GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods,
+ GdkModifierType accel_mods,
GtkAccelFlags accel_flags);
void gtk_accel_group_handle_remove (GtkObject *object,
GtkAccelGroup *accel_group,
guint accel_key,
- guint accel_mods);
+ GdkModifierType accel_mods);
guint gtk_accel_group_create_add (GtkType class_type,
- GtkSignalRunType run_type,
+ GtkSignalRunType signal_flags,
guint handler_offset);
guint gtk_accel_group_create_remove (GtkType class_type,
- GtkSignalRunType run_type,
+ GtkSignalRunType signal_flags,
guint handler_offset);
-void gtk_accel_group_marshal_add (GtkObject *object,
- GtkSignalFunc func,
- gpointer func_data,
- GtkArg *args);
-void gtk_accel_group_marshal_remove (GtkObject *object,
- GtkSignalFunc func,
- gpointer func_data,
- GtkArg *args);
-
-/* Miscellaneous
+
+/* Miscellaneous (internal)
*/
GSList* gtk_accel_groups_from_object (GtkObject *object);
GSList* gtk_accel_group_entries_from_object (GtkObject *object);
-/* Accelerators
- */
-gboolean gtk_accelerator_valid (guint keyval,
- guint modifiers);
-void gtk_accelerator_parse (const gchar *accelerator,
- guint *accelerator_key,
- guint *accelerator_mods);
-gchar* gtk_accelerator_name (guint accelerator_key,
- guint accelerator_mods);
-void gtk_accelerator_set_default_mod_mask (guint default_mod_mask);
-guint gtk_accelerator_get_default_mod_mask (void);
-
-
#ifdef __cplusplus
}