]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk1/win_gtk.h
Prevent seg fault for older GTK+
[wxWidgets.git] / include / wx / gtk1 / win_gtk.h
1 /* ///////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk1/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 #include <gtk/gtkfeatures.h>
23
24 #include "wx/dlimpexp.h"
25
26 #define GTK_PIZZA(obj) GTK_CHECK_CAST (obj, gtk_pizza_get_type (), GtkPizza)
27 #define GTK_PIZZA_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_pizza_get_type (), GtkPizzaClass)
28 #define GTK_IS_PIZZA(obj) GTK_CHECK_TYPE (obj, gtk_pizza_get_type ())
29
30 /* Shadow types */
31 typedef enum
32 {
33 GTK_MYSHADOW_NONE,
34 GTK_MYSHADOW_THIN,
35 GTK_MYSHADOW_IN,
36 GTK_MYSHADOW_OUT
37 } GtkMyShadowType;
38
39 typedef struct _GtkPizzaChild GtkPizzaChild;
40 typedef struct _GtkPizza GtkPizza;
41 typedef struct _GtkPizzaClass GtkPizzaClass;
42
43 struct _GtkPizzaChild
44 {
45 GtkWidget *widget;
46 gint x;
47 gint y;
48 gint width;
49 gint height;
50 };
51
52 struct _GtkPizza
53 {
54 GtkContainer container;
55 GList *children;
56 GtkMyShadowType shadow_type;
57
58 guint width;
59 guint height;
60
61 guint xoffset;
62 guint yoffset;
63
64 GdkWindow *bin_window;
65
66 GdkVisibilityState visibility;
67 gulong configure_serial;
68 gint scroll_x;
69 gint scroll_y;
70
71 gboolean clear_on_draw;
72 gboolean use_filter;
73 gboolean external_expose;
74 };
75
76 struct _GtkPizzaClass
77 {
78 GtkContainerClass parent_class;
79
80 void (*set_scroll_adjustments) (GtkPizza *pizza,
81 GtkAdjustment *hadjustment,
82 GtkAdjustment *vadjustment);
83 };
84
85 WXDLLIMPEXP_CORE
86 GtkType gtk_pizza_get_type (void);
87 WXDLLIMPEXP_CORE
88 GtkWidget* gtk_pizza_new (void);
89
90 WXDLLIMPEXP_CORE
91 void gtk_pizza_set_shadow_type (GtkPizza *pizza,
92 GtkMyShadowType type);
93
94 WXDLLIMPEXP_CORE
95 void gtk_pizza_set_clear (GtkPizza *pizza,
96 gboolean clear);
97
98 WXDLLIMPEXP_CORE
99 void gtk_pizza_set_filter (GtkPizza *pizza,
100 gboolean use);
101
102 WXDLLIMPEXP_CORE
103 void gtk_pizza_set_external (GtkPizza *pizza,
104 gboolean expose);
105
106 WXDLLIMPEXP_CORE
107 void gtk_pizza_scroll (GtkPizza *pizza,
108 gint dx,
109 gint dy);
110
111 WXDLLIMPEXP_CORE
112 gint gtk_pizza_child_resized (GtkPizza *pizza,
113 GtkWidget *widget);
114
115 WXDLLIMPEXP_CORE
116 void gtk_pizza_put (GtkPizza *pizza,
117 GtkWidget *widget,
118 gint x,
119 gint y,
120 gint width,
121 gint height);
122
123 WXDLLIMPEXP_CORE
124 void gtk_pizza_move (GtkPizza *pizza,
125 GtkWidget *widget,
126 gint x,
127 gint y );
128
129 WXDLLIMPEXP_CORE
130 void gtk_pizza_resize (GtkPizza *pizza,
131 GtkWidget *widget,
132 gint width,
133 gint height );
134
135 WXDLLIMPEXP_CORE
136 void gtk_pizza_set_size (GtkPizza *pizza,
137 GtkWidget *widget,
138 gint x,
139 gint y,
140 gint width,
141 gint height);
142 #ifdef __cplusplus
143 }
144 #endif /* __cplusplus */
145
146
147 #endif /* __GTK_PIZZA_H__ */