Exemplo n.º 1
0
static gboolean
view_configure (GLDrawingArea *widget, GdkEventConfigure *event, View *view)
{
  view_resize (view);
  view_render (view);
  return TRUE;
}
Exemplo n.º 2
0
static void ui_window_resize(UiCursesWin *win, int width, int height) {
	win->width = width;
	win->height = height;
	if (win->winstatus)
		wresize(win->winstatus, 1, width);
	wresize(win->win, win->winstatus ? height - 1 : height, width - win->sidebar_width);
	if (win->winside)
		wresize(win->winside, height-1, win->sidebar_width);
	view_resize(win->view, width - win->sidebar_width, win->winstatus ? height - 1 : height);
	view_update(win->view);
}
Exemplo n.º 3
0
static void ui_window_resize(UiCursesWin *win, int width, int height) {
    debug("ui-win-resize[%s]: %dx%d\n", win->file->name ? win->file->name : "noname", width, height);
    win->width = width;
    win->height = height;
    if (win->winstatus)
        wresize(win->winstatus, 1, width);
    wresize(win->win, win->winstatus ? height - 1 : height, width - win->sidebar_width);
    if (win->winside)
        wresize(win->winside, height-1, win->sidebar_width);
    view_resize(win->view, width - win->sidebar_width, win->winstatus ? height - 1 : height);
}
Exemplo n.º 4
0
} END_TEST

/**
 * \brief Test call to generic resize() method.
 *
 * The test supplies new dimensions to the generic view and test if they were
 * updated correctly. The function shall correctly update the the dimensions.
 */
START_TEST(test_generic_resize) {

	GdkRectangle rect = { 50, 100, 150, 200 };

	fail_if( OK != view_resize(view_generic, rect), NULL);

	fail_if( rect.x != view_generic->region.x, NULL);
	fail_if( rect.y != view_generic->region.y, NULL);
	fail_if( rect.width != view_generic->region.width, NULL);
	fail_if( rect.height != view_generic->region.height, NULL);
} END_TEST
Exemplo n.º 5
0
static void
on_gl_context_realize (GLDrawingArea *context, View *view)
{
  view->camera->azimuth = 45;
  view->camera->elevation = 25;
  view->camera->distance = 900;
  view->camera->position[2] = 4;

  gl_drawing_area_make_current (context);

  g_signal_connect (G_OBJECT (context), "configure-event", G_CALLBACK (view_configure), (gpointer) view);
  g_signal_connect (G_OBJECT (context), "expose-event", G_CALLBACK (view_expose), (gpointer) view);
  g_signal_connect (G_OBJECT (context), "scroll-event", G_CALLBACK (view_scroll), (gpointer) view);
  g_signal_connect (G_OBJECT (context), "button-press-event", G_CALLBACK (view_click), (gpointer) view);
  g_signal_connect (G_OBJECT (context), "motion-notify-event", G_CALLBACK (view_motion), (gpointer) view);

  init_lighting (view);
  scene_add_view (view->scene, (gpointer) view);
  view_resize (view);
  view_render (view);
}
Exemplo n.º 6
0
/**
 * Iterate over all child nodes of the top container node and resize views of
 * nodes that has changed dimensions.
 *
 * The window parameter contains pointer to GdkWindow where the whole view is
 * located and it is used for forcing redraw of leaves that do not have view in
 * them.
 *
 * \param node pointer to container node
 * \param window pointer to the window associated with view
 * \return OK on success
 */
RCode view_cv_resize_update(ContainerNode *node, GdkWindow *window) {
	ASSERT( NULL != node );

	TRACE_MESSAGE(VIEW, TL_DEBUG, "Container node resize update (node=%p, type=%d, "
			"[x=%d,y=%d,width=%d,height=%d])",
			node, node->type,
			node->region.x, node->region.y, node->region.width, node->region.height
		);

	// return early, there is no node that would need redrawing
	if ( FALSE == container_node_get_flag(node) ) {
		return OK;
	}

	if ( CONTAINER_LEAF == node->type ) {
		ViewGeneric *view_ptr = container_node_get_view(node);

		if ( NULL != view_ptr ) {
			container_node_reset_flag(node);
			return view_resize(view_ptr, node->region );

		} else if ( NULL != window ) {
			// this allows redraw by container itself when there is no view
			gdk_window_invalidate_rect(window, &(node->region), FALSE);
		}

	} else {
		guint i;

		for (i = 0; i < node->data.node.size; i++ ) {
			RCode result = view_cv_resize_update( container_node_get_child(node, i), window );

			if ( FAIL == result ) {
				ERROR_LOG();
			}
		}
	}

	return OK;
}
Exemplo n.º 7
0
static void 
subcolumnview_refresh( vObject *vobject )
{
	Subcolumnview *sview = SUBCOLUMNVIEW( vobject );
	Subcolumn *scol = SUBCOLUMN( VOBJECT( sview )->iobject );
	int model_rows = icontainer_get_n_children( ICONTAINER( scol ) );
	int old_nvis = sview->nvis;
	gboolean editable = scol->top_col->ws->mode != WORKSPACE_MODE_NOEDIT;

#ifdef DEBUG
	printf( "subcolumnview_refresh\n" );
#endif /*DEBUG*/

	if( sview->rows != model_rows ) {
		sview->rows = model_rows;
		if( sview->rows )
			gtk_table_resize( GTK_TABLE( sview->table ), 
				sview->rows, 4 );

#ifdef DEBUG
		printf( "subcolumnview_refresh: resize to %d rows\n",
			sview->rows );
#endif /*DEBUG*/
	}

	/* Top-level subcolumns look different in no-edit mode.
	 */
	if( scol->is_top && editable ) {
		gtk_alignment_set_padding( GTK_ALIGNMENT( sview->align ), 
			0, 0, 0, 0 );
		gtk_table_set_row_spacings( GTK_TABLE( sview->table ), 0 );
		gtk_table_set_col_spacings( GTK_TABLE( sview->table ), 0 );
	}
	else if( scol->is_top && !editable ) {
		gtk_alignment_set_padding( GTK_ALIGNMENT( sview->align ), 
			5, 5, 5, 5 );
		gtk_table_set_row_spacings( GTK_TABLE( sview->table ), 5 );
		gtk_table_set_col_spacings( GTK_TABLE( sview->table ), 5 );
	}

	/* Nested subcols: we just change the left indent.
	 */
	if( !scol->is_top && editable ) {
		gtk_alignment_set_padding( GTK_ALIGNMENT( sview->align ), 
			0, 0, 0, 0 );
	}
	else if( !scol->is_top && !editable ) {
		gtk_alignment_set_padding( GTK_ALIGNMENT( sview->align ), 
			0, 0, 15, 0 );
	}

	sview->nvis = 0;
	(void) view_map( VIEW( sview ), 
		(view_map_fn) subcolumnview_refresh_sub, sview, NULL );

	if( sview->nvis != old_nvis ) {
		view_resize( VIEW( sview ) );
		iobject_changed( IOBJECT( scol->top_col ) );
	}

	VOBJECT_CLASS( parent_class )->refresh( vobject );
}