void
ManualSegmentationControlPanel
::CreateWidgets()
{
	QVBoxLayout *verticalLayout;
	QPushButton *button;

	verticalLayout = new QVBoxLayout();
	
	QToolBar *tbar = new QToolBar();
	_createSplineButton = tbar->addAction( "New\nSpline" );
	_createSplineButton->setCheckable( true );
	QObject::connect( _createSplineButton, SIGNAL( toggled( bool ) ), _manager, SLOT( SetCreatingState( bool ) ) );

	_editPointsButton = tbar->addAction( "Edit\nPoints" );
	_editPointsButton->setCheckable( true );
	QObject::connect( _editPointsButton, SIGNAL( toggled( bool ) ), _manager, SLOT( SetEditPointsState( bool ) ) );
	
	/*action = tbar->addAction( "Edit\nSegs" );
	action->setCheckable( true );*/

	verticalLayout->addWidget( tbar );
	
	/*stackedWidget = new QStackedWidget();
	page = new QWidget();
	verticalLayoutWidget_2 = new QWidget(page);
	verticalLayout_2 = new QVBoxLayout(verticalLayoutWidget_2);
	stackedWidget->addWidget(page);
	page_2 = new QWidget();
	verticalLayoutWidget_3 = new QWidget(page_2);
	verticalLayout_3 = new QVBoxLayout(verticalLayoutWidget_3);
	stackedWidget->addWidget(page_2);

	verticalLayout->addWidget(stackedWidget);*/

	_deleteCurveButton = new QPushButton( tr( "Delete Curve" ) );
	QObject::connect( _deleteCurveButton, SIGNAL(clicked()), _manager, SLOT( DeleteSelectedCurve()) );
	verticalLayout->addWidget( _deleteCurveButton );

	verticalLayout->addStretch( 3 );

	button = new QPushButton( tr( "Process Results" ) );
	QObject::connect( button, SIGNAL(clicked()), _manager, SLOT( WantsProcessResults() ) );
	verticalLayout->addWidget( button );

	QObject::connect( _manager, SIGNAL(StateUpdated()), this, SLOT( PanelUpdate()) );

	verticalLayout->addStretch( 5 );

	setLayout(verticalLayout);
}
Esempio n. 2
0
void BackendUpdate()
{
	Display * dpy = g_backend._dpy;
	Window root = g_backend._root;

#ifdef USE_PANELS
	PanelUpdateBegin();

	unsigned int nchildren;
	Window *children, dummy;
	int i;
	if (!XQueryTree(dpy, root, &dummy, &dummy, &children, &nchildren))
	{
		PanelUpdateEnd();
		return;
	}

	for (i = 0; i < nchildren; i++)
	{
		PanelUpdate(children[i]);
	}

	if (children)
	{
		XFree ((char *)children);
	}

	PanelUpdateEnd();
#endif

	if (XPending(dpy) > 0)
	{
		int damage = g_backend._damage;
		XEvent event;

		GrabServer grab(dpy);

		while (XPending(dpy) > 0)
		{
			XNextEvent(dpy, &event);
			switch (event.type)
			{
			default:
				if (event.type == damage + XDamageNotify)
				{
					XDamageNotifyEvent *de = (XDamageNotifyEvent *) &event;
					//printf ("damage %08x %d %d %d %d, %d %d %d %d\n", (int)de->drawable,
					//		de->area.x, de->area.y, de->area.width, de->area.height,
					//		de->geometry.x, de->geometry.y, de->geometry.width, de->geometry.height);
#ifndef USE_PANELS
					if (de->drawable == root)
					{
						BackendUpdateTexture(root, g_backend._texture, de->area.x, de->area.y, de->area.width, de->area.height);
					}
#else
					PanelDamage(de->drawable, de->area.x, de->area.y, de->area.width, de->area.height);
#endif
				}
			}
		}
	}
}