All pastes #972500 Raw Edit

Miscellany

public c v1 · immutable
·published 2008-04-05 13:57 UTC
rendered paste body
void View_AddView( mg2_view_object *view, gint location_x, gint location_y ){  GtkWidget *window;  GtkGLArea *glarea;                          /* Attribute list for gtkglarea widget. Specifies a     list of Boolean attributes and enum/integer     attribute/value pairs. The last attribute must be     GDK_GL_NONE. See glXChooseVisual manpage for further     explanation.  */  gint attrlist[] = {    GDK_GL_RGBA,    GDK_GL_DOUBLEBUFFER,    GDK_GL_DEPTH_SIZE,1,    GDK_GL_NONE  };  if( share_view == NULL ) printf("share_view is NULL\n");  view->glarea = glarea =	GTK_GL_AREA( gtk_gl_area_share_new(attrlist, share_view) );  view_list = g_slist_append( view_list, view );//gtk_object_set_data(GTK_OBJECT(glarea), "mg2_view_object", view);  gtk_widget_set_events( GTK_WIDGET(glarea),                        GDK_EXPOSURE_MASK|                        GDK_BUTTON_PRESS_MASK|			GDK_BUTTON_RELEASE_MASK|			GDK_POINTER_MOTION_MASK|			GDK_POINTER_MOTION_HINT_MASK );    /* Connect signal handlers */  /* Redraw image when exposed. */  gtk_signal_connect(GTK_OBJECT(glarea), "expose_event",                     GTK_SIGNAL_FUNC(DrawExpose), view );  /* When window is resized viewport needs to be resized also. */  gtk_signal_connect(GTK_OBJECT(glarea), "configure_event",                     GTK_SIGNAL_FUNC(Reshape), view );  /* Do initialization when widget has been realized. */  gtk_signal_connect(GTK_OBJECT(glarea), "realize",                     GTK_SIGNAL_FUNC(InitView), (gpointer) view);  gtk_signal_connect(GTK_OBJECT(glarea), "button_press_event",                        GTK_SIGNAL_FUNC(ButtonPress), 			view);  gtk_signal_connect(GTK_OBJECT(glarea), "button_release_event",                        GTK_SIGNAL_FUNC(ButtonRelease), 			view);  gtk_signal_connect(GTK_OBJECT(glarea), "motion_notify_event",			GTK_SIGNAL_FUNC(Motion), NULL);   /* set minimum size */  if( view->width != 0 )	{ gtk_widget_set_usize( GTK_WIDGET(glarea), view->width,				view->height); }  /* Create new top level window. */  window = gtk_window_new( GTK_WINDOW_TOPLEVEL);  switch(view->type)	{	case MG2_PERSPECTIVE_VIEW:		if( !view->camera->is_view_only )			{ gtk_window_set_title(GTK_WINDOW(window),				"mg^2: Camera"); }		else	{ gtk_window_set_title(GTK_WINDOW(window),				"mg^2: Perspective"); }		break;	case MG2_TOP_VIEW:		gtk_window_set_title(GTK_WINDOW(window), "mg^2: Top");		break;	case MG2_FRONT_VIEW:		gtk_window_set_title(GTK_WINDOW(window), "mg^2: Front");		break;	case MG2_RIGHT_VIEW:		gtk_window_set_title(GTK_WINDOW(window), "mg^2: Right");		break;	} // end switch(view->type)  gtk_container_border_width(GTK_CONTAINER(window), 0);  gtk_signal_connect(GTK_OBJECT(window), "delete_event",                     GTK_SIGNAL_FUNC(CloseViewWin), view);//gtk_signal_connect(GTK_OBJECT(window), "destroy",//                     GTK_SIGNAL_FUNC(CloseViewWin), view);                          gtk_quit_add_destroy(1, GTK_OBJECT(window));  /* put glarea into window and show it all */  gtk_container_add(GTK_CONTAINER(window),GTK_WIDGET(glarea));  gtk_widget_show(GTK_WIDGET(glarea));  gtk_widget_show(GTK_WIDGET(window));  if(location_x != -1) gtk_widget_set_uposition( window, location_x, 						location_y);} // end ViewWin()