1 /* Copyright Owen Taylor, 1998
3 * This file may be distributed under either the terms of the
4 * Netscape Public License, or the GNU Library General Public License
6 * Note: No GTK+ or Mozilla code should be added to this file.
7 * The coding style should be that of the the GTK core.
10 #ifndef __GTK_LAYOUT_H
11 #define __GTK_LAYOUT_H
14 #include <gtk/gtkcontainer.h>
15 #include <gtk/gtkadjustment.h>
19 #endif /* __cplusplus */
21 #define GTK_LAYOUT(obj) GTK_CHECK_CAST (obj, gtk_layout_get_type (), GtkLayout)
22 #define GTK_LAYOUT_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_layout_get_type (), GtkLayoutClass)
23 #define GTK_IS_LAYOUT(obj) GTK_CHECK_TYPE (obj, gtk_layout_get_type ())
25 typedef struct _GtkLayout GtkLayout;
26 typedef struct _GtkLayoutClass GtkLayoutClass;
27 typedef struct _GtkLayoutChild GtkLayoutChild;
29 struct _GtkLayoutChild {
31 GdkWindow *window; /* For NO_WINDOW widgets */
37 GtkContainer container;
47 GtkAdjustment *hadjustment;
48 GtkAdjustment *vadjustment;
50 GdkWindow *bin_window;
52 GdkVisibilityState visibility;
53 gulong configure_serial;
60 struct _GtkLayoutClass {
61 GtkContainerClass parent_class;
63 void (*scroll_adjustments) (GtkLayout *text,
64 GtkAdjustment *hadjustment,
65 GtkAdjustment *vadjustment);
68 GtkWidget* gtk_layout_new (GtkAdjustment *hadjustment,
69 GtkAdjustment *vadjustment);
71 guint gtk_layout_get_type (void);
72 void gtk_layout_put (GtkLayout *layout,
77 void gtk_layout_move (GtkLayout *layout,
82 void gtk_layout_set_size (GtkLayout *layout,
86 /* These disable and enable moving and repainting the scrolling window of the GtkLayout,
87 * respectively. If you want to update the layout's offsets but do not want it to
88 * repaint itself, you should use these functions.
90 void gtk_layout_freeze (GtkLayout *layout);
91 void gtk_layout_thaw (GtkLayout *layout);
93 GtkAdjustment* gtk_layout_get_hadjustment (GtkLayout *layout);
94 GtkAdjustment* gtk_layout_get_vadjustment (GtkLayout *layout);
95 void gtk_layout_set_hadjustment (GtkLayout *layout,
96 GtkAdjustment *adjustment);
97 void gtk_layout_set_vadjustment (GtkLayout *layout,
98 GtkAdjustment *adjustment);
102 #endif /* __cplusplus */
104 #endif /* __GTK_LAYOUT_H */