]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk/win_gtk.h
refactored wxGTK scrolling: it has now fully-functioning wxScrollHelper and a lot...
[wxWidgets.git] / include / wx / gtk / win_gtk.h
1 /* ///////////////////////////////////////////////////////////////////////////
2 // Name: win_gtk.h
3 // Purpose: wxWidgets's GTK base widget = GtkPizza
4 // Author: Robert Roebling
5 // Id: $Id$
6 // Copyright: (c) 1998 Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////// */
9
10
11 #ifndef __GTK_PIZZA_H__
12 #define __GTK_PIZZA_H__
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif /* __cplusplus */
17
18 #include <gdk/gdk.h>
19 #include <gdk/gdkx.h>
20 #include <gtk/gtkcontainer.h>
21 #include <gtk/gtkadjustment.h>
22 #ifndef __WXGTK20__
23 #include <gtk/gtkfeatures.h>
24 #endif
25
26 #include "wx/dlimpexp.h"
27
28 #define GTK_PIZZA(obj) GTK_CHECK_CAST (obj, gtk_pizza_get_type (), GtkPizza)
29 #define GTK_PIZZA_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_pizza_get_type (), GtkPizzaClass)
30 #define GTK_IS_PIZZA(obj) GTK_CHECK_TYPE (obj, gtk_pizza_get_type ())
31
32 /* Shadow types */
33 typedef enum
34 {
35 GTK_MYSHADOW_NONE,
36 GTK_MYSHADOW_THIN,
37 GTK_MYSHADOW_IN,
38 GTK_MYSHADOW_OUT
39 } GtkMyShadowType;
40
41 typedef struct _GtkPizzaChild GtkPizzaChild;
42 typedef struct _GtkPizza GtkPizza;
43 typedef struct _GtkPizzaClass GtkPizzaClass;
44
45 struct _GtkPizzaChild
46 {
47 GtkWidget *widget;
48 gint x;
49 gint y;
50 gint width;
51 gint height;
52 };
53
54 struct _GtkPizza
55 {
56 GtkContainer container;
57 GList *children;
58 GtkMyShadowType shadow_type;
59
60 guint width;
61 guint height;
62
63 guint xoffset;
64 guint yoffset;
65
66 GdkWindow *bin_window;
67
68 GdkVisibilityState visibility;
69 gulong configure_serial;
70 gint scroll_x;
71 gint scroll_y;
72
73 gboolean clear_on_draw;
74 gboolean use_filter;
75 gboolean external_expose;
76 };
77
78 struct _GtkPizzaClass
79 {
80 GtkContainerClass parent_class;
81
82 void (*set_scroll_adjustments) (GtkPizza *pizza,
83 GtkAdjustment *hadjustment,
84 GtkAdjustment *vadjustment);
85 };
86
87 WXDLLIMPEXP_CORE
88 GtkType gtk_pizza_get_type (void);
89 WXDLLIMPEXP_CORE
90 GtkWidget* gtk_pizza_new (void);
91
92 WXDLLIMPEXP_CORE
93 void gtk_pizza_set_shadow_type (GtkPizza *pizza,
94 GtkMyShadowType type);
95
96 WXDLLIMPEXP_CORE
97 void gtk_pizza_set_clear (GtkPizza *pizza,
98 gboolean clear);
99
100 WXDLLIMPEXP_CORE
101 void gtk_pizza_set_filter (GtkPizza *pizza,
102 gboolean use);
103
104 WXDLLIMPEXP_CORE
105 void gtk_pizza_set_external (GtkPizza *pizza,
106 gboolean expose);
107
108 WXDLLIMPEXP_CORE
109 void gtk_pizza_scroll (GtkPizza *pizza,
110 gint dx,
111 gint dy);
112
113 WXDLLIMPEXP_CORE
114 gint gtk_pizza_child_resized (GtkPizza *pizza,
115 GtkWidget *widget);
116
117 WXDLLIMPEXP_CORE
118 void gtk_pizza_put (GtkPizza *pizza,
119 GtkWidget *widget,
120 gint x,
121 gint y,
122 gint width,
123 gint height);
124
125 WXDLLIMPEXP_CORE
126 void gtk_pizza_move (GtkPizza *pizza,
127 GtkWidget *widget,
128 gint x,
129 gint y );
130
131 WXDLLIMPEXP_CORE
132 void gtk_pizza_resize (GtkPizza *pizza,
133 GtkWidget *widget,
134 gint width,
135 gint height );
136
137 WXDLLIMPEXP_CORE
138 void gtk_pizza_set_size (GtkPizza *pizza,
139 GtkWidget *widget,
140 gint x,
141 gint y,
142 gint width,
143 gint height);
144 #ifdef __cplusplus
145 }
146 #endif /* __cplusplus */
147
148
149 #endif /* __GTK_PIZZA_H__ */