* 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 <http://www.gnu.org/licenses/>.
*/
/*
* 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 <gtk/gtk.h> can be included directly."
+#endif
+
#include <gdk/gdk.h>
#include <gtk/gtkenums.h>
/* --- 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
/* -- Accelerator Groups --- */
-GType gtk_accel_group_get_type (void);
+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,
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 --- */
guint accel_key,
GdkModifierType accel_mods);
GSList* gtk_accel_groups_from_object (GObject *object);
-GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group,
- gboolean (*find_func) (GtkAccelKey *key,
- GClosure *closure,
- gpointer data),
- gpointer data);
+GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group,
+ GtkAccelGroupFindFunc find_func,
+ gpointer data);
GtkAccelGroup* gtk_accel_group_from_accel_closure (GClosure *closure);
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 --- */
void _gtk_accel_group_reconnect (GtkAccelGroup *accel_group,
GQuark accel_path_quark);
+GSList* _gtk_accel_group_get_accelerables (GtkAccelGroup *accel_group);
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