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 <[email protected]>
19 *
20 */
21
22#ifndef __GTK_REVEALER_H__
23#define __GTK_REVEALER_H__
24
25#include <gtk/gtkbin.h>
26
27G_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
37typedef struct _GtkRevealer GtkRevealer;
38typedef struct _GtkRevealerClass GtkRevealerClass;
39
40typedef 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
49struct _GtkRevealer {
50 GtkBin parent_instance;
51};
52
53/**
54 * GtkRevealerClass:
55 * @parent_class: The parent class.
56 */
57struct _GtkRevealerClass {
58 GtkBinClass parent_class;
59};
60
61GDK_AVAILABLE_IN_3_10
62GType gtk_revealer_get_type (void) G_GNUC_CONST;
63GDK_AVAILABLE_IN_3_10
64GtkWidget* gtk_revealer_new (void);
65GDK_AVAILABLE_IN_3_10
66gboolean gtk_revealer_get_reveal_child (GtkRevealer *revealer);
67GDK_AVAILABLE_IN_3_10
68void gtk_revealer_set_reveal_child (GtkRevealer *revealer,
69 gboolean reveal_child);
70GDK_AVAILABLE_IN_3_10
71gboolean gtk_revealer_get_child_revealed (GtkRevealer *revealer);
72GDK_AVAILABLE_IN_3_10
73guint gtk_revealer_get_transition_duration (GtkRevealer *revealer);
74GDK_AVAILABLE_IN_3_10
75void gtk_revealer_set_transition_duration (GtkRevealer *revealer,
76 guint duration);
77GDK_AVAILABLE_IN_3_10
78void gtk_revealer_set_transition_type (GtkRevealer *revealer,
79 GtkRevealerTransitionType transition);
80GDK_AVAILABLE_IN_3_10
81GtkRevealerTransitionType gtk_revealer_get_transition_type (GtkRevealer *revealer);
82
83
84G_END_DECLS
85
86#endif
87