1 /* 2 * Copyright (c) 2013 Red Hat, Inc. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or (at your 7 * option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 12 * License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this program; if not, write to the Free Software Foundation, 16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 * 18 * Author: Alexander Larsson <alexl@redhat.com> 19 * 20 */ 21 22 #ifndef __GTK_REVEALER_H__ 23 #define __GTK_REVEALER_H__ 24 25 #include <gtk/gtkbin.h> 26 27 G_BEGIN_DECLS 28 29 30 #define GTK_TYPE_REVEALER (gtk_revealer_get_type ()) 31 #define GTK_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_REVEALER, GtkRevealer)) 32 #define GTK_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_REVEALER, GtkRevealerClass)) 33 #define GTK_IS_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_REVEALER)) 34 #define GTK_IS_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_REVEALER)) 35 #define GTK_REVEALER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_REVEALER, GtkRevealerClass)) 36 37 typedef struct _GtkRevealer GtkRevealer; 38 typedef struct _GtkRevealerClass GtkRevealerClass; 39 40 typedef enum { 41 GTK_REVEALER_TRANSITION_TYPE_NONE, 42 GTK_REVEALER_TRANSITION_TYPE_CROSSFADE, 43 GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT, 44 GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT, 45 GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP, 46 GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN 47 } GtkRevealerTransitionType; 48 49 struct _GtkRevealer { 50 GtkBin parent_instance; 51 }; 52 53 /** 54 * GtkRevealerClass: 55 * @parent_class: The parent class. 56 */ 57 struct _GtkRevealerClass { 58 GtkBinClass parent_class; 59 }; 60 61 GDK_AVAILABLE_IN_3_10 62 GType gtk_revealer_get_type (void) G_GNUC_CONST; 63 GDK_AVAILABLE_IN_3_10 64 GtkWidget* gtk_revealer_new (void); 65 GDK_AVAILABLE_IN_3_10 66 gboolean gtk_revealer_get_reveal_child (GtkRevealer *revealer); 67 GDK_AVAILABLE_IN_3_10 68 void gtk_revealer_set_reveal_child (GtkRevealer *revealer, 69 gboolean reveal_child); 70 GDK_AVAILABLE_IN_3_10 71 gboolean gtk_revealer_get_child_revealed (GtkRevealer *revealer); 72 GDK_AVAILABLE_IN_3_10 73 guint gtk_revealer_get_transition_duration (GtkRevealer *revealer); 74 GDK_AVAILABLE_IN_3_10 75 void gtk_revealer_set_transition_duration (GtkRevealer *revealer, 76 guint duration); 77 GDK_AVAILABLE_IN_3_10 78 void gtk_revealer_set_transition_type (GtkRevealer *revealer, 79 GtkRevealerTransitionType transition); 80 GDK_AVAILABLE_IN_3_10 81 GtkRevealerTransitionType gtk_revealer_get_transition_type (GtkRevealer *revealer); 82 83 84 G_END_DECLS 85 86 #endif 87