Revision 974
Draws circle and square.
branches/simulator/projects/simulator/simulator/gui/gtk_environment_view.c | ||
---|---|---|
85 | 85 |
|
86 | 86 |
static void gtk_environment_view_init(GtkEnvironmentView* view) |
87 | 87 |
{ |
88 |
view->buf = NULL; |
|
89 | 88 |
view->topLeftX = -2.0; |
90 | 89 |
view->topLeftY = -1.3; |
91 | 90 |
view->scale = 2.0 / 800.0; |
92 | 91 |
view->width = -1; |
93 | 92 |
view->height = -1; |
94 | 93 |
|
94 |
GTK_WIDGET_SET_FLAGS(&(view->widget), GTK_DOUBLE_BUFFERED); |
|
95 |
|
|
95 | 96 |
view->mouseDown = 0; |
96 | 97 |
} |
97 | 98 |
|
... | ... | |
102 | 103 |
g_return_if_fail(GTK_IS_ENVIRONMENT_VIEW(object)); |
103 | 104 |
|
104 | 105 |
view = GTK_ENVIRONMENT_VIEW(object); |
105 |
|
|
106 |
if (view->buf != NULL) |
|
107 |
{ |
|
108 |
free(view->buf); |
|
109 |
view->buf = NULL; |
|
110 |
view->width = -1; |
|
111 |
view->height = -1; |
|
112 |
} |
|
113 | 106 |
|
114 | 107 |
if (GTK_OBJECT_CLASS(parent_class)->destroy) |
115 | 108 |
(* GTK_OBJECT_CLASS(parent_class)->destroy) (object); |
... | ... | |
169 | 162 |
view = GTK_ENVIRONMENT_VIEW(widget); |
170 | 163 |
widget->allocation = *a; |
171 | 164 |
|
172 |
// resize buffer |
|
173 |
if (view->buf != NULL) |
|
174 |
{ |
|
175 |
free(view->buf); |
|
176 |
view->buf = NULL; |
|
177 |
view->width = -1; |
|
178 |
view->height = -1; |
|
179 |
} |
|
180 |
view->buf = (guchar*)malloc(a->width * a->height * 3 * sizeof(guchar)); |
|
181 |
memset(view->buf, 0, a->width * a->height * 3 * sizeof(guchar)); |
|
182 | 165 |
view->width = a->width; |
183 | 166 |
view->height = a->height; |
184 | 167 |
|
... | ... | |
200 | 183 |
|
201 | 184 |
view = GTK_ENVIRONMENT_VIEW(widget); |
202 | 185 |
|
203 |
gdk_draw_rgb_image(widget->window, widget->style->fg_gc[
|
|
204 |
GTK_WIDGET_STATE(widget)], event->area.x,
|
|
205 |
event->area.y, event->area.width, |
|
206 |
event->area.height, GDK_RGB_DITHER_NONE,
|
|
207 |
view->buf + 3 * (event->area.y * view->width + event->area.x),
|
|
208 |
3 * view->width);
|
|
209 |
|
|
186 |
gdk_draw_rectangle(widget->window, widget->style->fg_gc[
|
|
187 |
GTK_WIDGET_STATE(widget)], 0, 100, 100, 100, 100);
|
|
188 |
|
|
189 |
gdk_draw_arc(widget->window,
|
|
190 |
widget->style->fg_gc[GTK_WIDGET_STATE(widget)], FALSE, 0, 0,
|
|
191 |
100, 100, 0, 360*64);
|
|
192 |
|
|
210 | 193 |
return FALSE; |
211 | 194 |
} |
212 | 195 |
|
branches/simulator/projects/simulator/simulator/gui/gtk_environment_view.h | ||
---|---|---|
23 | 23 |
|
24 | 24 |
int width; |
25 | 25 |
int height; |
26 |
guchar* buf; |
|
27 | 26 |
double topLeftX; |
28 | 27 |
double topLeftY; |
29 | 28 |
double scale; |
Also available in: Unified diff