1 /* GTK - The GIMP Toolkit 2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald 3 * 4 * GtkAccelLabel: GtkLabel with accelerator monitoring facilities. 5 * Copyright (C) 1998 Tim Janik 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser 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. 11 * 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 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 /* 22 * Modified by the GTK+ Team and others 1997-2001. See the AUTHORS 23 * file for a list of people on the GTK+ Team. See the ChangeLog 24 * files for a list of changes. These files are distributed with 25 * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 26 */ 27 28 #ifndef __GTK_ACCEL_LABEL_H__ 29 #define __GTK_ACCEL_LABEL_H__ 30 31 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 32 #error "Only <gtk/gtk.h> can be included directly." 33 #endif 34 35 #include <gtk/gtklabel.h> 36 37 G_BEGIN_DECLS 38 39 #define GTK_TYPE_ACCEL_LABEL (gtk_accel_label_get_type ()) 40 #define GTK_ACCEL_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ACCEL_LABEL, GtkAccelLabel)) 41 #define GTK_ACCEL_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ACCEL_LABEL, GtkAccelLabelClass)) 42 #define GTK_IS_ACCEL_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ACCEL_LABEL)) 43 #define GTK_IS_ACCEL_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ACCEL_LABEL)) 44 #define GTK_ACCEL_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ACCEL_LABEL, GtkAccelLabelClass)) 45 46 47 typedef struct _GtkAccelLabel GtkAccelLabel; 48 typedef struct _GtkAccelLabelClass GtkAccelLabelClass; 49 typedef struct _GtkAccelLabelPrivate GtkAccelLabelPrivate; 50 51 /** 52 * GtkAccelLabel: 53 * 54 * The #GtkAccelLabel-struct contains private data only, and 55 * should be accessed using the functions below. 56 */ 57 struct _GtkAccelLabel 58 { 59 GtkLabel label; 60 GtkAccelLabelPrivate *priv; 61 }; 62 63 struct _GtkAccelLabelClass 64 { 65 GtkLabelClass parent_class; 66 67 gchar *signal_quote1; 68 gchar *signal_quote2; 69 gchar *mod_name_shift; 70 gchar *mod_name_control; 71 gchar *mod_name_alt; 72 gchar *mod_separator; 73 74 /* Padding for future expansion */ 75 void (*_gtk_reserved1) (void); 76 void (*_gtk_reserved2) (void); 77 void (*_gtk_reserved3) (void); 78 void (*_gtk_reserved4) (void); 79 }; 80 81 82 GDK_AVAILABLE_IN_ALL 83 GType gtk_accel_label_get_type (void) G_GNUC_CONST; 84 GDK_AVAILABLE_IN_ALL 85 GtkWidget* gtk_accel_label_new (const gchar *string); 86 GDK_AVAILABLE_IN_ALL 87 GtkWidget* gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label); 88 GDK_AVAILABLE_IN_ALL 89 guint gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label); 90 GDK_AVAILABLE_IN_ALL 91 void gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label, 92 GtkWidget *accel_widget); 93 GDK_AVAILABLE_IN_ALL 94 void gtk_accel_label_set_accel_closure (GtkAccelLabel *accel_label, 95 GClosure *accel_closure); 96 GDK_AVAILABLE_IN_ALL 97 gboolean gtk_accel_label_refetch (GtkAccelLabel *accel_label); 98 GDK_AVAILABLE_IN_3_6 99 void gtk_accel_label_set_accel (GtkAccelLabel *accel_label, 100 guint accelerator_key, 101 GdkModifierType accelerator_mods); 102 GDK_AVAILABLE_IN_3_12 103 void gtk_accel_label_get_accel (GtkAccelLabel *accel_label, 104 guint *accelerator_key, 105 GdkModifierType *accelerator_mods); 106 107 /* private */ 108 gchar * _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, 109 guint accelerator_key, 110 GdkModifierType accelerator_mods); 111 112 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkAccelLabel, g_object_unref) 113 114 G_END_DECLS 115 116 #endif /* __GTK_ACCEL_LABEL_H__ */ 117