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