1
/* GTK - The GIMP Toolkit
2
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
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.
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.
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the
16
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17
* Boston, MA 02111-1307, USA.
21
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
22
* file for a list of people on the GTK+ Team. See the ChangeLog
23
* files for a list of changes. These files are distributed with
24
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
27
#ifndef __GTK_SCROLLED_WINDOW_H__
28
#define __GTK_SCROLLED_WINDOW_H__
32
#include <gtk/gtkhscrollbar.h>
33
#include <gtk/gtkvscrollbar.h>
34
#include <gtk/gtkviewport.h>
40
#define GTK_TYPE_SCROLLED_WINDOW (gtk_scrolled_window_get_type ())
41
#define GTK_SCROLLED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindow))
42
#define GTK_SCROLLED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowClass))
43
#define GTK_IS_SCROLLED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCROLLED_WINDOW))
44
#define GTK_IS_SCROLLED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCROLLED_WINDOW))
45
#define GTK_SCROLLED_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowClass))
49
typedef struct _GtkScrolledWindow GtkScrolledWindow;
50
typedef struct _GtkScrolledWindowClass GtkScrolledWindowClass;
52
struct _GtkScrolledWindow
57
GtkWidget *hscrollbar;
58
GtkWidget *vscrollbar;
61
guint hscrollbar_policy : 2;
62
guint vscrollbar_policy : 2;
63
guint hscrollbar_visible : 1;
64
guint vscrollbar_visible : 1;
65
guint window_placement : 2;
66
guint focus_out : 1; /* Flag used by ::move-focus-out implementation */
71
struct _GtkScrolledWindowClass
73
GtkBinClass parent_class;
75
gint scrollbar_spacing;
77
/* Action signals for keybindings. Do not connect to these signals
80
/* Unfortunately, GtkScrollType is deficient in that there is
81
* no horizontal/vertical variants for GTK_SCROLL_START/END,
82
* so we have to add an additional boolean flag.
84
gboolean (*scroll_child) (GtkScrolledWindow *scrolled_window,
88
void (* move_focus_out) (GtkScrolledWindow *scrolled_window,
89
GtkDirectionType direction);
91
/* Padding for future expansion */
92
void (*_gtk_reserved1) (void);
93
void (*_gtk_reserved2) (void);
94
void (*_gtk_reserved3) (void);
95
void (*_gtk_reserved4) (void);
99
GType gtk_scrolled_window_get_type (void) G_GNUC_CONST;
100
GtkWidget* gtk_scrolled_window_new (GtkAdjustment *hadjustment,
101
GtkAdjustment *vadjustment);
102
void gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window,
103
GtkAdjustment *hadjustment);
104
void gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window,
105
GtkAdjustment *vadjustment);
106
GtkAdjustment* gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *scrolled_window);
107
GtkAdjustment* gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *scrolled_window);
108
GtkWidget* gtk_scrolled_window_get_hscrollbar (GtkScrolledWindow *scrolled_window);
109
GtkWidget* gtk_scrolled_window_get_vscrollbar (GtkScrolledWindow *scrolled_window);
110
void gtk_scrolled_window_set_policy (GtkScrolledWindow *scrolled_window,
111
GtkPolicyType hscrollbar_policy,
112
GtkPolicyType vscrollbar_policy);
113
void gtk_scrolled_window_get_policy (GtkScrolledWindow *scrolled_window,
114
GtkPolicyType *hscrollbar_policy,
115
GtkPolicyType *vscrollbar_policy);
116
void gtk_scrolled_window_set_placement (GtkScrolledWindow *scrolled_window,
117
GtkCornerType window_placement);
118
void gtk_scrolled_window_unset_placement (GtkScrolledWindow *scrolled_window);
120
GtkCornerType gtk_scrolled_window_get_placement (GtkScrolledWindow *scrolled_window);
121
void gtk_scrolled_window_set_shadow_type (GtkScrolledWindow *scrolled_window,
123
GtkShadowType gtk_scrolled_window_get_shadow_type (GtkScrolledWindow *scrolled_window);
124
void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
127
gint _gtk_scrolled_window_get_scrollbar_spacing (GtkScrolledWindow *scrolled_window);
133
#endif /* __GTK_SCROLLED_WINDOW_H__ */