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); }
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 } } } } }