1/* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18/*
19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the GTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23 */
24
25#ifndef __GTK_PANED_H__
26#define __GTK_PANED_H__
27
28#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
29#error "Only <gtk/gtk.h> can be included directly."
30#endif
31
32#include <gtk/gtkcontainer.h>
33
34G_BEGIN_DECLS
35
36#define GTK_TYPE_PANED (gtk_paned_get_type ())
37#define GTK_PANED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PANED, GtkPaned))
38#define GTK_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PANED, GtkPanedClass))
39#define GTK_IS_PANED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PANED))
40#define GTK_IS_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PANED))
41#define GTK_PANED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PANED, GtkPanedClass))
42
43
44typedef struct _GtkPaned GtkPaned;
45typedef struct _GtkPanedClass GtkPanedClass;
46typedef struct _GtkPanedPrivate GtkPanedPrivate;
47
48struct _GtkPaned
49{
50 GtkContainer container;
51
52 /*< private >*/
53 GtkPanedPrivate *priv;
54};
55
56struct _GtkPanedClass
57{
58 GtkContainerClass parent_class;
59
60 gboolean (* cycle_child_focus) (GtkPaned *paned,
61 gboolean reverse);
62 gboolean (* toggle_handle_focus) (GtkPaned *paned);
63 gboolean (* move_handle) (GtkPaned *paned,
64 GtkScrollType scroll);
65 gboolean (* cycle_handle_focus) (GtkPaned *paned,
66 gboolean reverse);
67 gboolean (* accept_position) (GtkPaned *paned);
68 gboolean (* cancel_position) (GtkPaned *paned);
69
70 /* Padding for future expansion */
71 void (*_gtk_reserved1) (void);
72 void (*_gtk_reserved2) (void);
73 void (*_gtk_reserved3) (void);
74 void (*_gtk_reserved4) (void);
75};
76
77
78GDK_AVAILABLE_IN_ALL
79GType gtk_paned_get_type (void) G_GNUC_CONST;
80GDK_AVAILABLE_IN_ALL
81GtkWidget * gtk_paned_new (GtkOrientation orientation);
82GDK_AVAILABLE_IN_ALL
83void gtk_paned_add1 (GtkPaned *paned,
84 GtkWidget *child);
85GDK_AVAILABLE_IN_ALL
86void gtk_paned_add2 (GtkPaned *paned,
87 GtkWidget *child);
88GDK_AVAILABLE_IN_ALL
89void gtk_paned_pack1 (GtkPaned *paned,
90 GtkWidget *child,
91 gboolean resize,
92 gboolean shrink);
93GDK_AVAILABLE_IN_ALL
94void gtk_paned_pack2 (GtkPaned *paned,
95 GtkWidget *child,
96 gboolean resize,
97 gboolean shrink);
98
99GDK_AVAILABLE_IN_ALL
100gint gtk_paned_get_position (GtkPaned *paned);
101GDK_AVAILABLE_IN_ALL
102void gtk_paned_set_position (GtkPaned *paned,
103 gint position);
104
105GDK_AVAILABLE_IN_ALL
106GtkWidget * gtk_paned_get_child1 (GtkPaned *paned);
107GDK_AVAILABLE_IN_ALL
108GtkWidget * gtk_paned_get_child2 (GtkPaned *paned);
109
110GDK_AVAILABLE_IN_ALL
111GdkWindow * gtk_paned_get_handle_window (GtkPaned *paned);
112
113GDK_AVAILABLE_IN_3_16
114void gtk_paned_set_wide_handle (GtkPaned *paned,
115 gboolean wide);
116GDK_AVAILABLE_IN_3_16
117gboolean gtk_paned_get_wide_handle (GtkPaned *paned);
118
119
120G_END_DECLS
121
122#endif /* __GTK_PANED_H__ */
123