コード例 #1
0
ファイル: GUIBuilder.cpp プロジェクト: KjeFre/tinia
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";
        }
    }
}
コード例 #2
0
ファイル: ofApp.cpp プロジェクト: DrMelon/Honours2016
//--------------------------------------------------------------
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);
}
コード例 #3
0
ファイル: gvObjectList.C プロジェクト: 99731/GoTools
//===========================================================================
void gvObjectList::observedChanged()
//===========================================================================
{
   if (data_.numObjects() != numobj_)
      buildGUI();
   setCorrectButtonStates();
}
コード例 #4
0
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 ();
}
コード例 #5
0
ファイル: DeviceEditDialog.cpp プロジェクト: Sciss/i-score
DeviceEditDialog::DeviceEditDialog(
        const Device::DynamicProtocolList& pl,
        QWidget* parent)
    : QDialog(parent),
      m_protocolList{pl},
      m_protocolWidget{nullptr},
      m_index(-1)
{
    setModal(true);
    buildGUI();
}
コード例 #6
0
ファイル: window.cpp プロジェクト: scientist-st/QtZeroConf
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();
}
コード例 #7
0
ファイル: DeviceEditDialog.cpp プロジェクト: OSSIA/Score
DeviceEditDialog::DeviceEditDialog(
    const Device::ProtocolFactoryList& pl,
    QWidget* parent)
    : QDialog(parent)
    , m_protocolList{pl}
    , m_protocolWidget{nullptr}
    , m_index(-1)
{
  setModal(true);
  buildGUI();
  setMinimumWidth(400);
}
コード例 #8
0
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();
}
コード例 #9
0
ファイル: GUIBuilder.cpp プロジェクト: KjeFre/tinia
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;
}
コード例 #10
0
ファイル: gvObjectList.C プロジェクト: 99731/GoTools
//===========================================================================
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();
}
コード例 #11
0
ファイル: GUIBuilder.cpp プロジェクト: KjeFre/tinia
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";
           }
       }
    }
}
コード例 #12
0
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();
}
コード例 #13
0
ファイル: GUIBuilder.cpp プロジェクト: KjeFre/tinia
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";
    }
}
コード例 #14
0
ファイル: GUIBuilder.cpp プロジェクト: KjeFre/tinia
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;
}
コード例 #15
0
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;
}
コード例 #16
0
MIDIProtocolSettingsWidget::MIDIProtocolSettingsWidget(QWidget* parent)
    : ProtocolSettingsWidget(parent)
{
    buildGUI();
}
コード例 #17
0
ファイル: ofApp.cpp プロジェクト: DrMelon/Honours2016
//--------------------------------------------------------------
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.");
	
}