1 /* GTK - The GIMP Toolkit 2 * 3 * Copyright (C) 2003 Sun Microsystems, Inc. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public 16 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 17 * 18 * Authors: 19 * Mark McLoughlin <mark@skynet.ie> 20 */ 21 22 #ifndef __GTK_EXPANDER_H__ 23 #define __GTK_EXPANDER_H__ 24 25 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 26 #error "Only <gtk/gtk.h> can be included directly." 27 #endif 28 29 #include <gtk/gtkbin.h> 30 31 G_BEGIN_DECLS 32 33 #define GTK_TYPE_EXPANDER (gtk_expander_get_type ()) 34 #define GTK_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EXPANDER, GtkExpander)) 35 #define GTK_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_EXPANDER, GtkExpanderClass)) 36 #define GTK_IS_EXPANDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EXPANDER)) 37 #define GTK_IS_EXPANDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_EXPANDER)) 38 #define GTK_EXPANDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_EXPANDER, GtkExpanderClass)) 39 40 typedef struct _GtkExpander GtkExpander; 41 typedef struct _GtkExpanderClass GtkExpanderClass; 42 typedef struct _GtkExpanderPrivate GtkExpanderPrivate; 43 44 struct _GtkExpander 45 { 46 GtkBin bin; 47 48 GtkExpanderPrivate *priv; 49 }; 50 51 /** 52 * GtkExpanderClass: 53 * @parent_class: The parent class. 54 * @activate: Keybinding signal is emitted when the user hits the Enter key. 55 */ 56 struct _GtkExpanderClass 57 { 58 GtkBinClass parent_class; 59 60 /*< public >*/ 61 62 /* Key binding signal; to get notification on the expansion 63 * state connect to notify:expanded. 64 */ 65 void (* activate) (GtkExpander *expander); 66 67 /*< private >*/ 68 69 /* Padding for future expansion */ 70 void (*_gtk_reserved1) (void); 71 void (*_gtk_reserved2) (void); 72 void (*_gtk_reserved3) (void); 73 void (*_gtk_reserved4) (void); 74 }; 75 76 GDK_AVAILABLE_IN_ALL 77 GType gtk_expander_get_type (void) G_GNUC_CONST; 78 79 GDK_AVAILABLE_IN_ALL 80 GtkWidget *gtk_expander_new (const gchar *label); 81 GDK_AVAILABLE_IN_ALL 82 GtkWidget *gtk_expander_new_with_mnemonic (const gchar *label); 83 84 GDK_AVAILABLE_IN_ALL 85 void gtk_expander_set_expanded (GtkExpander *expander, 86 gboolean expanded); 87 GDK_AVAILABLE_IN_ALL 88 gboolean gtk_expander_get_expanded (GtkExpander *expander); 89 90 /* Spacing between the expander/label and the child */ 91 GDK_AVAILABLE_IN_ALL 92 void gtk_expander_set_spacing (GtkExpander *expander, 93 gint spacing); 94 GDK_AVAILABLE_IN_ALL 95 gint gtk_expander_get_spacing (GtkExpander *expander); 96 97 GDK_AVAILABLE_IN_ALL 98 void gtk_expander_set_label (GtkExpander *expander, 99 const gchar *label); 100 GDK_AVAILABLE_IN_ALL 101 const gchar * gtk_expander_get_label (GtkExpander *expander); 102 103 GDK_AVAILABLE_IN_ALL 104 void gtk_expander_set_use_underline (GtkExpander *expander, 105 gboolean use_underline); 106 GDK_AVAILABLE_IN_ALL 107 gboolean gtk_expander_get_use_underline (GtkExpander *expander); 108 109 GDK_AVAILABLE_IN_ALL 110 void gtk_expander_set_use_markup (GtkExpander *expander, 111 gboolean use_markup); 112 GDK_AVAILABLE_IN_ALL 113 gboolean gtk_expander_get_use_markup (GtkExpander *expander); 114 115 GDK_AVAILABLE_IN_ALL 116 void gtk_expander_set_label_widget (GtkExpander *expander, 117 GtkWidget *label_widget); 118 GDK_AVAILABLE_IN_ALL 119 GtkWidget *gtk_expander_get_label_widget (GtkExpander *expander); 120 GDK_AVAILABLE_IN_ALL 121 void gtk_expander_set_label_fill (GtkExpander *expander, 122 gboolean label_fill); 123 GDK_AVAILABLE_IN_ALL 124 gboolean gtk_expander_get_label_fill (GtkExpander *expander); 125 GDK_AVAILABLE_IN_3_2 126 void gtk_expander_set_resize_toplevel (GtkExpander *expander, 127 gboolean resize_toplevel); 128 GDK_AVAILABLE_IN_3_2 129 gboolean gtk_expander_get_resize_toplevel (GtkExpander *expander); 130 131 G_END_DECLS 132 133 #endif /* __GTK_EXPANDER_H__ */ 134