void GUIBuilder::addChildren( model::gui::Container1D<model::gui::Element>* container, QWidget* widget, QBoxLayout* layout ) { if( !container->padContents() ) { layout->setContentsMargins( 0, 0, 0, 0 ); } for( size_t i=0; i<container->children(); i++ ) { model::gui::Element* child = container->child( i ); if( child == NULL ) { continue; } QLayoutItem* layout_item = buildLayoutItem( child ); if( layout_item != NULL ) { layout->addItem( layout_item ); continue; } QWidget* child_widget = buildGUI( child, widget ); if( child_widget != NULL ) { if( child->type() == model::gui::CANVAS ) { layout->addWidget( child_widget, 1 ); } else { layout->addWidget( child_widget ); } } else { std::cerr << __FILE__ << '@' << __LINE__<< ": ERROR: got nullptr.\n"; } } }
//-------------------------------------------------------------- void ofApp::update() { updateStopwatch.StartTiming(); float deltaTime = ofGetLastFrameTime(); // Update GUI if (GuiNeedsRebuilt) { buildGUI(); } auto frametimeGUI = theGUI->getTextInput("Frame-Time", "Diagnostics"); frametimeGUI->setText(std::to_string(deltaTime) + " s"); auto frametimePlot = theGUI->getValuePlotter("FT", "Diagnostics"); frametimePlot->setValue(deltaTime); //frametimePlot->setSpeed(0.1f); theGUI->update(); // Update camera offset for terrain. theTerrain->SetOffset(theCamera->getPosition()); // Set terrain variables. if (currentTerrainType == TERRAIN_TYPE::TERRAIN_GRID_MC) { ((TerrainGridMarchingCubes*)theTerrain)->expensiveNormals = GridExpensiveNormals; //((TerrainGridMarchingCubes*)theTerrain)->updatePhysicsMesh = physicsNeedsRebuilding; ((TerrainGridMarchingCubes*)theTerrain)->thePhysicsWorld = thePhysicsWorld; ((TerrainGridMarchingCubes*)theTerrain)->thePhysicsMesh = thePhysicsMesh; } else if (currentTerrainType == TERRAIN_TYPE::TERRAIN_RAY_DIST) { ((TerrainDistanceRaymarch*)theTerrain)->numIterations = RayTerrainIterations; ((TerrainDistanceRaymarch*)theTerrain)->maximumDepth = RayTerrainDrawDistance; ((TerrainDistanceRaymarch*)theTerrain)->RaymarchResX = RayTerrainResolutionX; ((TerrainDistanceRaymarch*)theTerrain)->RaymarchResY = RayTerrainResolutionY; } // Update terrain theTerrain->Update(); // Update physics if (PhysicsEnabled) { thePhysicsWorld->update(0.016f * (PhysicsTimescale*2), 0); // every half-second check for resting bodies if (ofGetElapsedTimeMillis() % 60 == 0) { CheckBodiesAtRest(); } } gnpUpdatePerformance.Column1.push_back(gnpUpdatePerformance.Column1.size()); gnpUpdatePerformance.Column2.push_back(updateStopwatch.StopTiming("Update Completed.")); gnpLastFrameTime.Column1.push_back(gnpLastFrameTime.Column1.size()); gnpLastFrameTime.Column2.push_back(ofGetLastFrameTime() * 1000.0f); }
//=========================================================================== void gvObjectList::observedChanged() //=========================================================================== { if (data_.numObjects() != numobj_) buildGUI(); setCorrectButtonStates(); }
void GeometryPlotterApp::setup() { CameraPersp cam; cam.setEyePoint (Vec3f (5.0f, 10.0f, 10.0f)); cam.setCenterOfInterestPoint (Vec3f (0.0f, 2.5f, 0.0f)); cam.setPerspective (60.0f, getWindowAspectRatio (), 0.01f, 1000.0f); m_mayaCam.setCurrentCam (cam); buildGUI (); }
DeviceEditDialog::DeviceEditDialog( const Device::DynamicProtocolList& pl, QWidget* parent) : QDialog(parent), m_protocolList{pl}, m_protocolWidget{nullptr}, m_index(-1) { setModal(true); buildGUI(); }
mainWindow::mainWindow() { publishEnabled = 0; buildGUI(); connect(&zeroConf, SIGNAL(serviceAdded(QZeroConfService *)), this, SLOT(addService(QZeroConfService *))); connect(&zeroConf, SIGNAL(serviceRemoved(QZeroConfService *)), this, SLOT(removeService(QZeroConfService *))); zeroConf.startBrowser("_qtzeroconf_test._tcp"); startPublish(); }
DeviceEditDialog::DeviceEditDialog( const Device::ProtocolFactoryList& pl, QWidget* parent) : QDialog(parent) , m_protocolList{pl} , m_protocolWidget{nullptr} , m_index(-1) { setModal(true); buildGUI(); setMinimumWidth(400); }
OSCQueryProtocolSettingsWidget::OSCQueryProtocolSettingsWidget( QWidget* parent) : ProtocolSettingsWidget(parent) { #ifdef USE_ZEROCONF m_zeroconfBrowser = new ZeroconfBrowser{"_coppa._tcp", qApp->activeWindow()}; connect(m_zeroconfBrowser, &ZeroconfBrowser::sessionSelected, this, &OSCQueryProtocolSettingsWidget::on_sessionSelected); m_browserAct = m_zeroconfBrowser->makeAction(); #endif buildGUI(); }
QWidget* GUIBuilder::addPopupButton( model::gui::PopupButton* root, QWidget* parent ) { QString suffix( " " ); suffix.append( QChar( 0x02ec ) ); QPushButton* widget = new QPushButton( parent ); widget->setCheckable( true ); new impl::StringController( widget, m_model, root->key(),root->showValue(), suffix ); QWidget* foo = buildGUI( root->child(), widget ); if( foo != NULL ) { foo->setObjectName( "popup" ); foo->setStyleSheet( "QWidget#popup { border: 1px solid black }"); new tinia::qtcontroller::impl::PopupEventFilter( foo, widget ); } return widget; }
//=========================================================================== gvObjectList::gvObjectList(gvData& data, QWidget* parent, const char* name, Qt::WFlags f) //=========================================================================== // : QWidget(parent, name, f), : QWidget(parent, f), data_(data), numobj_(0), bg_(0), lay1_(0), lay2_(0), scroll_area_(0) { data.registerObserver(this); buildGUI(); setCorrectButtonStates(); }
void GUIBuilder::addChildren( model::gui::Container2D<model::gui::Element>* container, QWidget* widget, QGridLayout* layout ) { if( !container->padContents() ) { layout->setContentsMargins( 0, 0, 0, 0 ); } for(size_t row = 0; row < container->height(); row++) { for(size_t col = 0; col < container->width(); col++) { model::gui::Element* child = container->child(row, col); if( child == NULL ) { continue; } QLayoutItem* layout_item = buildLayoutItem( child ); if( layout_item != NULL ) { layout->addItem( layout_item, row, col ); continue; } QWidget* child_widget = buildGUI( child, widget ); if( child_widget != NULL ) { if( child->type() == model::gui::CANVAS ) { layout->setColumnStretch( col, 1 ); layout->setRowStretch( row, 1 ); } else if( child->type() == model::gui::GRID ) { child_widget->layout()->setContentsMargins(0, 0, 0, 0); } else if( child->type() == model::gui::VERTICAL_LAYOUT ) { child_widget->layout()->setContentsMargins(0, 0, 0, 0); } else if( child->type() == model::gui::HORIZONTAL_LAYOUT ) { child_widget->layout()->setContentsMargins(0, 0, 0, 0); } layout->addWidget( child_widget, row, col ); } else { std::cerr << __FILE__ << '@' << __LINE__<< ": ERROR: got nullptr.\n"; } } } }
MainForm::MainForm(QWidget *parent):QWidget(parent) { // Icon für die Anwendung festlegen QIcon Icon(":/img/gnuboy.png"); qApp->setWindowIcon(Icon); this->setWindowTitle(trUtf8("KBoy")); // Objektmember initialisieren Spieleliste=new CGBSpielListModel(); Spieleliste->fromXml(QDir::homePath()+"/.kboy/gamelist.xml"); // Wenn Datei nicht geladen werden kann, bleibt die Liste leer Gnuboy=new QProcess(this); // Grafische Oberfläche aufbauen initWidgets(); buildGUI(); configureWidgets(); // Signal-/Slot-Objekte verknüpfen connectObjects(); }
void GUIBuilder::addChildren( model::gui::Container0D<model::gui::Element>* container, QWidget* widget, QBoxLayout* layout ) { if( !container->padContents() ) { layout->setContentsMargins( 0, 0, 0, 0 ); } model::gui::Element* child = container->child(); QWidget* child_widget = buildGUI( child, widget ); if( child_widget != NULL ) { if( child->type() == model::gui::CANVAS ) { layout->addWidget( child_widget, 1 ); } else { layout->addWidget( child_widget ); } } else { std::cerr << __FILE__ << '@' << __LINE__<< ": ERROR: got nullptr.\n"; } }
QWidget* GUIBuilder::addTabLayout(model::gui::TabLayout *root, QWidget *parent) { QTabWidget* tabWidget = new QTabWidget(parent); for( size_t i=0; i<root->children(); i++ ) { model::gui::Tab* tab = root->child( i ); if( tab != NULL ) { QWidget* child = buildGUI( tab->child(), tabWidget ); if( child != NULL ) { tabWidget->addTab( child, QString(prettyName(tab->key(), m_model).c_str()) ); } else { std::cerr << __FILE__ << '@' << __LINE__<< ": ERROR: got nullptr.\n"; } } else { std::cerr << __FILE__ << '@' << __LINE__<< ": ERROR: child is not tab.\n"; } } tabWidget->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); return tabWidget; }
int main(int argc, char **argv) { char *configfilename = "/etc/mpc2x.conf"; config = config_file(configfilename); bool quit = false; // Init SDL SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO | SDL_INIT_TIMER); // Prepare screen for GP2X screen = SDL_SetVideoMode( WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_DEPTH, SDL_SWSURFACE); if(!screen) { printf("SDL_SetVideoMode screen not initialised: %s\n",SDL_GetError()); shutdown(); } // Set window title, which we don't need on gp2x SDL_WM_SetCaption(WINDOW_TITLE, 0 ); // Disable mouse cursus SDL_ShowCursor(SDL_DISABLE); // initialise the font stuff TTF_Init(); // load the ttf font to be used char *fontpath = (char*) malloc(100); strcpy(fontpath,config->skin_path); // assume the font is in the skin path, should do this other way! strcat(fontpath,config->font_path); font = TTF_OpenFont(fontpath, 16); free(fontpath); // Initialize the joystick SDL_JoystickOpen(0); songname = "........Not connected or no song playing at the moment..........."; scrollpos = 0; mpdConnect(); buildGUI(); updateGUI(); #define SONGTITLEINTERVAL 10 int interval = 0; while (!quit) { SDL_Delay(100); interval++; if (interval == SONGTITLEINTERVAL) { mpdGetSongTitle(); interval = 0; } updateGUI(); SDL_Event event; while( SDL_PollEvent( &event ) ) { switch( event.type ) { case SDL_JOYBUTTONUP: drawText(screen, "[ |< ]", 20, 200, 255, 255, 255); drawText(screen, "[>/||]", 80, 200, 255, 255, 255); drawText(screen, "[ >| ]", 140, 200, 255, 255, 255); SDL_Flip(screen); break; case SDL_JOYBUTTONDOWN: switch( event.jbutton.button ) { case GP2X_BUTTON_VOLUP : // volume up mpd_sendSetvolCommand(conn, status->volume + 5); mpd_finishCommand(conn); break; case GP2X_BUTTON_VOLDOWN : // volume down mpd_sendSetvolCommand(conn, status->volume - 5); mpd_finishCommand(conn); break; case GP2X_BUTTON_A : // play/pause if(status->state == MPD_STATUS_STATE_PLAY) { mpd_sendPauseCommand(conn,1); } else if(status->state == MPD_STATUS_STATE_PAUSE || status->state == MPD_STATUS_STATE_STOP) { mpd_sendPauseCommand(conn,0); } mpd_finishCommand(conn); drawText(screen, "[>/||]", 80, 200, 255, 255, 0); SDL_Flip(screen); break; case GP2X_BUTTON_R : // next track mpd_sendNextCommand(conn); mpd_finishCommand(conn); drawText(screen, "[ >| ]", 140, 200, 255, 255, 0); SDL_Flip(screen); break; case GP2X_BUTTON_L : // prev track mpd_sendPrevCommand(conn); mpd_finishCommand(conn); drawText(screen, "[ |< ]", 20, 200, 255, 255, 0); SDL_Flip(screen); break; case GP2X_BUTTON_Y : // shuffle toggle if(status->random == 0) { mpd_sendRandomCommand(conn,1); } else { mpd_sendRandomCommand(conn,0); } mpd_finishCommand(conn); break; case GP2X_BUTTON_B : // repeat toggle if(status->repeat == 0) { mpd_sendRepeatCommand(conn,1); } else { mpd_sendRepeatCommand(conn,0); } mpd_finishCommand(conn); break; case GP2X_BUTTON_START : // quit quit=true; break; case GP2X_BUTTON_SELECT : // cycle other screens break; case GP2X_BUTTON_RIGHT : // forward in song mpd_sendSeekCommand(conn, status->song, status->elapsedTime + 5); mpd_finishCommand(conn); break; case GP2X_BUTTON_LEFT : // backward in song mpd_sendSeekCommand(conn, status->song, status->elapsedTime - 5); mpd_finishCommand(conn); break; default: break; } break; case SDL_KEYDOWN: switch( event.key.keysym.sym ) { case SDLK_KP_PLUS : // volume up mpd_sendSetvolCommand(conn, status->volume + 5); mpd_finishCommand(conn); break; case SDLK_KP_MINUS : // volume down mpd_sendSetvolCommand(conn, status->volume - 5); mpd_finishCommand(conn); break; case SDLK_SPACE : // play/pause if(status->state == MPD_STATUS_STATE_PLAY) { mpd_sendPauseCommand(conn,1); } else if(status->state == MPD_STATUS_STATE_PAUSE || status->state == MPD_STATUS_STATE_STOP) { mpd_sendPauseCommand(conn,0); } mpd_finishCommand(conn); drawText(screen, "[>/||]", 80, 200, 255, 255, 0); SDL_Flip(screen); break; case SDLK_RIGHT : // next track mpd_sendNextCommand(conn); mpd_finishCommand(conn); drawText(screen, "[ >| ]", 140, 200, 255, 255, 0); SDL_Flip(screen); break; case SDLK_LEFT : // prev track mpd_sendPrevCommand(conn); mpd_finishCommand(conn); drawText(screen, "[ |< ]", 20, 200, 255, 255, 0); SDL_Flip(screen); break; case SDLK_s : // shuffle toggle if(status->random == 0) { mpd_sendRandomCommand(conn,1); } else { mpd_sendRandomCommand(conn,0); } mpd_finishCommand(conn); break; case SDLK_r : // repeat toggle if(status->repeat == 0) { mpd_sendRepeatCommand(conn,1); } else { mpd_sendRepeatCommand(conn,0); } mpd_finishCommand(conn); break; case SDLK_ESCAPE : // quit quit=true; break; case SDLK_TAB : // cycle other screens break; case SDLK_UP : // forward in song mpd_sendSeekCommand(conn, status->song, status->elapsedTime + 5); mpd_finishCommand(conn); break; case SDLK_DOWN : // backward in song mpd_sendSeekCommand(conn, status->song, status->elapsedTime - 5); mpd_finishCommand(conn); break; default: break; } break; } } } shutdown(); return 0; }
MIDIProtocolSettingsWidget::MIDIProtocolSettingsWidget(QWidget* parent) : ProtocolSettingsWidget(parent) { buildGUI(); }
//-------------------------------------------------------------- void ofApp::setup() { // Instrumentation updateStopwatch.filename = "main_update.log"; drawStopwatch.filename = "draw_update.log"; updateStopwatch.StartTiming(); // Set maximum framerate. ofSetFrameRate(60); ofSetBackgroundColor(ofColor(182, 227, 242)); ofSetVerticalSync(true); ofDisableArbTex(); HelpToggle = true; // Set up z-buffer. ofEnableDepthTest(); // Set up GUI theGUI = new ofxDatGui(ofxDatGuiAnchor::TOP_RIGHT); theGUI->setTheme(new ofxDatGuiThemeCharcoal()); // Disable the GUI's own automatic rendering, as we're doing shader passes and things. theGUI->setAutoDraw(false); // Create the camera, using OpenFrameworks' First Person Camera class. This gives us a simple control system. theCamera = new ofxFirstPersonCamera(); theCamera->setNearClip(0.01f); theCamera->setFarClip(1500.f); theCamera->setFov(59); // Create help image helpImage = new ofImage("help.png"); // Create lighting shader lightShader = new ofShader(); lightShader->load("data/shaders/directional_light.vert", "data/shaders/directional_light.frag"); // Scalar value for shader to determine if we should use smoothed normals or not on the grid terrain. GridExpensiveNormals = 0.0f; // Make the terrain, starting off with using the GridMarchingCubes implementation. theTerrain = new TerrainGridMarchingCubes(); ((TerrainGridMarchingCubes*)theTerrain)->Rebuild(GridTerrainResolution, GridTerrainResolution, GridTerrainResolution, GridTerrainSize); currentTerrainType = TERRAIN_TYPE::TERRAIN_GRID_MC; // Make the physics world. thePhysicsWorld = new ofxBulletWorldRigid(); thePhysicsWorld->setup(); // Set up gravity thePhysicsWorld->setGravity(ofVec3f(0, -9.81f, 0)); thePhysicsWorld->enableGrabbing(); thePhysicsWorld->setCamera(theCamera); // Create "dummy" element in the csgOperations buffer. This is necessary for it to work properly as a texture buffer for the terrains. CSGAddSphere(ofVec3f(0,0,0), 0); // Set up analytics gnpUpdatePerformance.Column1Name = "Frame No."; gnpUpdatePerformance.Column2Name = "Frame-Time (ms)"; gnpUpdatePerformance.XAxisName = "Frame No."; gnpUpdatePerformance.YAxisName = "Frame-Time (ms)"; gnpUpdatePerformance.DataColumns = 2; gnpUpdatePerformance.HexColour = "aa0000"; gnpUpdatePerformance.LineThickness = 1; gnpUpdatePerformance.DotSize = 1; gnpUpdatePerformance.DotType = 7; gnpUpdatePerformance.GraphStyle = 1; gnpDrawPerformance.Column1Name = "Frame No."; gnpDrawPerformance.Column2Name = "Frame-Time (ms)"; gnpDrawPerformance.XAxisName = "Frame No."; gnpDrawPerformance.YAxisName = "Frame-Time (ms)"; gnpDrawPerformance.DataColumns = 2; gnpDrawPerformance.HexColour = "0000aa"; gnpDrawPerformance.LineThickness = 1; gnpDrawPerformance.DotSize = 1; gnpDrawPerformance.DotType = 7; gnpDrawPerformance.GraphStyle = 1; gnpLastFrameTime.Column1Name = "Frame No."; gnpLastFrameTime.Column2Name = "Frame-Time (ms)"; gnpLastFrameTime.XAxisName = "Frame No."; gnpLastFrameTime.YAxisName = "Frame-Time (ms)"; gnpLastFrameTime.DataColumns = 2; gnpLastFrameTime.HexColour = "00aa00"; gnpLastFrameTime.LineThickness = 1; gnpLastFrameTime.DotSize = 1; gnpLastFrameTime.DotType = 7; gnpLastFrameTime.GraphStyle = 1; // Create mesh template for physics boxes. testBoxMesh = new ofBoxPrimitive(10, 10, 10, 1, 1, 1); // Create a blank mesh for the physics terrain ofMesh singleTriangle; singleTriangle.addVertex(ofVec3f(0, 0, 0)); singleTriangle.addVertex(ofVec3f(1, 0, 0)); singleTriangle.addVertex(ofVec3f(1, 1, 0)); singleTriangle.addIndex(0); singleTriangle.addIndex(1); singleTriangle.addIndex(2); thePhysicsMesh = CreatePhysicsMesh(thePhysicsWorld, &singleTriangle); ((TerrainGridMarchingCubes*)theTerrain)->updatePhysicsMesh = true; // Assign CSG operations buffer theTerrain->csgOperations = csgOperations; // Add elements to GUI. buildGUI(); // Stop timing updateStopwatch.StopTiming("Startup Complete."); }