Project

General

Profile

Revision 974

Draws circle and square.

View differences:

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

  

Also available in: Unified diff