]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkaccelgroup.h
GtkWidget::draw() - Document how to get the dirty region
[~andy/gtk] / gtk / gtkaccelgroup.h
index f006f38054bdc6f95e9959dc3dbd6431e1f7a990..fe8b1f779ba624a2730f83dade33e1ffaebfbf1f 100644 (file)
  * 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>
 
@@ -53,22 +55,37 @@ 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
@@ -96,8 +113,11 @@ struct _GtkAccelKey
 
 
 /* -- 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,
@@ -113,6 +133,11 @@ gboolean       gtk_accel_group_disconnect    (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 --- */
@@ -124,11 +149,9 @@ gboolean        gtk_accel_groups_activate          (GObject        *object,
                                                 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);
 
 
@@ -138,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 --- */
@@ -152,6 +193,7 @@ GtkAccelGroupEntry* gtk_accel_group_query   (GtkAccelGroup  *accel_group,
 
 void                _gtk_accel_group_reconnect (GtkAccelGroup *accel_group,
                                                 GQuark         accel_path_quark);
+GSList*       _gtk_accel_group_get_accelerables (GtkAccelGroup *accel_group);
 
 struct _GtkAccelGroupEntry
 {
@@ -161,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