예제 #1
0
FindBar::FindBar() : UIElement() {
	barBg = new ScreenShape(ScreenShape::SHAPE_RECT, 30,30);
	barBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	barBg->setColorInt(255, 222, 0, 255);
	addChild(barBg);
	this->height = 30;
	
	ScreenLabel *findLabel = new ScreenLabel("Find:", 16);
	addChild(findLabel);
	findLabel->setColor(0.0, 0.0, 0.0, 0.3);
	findLabel->setPosition(10,4);

	ScreenLabel *replaceLabel = new ScreenLabel("Replace:", 16);
	addChild(replaceLabel);
	replaceLabel->setColor(0.0, 0.0, 0.0, 0.3);
	replaceLabel->setPosition(200,4);

	processInputEvents = true;
	
	findInput = new UITextInput(false, 120, 12);
	addChild(findInput);
	findInput->setPosition(60, 4);

	replaceInput = new UITextInput(false, 120, 12);
	addChild(replaceInput);
	replaceInput->setPosition(280, 4);
	
	replaceAllButton = new UIImageButton("Images/replaceAll.png");
	addChild(replaceAllButton);
	replaceAllButton->setPosition(420, 5);
	
	closeButton = new UIImageButton("Images/barClose.png");
	addChild(closeButton);
}
예제 #2
0
ExportProjectWindow::ExportProjectWindow() : UIWindow(L"Publish Project", 400, 300) {

    closeOnEscape = true;

    ScreenLabel *label = new ScreenLabel("LOCATION", 22, "section", Label::ANTIALIAS_FULL);
    addChild(label);
    label->color.a = 0.4;
    label->setPosition(padding, 50);

    projectLocationInput = new UITextInput(false, 420-(padding*2.0), 12);
    addChild(projectLocationInput);
    projectLocationInput->setPosition(padding, 80);


    locationSelectButton = new UIButton(L"Choose...", 100);
    locationSelectButton->addEventListener(this, UIEvent::CLICK_EVENT);
    addChild(locationSelectButton);
    locationSelectButton->setPosition(padding, projectLocationInput->getPosition().y+projectLocationInput->getHeight()+5);


    label = new ScreenLabel("PLATFORMS", 22, "section", Label::ANTIALIAS_FULL);
    addChild(label);
    label->color.a = 0.4;
    label->setPosition(padding, 150);

    macCheckBox = new UICheckBox("MacOS X (Intel 64-bit)", false);
    addChild(macCheckBox);
    macCheckBox->setPosition(padding, 185);

    winCheckBox = new UICheckBox("Microsoft Windows (32-bit)", false);
    addChild(winCheckBox);
    winCheckBox->setPosition(padding, 205);

    linCheckBox = new UICheckBox("Linux (Intel 32-bit)", false);
    addChild(linCheckBox);
    linCheckBox->setPosition(padding, 225);


    cancelButton = new UIButton(L"Cancel", 100);
    cancelButton->addEventListener(this, UIEvent::CLICK_EVENT);
    addChild(cancelButton);
    cancelButton->setPosition(400-75-padding-100-10, 300-15);


    okButton = new UIButton(L"Publish", 100);
    okButton->addEventListener(this, UIEvent::CLICK_EVENT);
    addChild(okButton);
    okButton->setPosition(400-75-padding, 300-15);

    projectLocationInput->setText(CoreServices::getInstance()->getCore()->getUserHomeDirectory()+"/Documents/Polycode");

}
PolycodeProjectBrowser::PolycodeProjectBrowser() : UIElement() {

	headerBg = new ScreenShape(ScreenShape::SHAPE_RECT,10,10);
	addChild(headerBg);
	headerBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	headerBg->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderBgColor"));
	
	ScreenLabel *label = new ScreenLabel("PROJECT BROWSER", 18, "section", Label::ANTIALIAS_FULL);
	label->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderFontColor"));
	
	addChild(label);
	label->setPosition(10, 3);


	treeContainer = new UITreeContainer("boxIcon.png", L"Projects", 200, 555);
	treeContainer->getRootNode()->toggleCollapsed();
	treeContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
	treeContainer->addEventListener(this, InputEvent::EVENT_MOUSEDOWN);
	treeContainer->setPosition(0, 30);
	
	BrowserUserData *data = new BrowserUserData();
	data->type = 0;
	data->parentProject = NULL;
	treeContainer->getRootNode()->setUserData((void*) data)	;
	
	addChild(treeContainer);		
	selectedData = NULL;
}
예제 #4
0
ConsoleWindow::ConsoleWindow() : UIElement() {


	labelBg = new ScreenShape(ScreenShape::SHAPE_RECT, 20,30);
	labelBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	labelBg->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderBgColor"));
	addChild(labelBg);
	
	ScreenLabel *label = new ScreenLabel("CONSOLE", 18, "section");
	label->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderFontColor"));
	addChild(label);
	label->setPosition(35,3);

	debugTextInput = new UITextInput(true, 100, 100);
	consoleTextInput = new UITextInput(false, 100, 100);
	addChild(consoleTextInput);	
	addChild(debugTextInput);	
	
	clearButton = new UIImageButton("Images/clear_buffer_icon.png");
	addChild(clearButton);
	
	hideConsoleButton = new UIImageButton("Images/console_hide_button.png");
	addChild(hideConsoleButton);
	hideConsoleButton->setPosition(7,5);
	
}
예제 #5
0
bool CurrentApp::Update() {
	double elapsed = core->getElapsed();

	if(player.levelPos == level->getLevelSize() - 1)
	{
		timer.stop();
		
		int timeBonusPoints = 0;
		if(timer.getTimeInSeconds() <= 106.0) timeBonusPoints += 1000;
		else if(timer.getTimeInSeconds() <= 111.0) timeBonusPoints += 500;
		else if(timer.getTimeInSeconds() <= 116.0) timeBonusPoints += 250;
		
		//winner label
		ScreenLabel * winner = new ScreenLabel("Congratulations!", 50);
		winner->setPosition(120,140);
		hud->addChild(winner);
		//time bonus
		ScreenLabel * timebonus = new ScreenLabel("Time Bonus: ", 16);
		timebonus->setPosition(220,200);
		hud->addChild(timebonus);
		ScreenLabel * timebonusDisp = new ScreenLabel(String::IntToString(timeBonusPoints), 16);
		timebonusDisp->setPosition(330,200);
		hud->addChild(timebonusDisp);		
		//coin bonus
		ScreenLabel * coinbonus = new ScreenLabel("Coin Bonus: ", 16);
		coinbonus->setPosition(220,220);
		hud->addChild(coinbonus);
		ScreenLabel * coinbonusDisp = new ScreenLabel(String::IntToString(player.coins * 100), 16);
		coinbonusDisp->setPosition(330,220);
		hud->addChild(coinbonusDisp);		
		//total score
		ScreenLabel * score = new ScreenLabel("Total Score: ", 16);
		score->setPosition(220,240);
		hud->addChild(score);
		ScreenLabel * scoreDisp = new ScreenLabel(String::IntToString(player.coins*100 + timeBonusPoints), 16);
		scoreDisp->setPosition(330,240);
		hud->addChild(scoreDisp);
				
		Vector3 winPos = level->getLevel(level->getLevelSize() - 1)->light->getPosition();
		Vector3 winDir = winPos - player.getPosition();
		winDir.Normalize();
		player.obj->Translate(winDir);
	}
	else
	{
		level->Update(elapsed, player);
		timer.Update(elapsed);
		player.Update(elapsed, keyboard);
		coins_hud->setText("Coins: "+ String::IntToString(player.coins));
		time_hud->setText("Time: " + timer.getTime());
	}
    return core->updateAndRender();
}
예제 #6
0
BackTraceWindow::BackTraceWindow() : UIElement() {

	Config *conf = CoreServices::getInstance()->getConfig();	
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	int fontSize = conf->getNumericValue("Polycode", "uiDefaultFontSize");		

	labelBg = new ScreenShape(ScreenShape::SHAPE_RECT, 20,30);
	labelBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	labelBg->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderBgColor"));
	addChild(labelBg);
	
	ScreenLabel *label = new ScreenLabel("CRASH STACK", 18, "section");
	label->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderFontColor"));
	addChild(label);
	label->setPosition(5,3);
	
}	
예제 #7
0
SettingsWindow::SettingsWindow() : UIWindow(L"Settings", SETTINGS_WINDOW_WIDTH, SETTINGS_WINDOW_HEIGHT) {

	closeOnEscape = true;


	ScreenLabel *label = new ScreenLabel("MISC", 22, "section", Label::ANTIALIAS_FULL);
	addChild(label);
	label->color.a = 0.4;
	label->setPosition(padding, 50);


	useExternalTextEditorBox = new UICheckBox("Use external text editor", false);
	addChild(useExternalTextEditorBox); 
	useExternalTextEditorBox->setPosition(padding, 85);

	#define BUTTON_WIDTH 80
	#define BUTTON_PADDING 10
	#define EDITOR_BROWSE_POS 110
	#define TEXTBOX_HEIGHT 12

	externalTextEditorCommand = new UITextInput(false, SETTINGS_WINDOW_WIDTH - (padding*2 + BUTTON_WIDTH + BUTTON_PADDING/2), TEXTBOX_HEIGHT);
	addChild(externalTextEditorCommand);
	externalTextEditorCommand->setPosition(padding, EDITOR_BROWSE_POS);

	browseButton = new UIButton("Browse...", BUTTON_WIDTH);
	browseButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(browseButton);
	browseButton->setPosition(SETTINGS_WINDOW_WIDTH - (2*padding + BUTTON_WIDTH/2), EDITOR_BROWSE_POS);
	

	cancelButton = new UIButton("Cancel", BUTTON_WIDTH);
	cancelButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(cancelButton);
	cancelButton->setPosition(SETTINGS_WINDOW_WIDTH - (2*padding + BUTTON_WIDTH*1.5 + BUTTON_PADDING), SETTINGS_WINDOW_HEIGHT - padding);

	okButton = new UIButton("OK", BUTTON_WIDTH);
	okButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(okButton);
	okButton->setPosition(SETTINGS_WINDOW_WIDTH - (2*padding + BUTTON_WIDTH/2), SETTINGS_WINDOW_HEIGHT - padding);
}
예제 #8
0
PolycodeFrame::PolycodeFrame() : ScreenEntity() {

    globalFrame = this;
    processInputEvents = true;
    willHideModal = false;
    showingConsole = true;
    modalChild = NULL;

    welcomeEntity = new ScreenEntity();
    welcomeEntity->processInputEvents = true;
    addChild(welcomeEntity);
    welcomeImage = new ScreenImage("Images/welcome.png");
    welcomeEntity->addChild(welcomeImage);
    welcomeEntity->snapToPixels = true;

    newProjectButton = new UIButton("Create A New Project!", 220);
    newProjectButton->setPosition(230,80);
    newProjectButton->addEventListener(this, UIEvent::CLICK_EVENT);

    examplesButton = new UIButton("Browse Example Projects!", 220);
    examplesButton->setPosition(460,80);
    examplesButton->addEventListener(this, UIEvent::CLICK_EVENT);

    welcomeEntity->addChild(newProjectButton);
    welcomeEntity->addChild(examplesButton);

    mainSizer = new UIHSizer(100,100,200,true);
    mainSizer->setPosition(0, 45);
    addChild(mainSizer);

    consoleSize = 200;

    consoleSizer = new UIVSizer(100,100,200, false);
    mainSizer->addRightChild(consoleSizer);

    projectBrowser = new PolycodeProjectBrowser();
    mainSizer->addLeftChild(projectBrowser);

    editorHolder = new EditorHolder();
    consoleSizer->addTopChild(editorHolder);

    console = new PolycodeConsole();
    consoleSizer->addBottomChild(console);

    projectBrowser->treeContainer->getRootNode()->addEventListener(this, UITreeEvent::DRAG_START_EVENT);

    topBarBg = new ScreenShape(ScreenShape::SHAPE_RECT, 2,2);
    topBarBg->setColorInt(21, 18, 17, 255);
    topBarBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
    topBarBg->processInputEvents = true;
    topBarBg->blockMouseInput = true;
    addChild(topBarBg);

    logo = new ScreenImage("Images/barlogo.png");
    addChild(logo);


    playButton = new UIImageButton("Images/play_button.png");
    addChild(playButton);
    playButton->setPosition(10,4);

    stopButton = new UIImageButton("Images/stop_button.png");
    addChild(stopButton);
    stopButton->setPosition(10,4);

    currentProjectTitle = new ScreenLabel("", 32, "section");
    addChild(currentProjectTitle);
    currentProjectTitle->color.a = 0.4;
    currentProjectTitle->setPosition(70, 0);

    currentFileSelector = new UIComboBox(globalMenu, 300);
    currentFileSelector->addEventListener(this, UIEvent::CHANGE_EVENT);

    addChild(currentFileSelector);


    resizer = new ScreenImage("Images/corner_resize.png");
    addChild(resizer);
    resizer->setColor(0,0,0,0.4);

    modalBlocker = new ScreenShape(ScreenShape::SHAPE_RECT, 10,10);
    modalBlocker->setColor(0,0,0,0.4);
    modalBlocker->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
    modalBlocker->enabled = false;
    modalBlocker->blockMouseInput = true;
    modalBlocker->processInputEvents = true;
    addChild(modalBlocker);

    assetBrowser = new AssetBrowser();
    assetBrowser->visible = false;

    newProjectWindow = new NewProjectWindow();
    newProjectWindow->visible = false;

    exampleBrowserWindow = new ExampleBrowserWindow();
    exampleBrowserWindow->visible = false;

    newFileWindow = new NewFileWindow();
    newFileWindow->visible = false;

    exportProjectWindow = new ExportProjectWindow();
    exportProjectWindow->visible = false;

    textInputPopup = new TextInputPopup();
    textInputPopup->visible = false;

    yesNoPopup = new YesNoPopup();
    yesNoPopup->visible = false;

    yesNoCancelPopup = new YesNoCancelPopup();
    yesNoCancelPopup->visible = false;


    aboutWindow = new UIWindow("", 800, 440);
    aboutWindow->closeOnEscape = true;
    ScreenImage *aboutImage = new ScreenImage("Images/about.png");
    aboutWindow->addChild(aboutImage);
    aboutImage->setPosition(20, 40);
    aboutWindow->visible = false;
    aboutOKButton = new UIButton("OK", 100);
    aboutWindow->addChild(aboutOKButton);
    aboutOKButton->setPosition(700, 420);
    aboutOKButton->addEventListener(this, UIEvent::CLICK_EVENT);

    ScreenLabel *versionLabel = new ScreenLabel("version 0.8.2", 12, "mono");
    aboutWindow->addChild(versionLabel);
    versionLabel->setPosition(20, 430);
    versionLabel->color.a = 0.4;

    isDragging  = false;
    dragLabel = new ScreenLabel("NONE", 11, "sans");
    dragLabel->setPosition(0,-15);

    dragEntity = new ScreenEntity();
    dragEntity->addChild(dragLabel);
    addChild(dragEntity);
    dragEntity->visible = false;


    CoreServices::getInstance()->getCore()->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEUP);
    CoreServices::getInstance()->getCore()->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEMOVE);

    curveEditor = new CurveEditor();
    addChild(curveEditor);
    curveEditor->setPosition(200,100);
    curveEditor->visible = false;
    curveEditor->enabled = false;


    globalColorPicker = new UIColorPicker();
    globalColorPicker->setPosition(300,300);
    addChild(globalColorPicker);

    modalRoot = new UIElement();
    addChild(modalRoot);

    fileDialogBlocker = new ScreenShape(ScreenShape::SHAPE_RECT, 100, 100);
    fileDialogBlocker->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
    addChild(fileDialogBlocker);
    fileDialogBlocker->setColor(0.0, 0.0, 0.0, 0.5);
    fileDialogBlocker->processInputEvents = true;
    fileDialogBlocker->blockMouseInput = true;
    fileDialogBlocker->visible = false;
    fileDialogBlocker->enabled = false;

    fileBrowserRoot = new UIElement();
    addChild(fileBrowserRoot);

    fileDialog = NULL;
}
예제 #9
0
UIColorPicker::UIColorPicker() : UIWindow(L"", 300, 240) {
	closeOnEscape = true;
	
//	topPadding
	Config *conf = CoreServices::getInstance()->getConfig();	
		
		
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	int fontSize = conf->getNumericValue("Polycode", "uiDefaultFontSize");

	String mainBgImage = conf->getStringValue("Polycode", "uiColorPickerMainBg");		
	String mainFrameImage = conf->getStringValue("Polycode", "uiColorPickerMainFrame");
	String hueFrameImage = conf->getStringValue("Polycode", "uiColorPickerHueFrame");
	String hueSelectorImage = conf->getStringValue("Polycode", "uiColorPickerHueSelector");
	String mainSelectorImage = conf->getStringValue("Polycode", "uiColorPickerMainSelector");

	mainBg = new ScreenImage(mainBgImage);
	mainBg->setPosition(padding, topPadding+padding);
	addChild(mainBg);

	mainFrame = new ScreenImage(mainFrameImage);
	mainFrame->setPosition(padding, topPadding+padding);
	
	alphaSlider = new UIHSlider(0, 1.0, mainFrame->getWidth());
	alphaSlider->setPosition(padding, mainFrame->getHeight() + mainFrame->getPosition().y + 13);
	addChild(alphaSlider);
	alphaSlider->addEventListener(this, UIEvent::CHANGE_EVENT);
	
	mainColorRect = new ScreenShape(ScreenShape::SHAPE_RECT, mainFrame->getWidth(), mainFrame->getHeight());
	mainColorRect->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	mainColorRect->setPosition(padding+1, topPadding+padding+1);
	addChild(mainColorRect);
	addChild(mainFrame);

	hueFrame = new ScreenImage(hueFrameImage);
	hueFrame->setPosition(mainFrame->getPosition().x + mainFrame->getWidth()+10, topPadding+padding);
	addChild(hueFrame);
	
	hueSelector = new ScreenImage(hueSelectorImage);
	hueSelector->setPositionMode(ScreenEntity::POSITION_CENTER);
	hueSelector->setPosition(hueFrame->getPosition().x + (hueFrame->getWidth()/2.0), hueFrame->getPosition().y);
	addChild(hueSelector);	

	hueSelector->setDragLimits(Polycode::Rectangle(hueSelector->getPosition().x,hueSelector->getPosition().y,0,hueFrame->getHeight()));
				
	mainSelector = new ScreenImage(mainSelectorImage);
	mainSelector->setPositionMode(ScreenEntity::POSITION_CENTER);	
	mainSelector->setPosition(mainFrame->getPosition());
	addChild(mainSelector);	
	
	mainColorRect->getMesh()->useVertexColors = true;
	
	mainColorRect->addEventListener(this, InputEvent::EVENT_MOUSEDOWN);
	mainColorRect->addEventListener(this, InputEvent::EVENT_MOUSEUP);
	mainColorRect->addEventListener(this, InputEvent::EVENT_MOUSEUP_OUTSIDE);
	mainColorRect->processInputEvents = true;
	
	
	hueFrame->addEventListener(this, InputEvent::EVENT_MOUSEDOWN);
	hueFrame->addEventListener(this, InputEvent::EVENT_MOUSEUP);
	hueFrame->addEventListener(this, InputEvent::EVENT_MOUSEUP_OUTSIDE);
	hueFrame->processInputEvents = true;	
	
	ScreenLabel *label = new ScreenLabel(L"R:", fontSize, fontName);
	label->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 15, topPadding+padding + 3);
	addChild(label);
	
	rTextInput = new UITextInput(false, 40, 12);
	rTextInput->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 30, topPadding+padding);
	addChild(rTextInput);
	rTextInput->addEventListener(this, UIEvent::CHANGE_EVENT);

	label = new ScreenLabel(L"G:", fontSize, fontName);
	label->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 15, topPadding+padding + 33);
	addChild(label);
	
	gTextInput = new UITextInput(false, 40, 12);
	gTextInput->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 30, topPadding+padding + 30);
	addChild(gTextInput);
	gTextInput->addEventListener(this, UIEvent::CHANGE_EVENT);
	
	label = new ScreenLabel(L"B:", fontSize, fontName);
	label->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 15, topPadding+padding + 63);
	addChild(label);
	
	bTextInput = new UITextInput(false, 40, 12);
	bTextInput->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 30, topPadding+padding + 60);
	addChild(bTextInput);
	bTextInput->addEventListener(this, UIEvent::CHANGE_EVENT);
	
	label = new ScreenLabel(L"A:", fontSize, fontName);
	label->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 15, topPadding+padding + 93);
	addChild(label);
	
	aTextInput = new UITextInput(false, 40, 12);
	aTextInput->setPosition(hueFrame->getPosition().x+hueFrame->getWidth() + 30, topPadding+padding + 90);
	addChild(aTextInput);
	aTextInput->addEventListener(this, UIEvent::CHANGE_EVENT);
	
	setHue(0.0);
	setSaturationAndValue(0.0, 0.0);
	
	rTextInput->setNumberOnly(true);
	gTextInput->setNumberOnly(true);
	bTextInput->setNumberOnly(true);
	aTextInput->setNumberOnly(true);
	
	lastHueSelectorPosition = 0;
	
	mainSelector->setDragLimits(Polycode::Rectangle(mainColorRect->getPosition().x,mainColorRect->getPosition().y,mainColorRect->getWidth(), mainColorRect->getHeight()));
				
	colorAlpha = 1.0;
	
	visible = false;
	enabled = false;
	
}
예제 #10
0
PolycodeProjectEditor::PolycodeProjectEditor(PolycodeProjectManager *projectManager) : PolycodeEditor(true){

	this->projectManager = projectManager;


	Config *conf = CoreServices::getInstance()->getConfig();	
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	int fontSize = conf->getNumericValue("Polycode", "uiDefaultFontSize");	
	Number padding = conf->getNumericValue("Polycode", "uiWindowSkinPadding");	
		

	headerBg = new ScreenShape(ScreenShape::SHAPE_RECT,10,10);
	addChild(headerBg);
	headerBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	headerBg->setColor(0.1, 0.1, 0.1, 1.0);
	
	ScreenLabel *label = new ScreenLabel("PROJECT SETTINGS", 22, "section", Label::ANTIALIAS_FULL);
	label->color.a = 0.4;
	addChild(label);
	label->setPosition(10, 0);



	moduleSettingsWindow = new UIElement();
	moduleSettingsWindow->setPosition(350,10);
	addChild(moduleSettingsWindow);
	
	
	Number lastYPos = 40;

	label = new ScreenLabel("PROJECT MODULES", 22, "section", Label::ANTIALIAS_FULL);
	label->color.a = 0.4;
	moduleSettingsWindow->addChild(label);
	label->setPosition(0, lastYPos);

	lastYPos += 40;
	
	String polycodeBasePath = CoreServices::getInstance()->getCore()->getDefaultWorkingDirectory();
		
	std::vector<OSFileEntry> moduleFolders = OSBasics::parseFolder(polycodeBasePath+"/Standalone/Modules", false);
	for(int i=0; i < moduleFolders.size(); i++) {
		OSFileEntry entry = moduleFolders[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UICheckBox *moduleCheckBox = new UICheckBox(entry.name, false);
			moduleCheckBox->setPosition(0, lastYPos);
			lastYPos += moduleCheckBox->getHeight() + 5;
			moduleSettingsWindow->addChild(moduleCheckBox);
			moduleCheckboxes.push_back(moduleCheckBox);
		}
	}
	
	lastYPos += 20;

	label = new ScreenLabel("PROJECT FONTS", 22, "section", Label::ANTIALIAS_FULL);
	label->color.a = 0.4;
	moduleSettingsWindow->addChild(label);
	label->setPosition(0, lastYPos);
	
	lastYPos += 30;
	
	fontEntryBase = new UIElement();
	moduleSettingsWindow->addChild(fontEntryBase);	
	fontEntryBase->setPosition(0, lastYPos);
			
	addFontButton = new UIButton("Add Font", 100);
	fontEntryBase->addChild(addFontButton);
	addFontButton->addEventListener(this, UIEvent::CLICK_EVENT);

	mainSettingsWindow = new UIElement();
	mainSettingsWindow->setPosition(0,10);
	addChild(mainSettingsWindow);
	
	ScreenLabel *label2 = new ScreenLabel(L"DEFAULT VIDEO OPTIONS", 22, "section", Label::ANTIALIAS_FULL);	
	label2->setColor(1.0, 1.0, 1.0, 0.4);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, 40);		

		
	label2 = new ScreenLabel(L"Width:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, 80);		
	
	defaultWidthInput = new UITextInput(false, 60, 12);	
	mainSettingsWindow->addChild(defaultWidthInput);
	defaultWidthInput->setPosition(label2->getPosition().x, label2->getPosition().y+18);
	defaultWidthInput->setNumberOnly(true);

	label2 = new ScreenLabel(L"Height:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding + 80, 80);		
	
	defaultHeightInput = new UITextInput(false, 60, 12);	
	mainSettingsWindow->addChild(defaultHeightInput);
	defaultHeightInput->setPosition(label2->getPosition().x, label2->getPosition().y+18);
	defaultHeightInput->setNumberOnly(true);
	
	label2 = new ScreenLabel(L"Anti-aliasing:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding + 160, 80);		
	
	aaLevelComboBox = new UIComboBox(globalMenu, 120);		
	aaLevelComboBox->addComboItem("No AA");
	aaLevelComboBox->addComboItem("2x MSAA");
	aaLevelComboBox->addComboItem("4x MSAA");
	aaLevelComboBox->addComboItem("6x MSAA");			
	aaLevelComboBox->setPosition(label2->getPosition().x, label2->getPosition().y+18);

	label2 = new ScreenLabel(L"Anisotropic filtering:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, defaultHeightInput->getPosition().y+30);		
	
	afLevelComboBox = new UIComboBox(globalMenu, 250);		
	afLevelComboBox->addComboItem("No Anisotropic Filtering");
	afLevelComboBox->addComboItem("1x Anisotropic Filtering");
	afLevelComboBox->addComboItem("2x Anisotropic Filtering");
	afLevelComboBox->addComboItem("4x Anisotropic Filtering");
	afLevelComboBox->addComboItem("8x Anisotropic Filtering");
	afLevelComboBox->addComboItem("16x Anisotropic Filtering");			
	afLevelComboBox->setPosition(label2->getPosition().x, label2->getPosition().y+18);

	label2 = new ScreenLabel(L"Framerate:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, afLevelComboBox->getPosition().y+30);		
	
	framerateInput = new UITextInput(false, 60, 12);	
	mainSettingsWindow->addChild(framerateInput);
	framerateInput->setPosition(label2->getPosition().x, label2->getPosition().y+18);
	framerateInput->setNumberOnly(true);

	vSyncCheckBox = new UICheckBox("V-Sync", false);
	vSyncCheckBox->setPosition(padding, framerateInput->getPosition().y+framerateInput->getHeight()+10);
	mainSettingsWindow->addChild(vSyncCheckBox);
	
	label2 = new ScreenLabel(L"STARTUP OPTIONS", 22, "section", Label::ANTIALIAS_FULL);	
	label2->setColor(1.0, 1.0, 1.0, 0.4);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, vSyncCheckBox->getPosition().y+vSyncCheckBox->getHeight()+20);		
	
	
	label2 = new ScreenLabel(L"Entry point file:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, vSyncCheckBox->getPosition().y+70);		
	
	entryPointInput = new UITextInput(false, 200, 12);	
	mainSettingsWindow->addChild(entryPointInput);
	entryPointInput->setPosition(label2->getPosition().x, label2->getPosition().y+18);


	mainSettingsWindow->addChild(afLevelComboBox);			
	mainSettingsWindow->addChild(aaLevelComboBox);		


	label2 = new ScreenLabel(L"Background color:", fontSize, fontName, Label::ANTIALIAS_FULL);
	mainSettingsWindow->addChild(label2);
	label2->setPosition(padding, entryPointInput->getPosition().y+entryPointInput->getHeight()+10);		


	bgColorBox = new UIColorBox(globalColorPicker, Color(1.0, 0.5, 0.0, 0.9), 30,30);
	bgColorBox->setPosition(label2->getPosition().x, label2->getPosition().y+18);
	mainSettingsWindow->addChild(bgColorBox);

}
예제 #11
0
PolycodeSpriteEditor::PolycodeSpriteEditor() : PolycodeEditor(true){
	headerBg = new ScreenShape(ScreenShape::SHAPE_RECT,10,10);
	addChild(headerBg);
	headerBg->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
	headerBg->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderBgColor"));
	
	initialLoad = false;

	propList = new PropList("SPRITE EDITOR");
	addChild(propList);
	propList->setPosition(0, 0);

	PropSheet *baseProps = new PropSheet("IMAGE OPTIONS", "");
	propList->addPropSheet(baseProps);
	
	textureProp = new TextureProp("Base image");
	baseProps->addProp(textureProp);

	widthProp = new NumberProp("Frame width");
	widthProp->set(32);
	baseProps->addProp(widthProp);	

	heightProp = new NumberProp("Frame height");
	heightProp->set(32);
	baseProps->addProp(heightProp);	
	
	widthProp->addEventListener(this, Event::CHANGE_EVENT);	
	textureProp->addEventListener(this, Event::CHANGE_EVENT);
	heightProp->addEventListener(this, Event::CHANGE_EVENT);		
			
	baseProps->propHeight = 180;
	
	ScreenLabel *label = new ScreenLabel("PREVIEW", 18, "section", Label::ANTIALIAS_FULL);
	label->color.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiHeaderFontColor"));
	addChild(label);
	label->setPosition(390, 36);
			
				
	PropSheet *animationProps = new PropSheet("ANIMATIONS", "");
	propList->addPropSheet(animationProps);

	ScreenLabel *animHelpLabel = new ScreenLabel("Comma separated frames, ranges or repeats (e.g. 1,2,3-7,8x5)", 11);
	animHelpLabel->color.a = 0.4;
	animationProps->addChild(animHelpLabel);
	animHelpLabel->setPosition(5, 40);


	animationProps->propHeight = 230;
	
	animationsAnchor = new UIElement();
	animationProps->contents->addChild(animationsAnchor);
	
	addAnimationButton = new UIButton("Add Animation", 100);
	animationsAnchor->addChild(addAnimationButton);
	addAnimationButton->addEventListener(this, UIEvent::CLICK_EVENT);
	
	propList->updateProps();
	
	zoomBox = new UIComboBox(globalMenu, 100);
	addChild(zoomBox);
	zoomBox->setPosition(490, 37);
	zoomBox->addEventListener(this, UIEvent::CHANGE_EVENT);
	
	zoomBox->addComboItem("No Zoom");
	zoomBox->addComboItem("Zoom 2x");
	zoomBox->addComboItem("Zoom 4x");
	zoomBox->addComboItem("Zoom 8x");
	zoomBox->addComboItem("Zoom 16x");
}