void ExampleBrowserWindow::handleEvent(Event *event) {
	if(event->getEventType() == "UIEvent") {
		if(event->getEventCode() == UIEvent::CLICK_EVENT) {
			UITree *node = templateContainer->getRootNode()->getSelectedNode();
			ExampleTemplateUserData *data = (ExampleTemplateUserData*)node->getUserData();
			if(event->getDispatcher() == okButton && data->type == 1) {
				dispatchEvent(new UIEvent(), UIEvent::OK_EVENT);						
			}
			
			if(event->getDispatcher() == cancelButton) {
				dispatchEvent(new UIEvent(), UIEvent::CLOSE_EVENT);				
			}									
		}
	}
	
	if(event->getEventType() == "UITreeEvent" && event->getEventCode() == UITreeEvent::SELECTED_EVENT) {
		if(event->getDispatcher() == templateContainer->getRootNode()) {
			UITreeEvent *treeEvent = (UITreeEvent*) event;
			ExampleTemplateUserData *data = (ExampleTemplateUserData *)treeEvent->selection->getUserData();
			if(data->type == 1)
				templateFolder = data->templateFolder;
		}
	}
	
	UIWindow::handleEvent(event);	
}
Beispiel #2
0
void AssetBrowser::setResourcePools(std::vector<ResourcePool*> pools, int resourceFilter) {
    
    if(this->resourceFilter != resourceFilter) {
        assetList->clearList();
    }
    
    this->resourceFilter = resourceFilter;
    
	templateContainer->getRootNode()->clearTree();
	templateContainer->getRootNode()->setLabelText("Resource pools");

    FolderUserData *userData = (FolderUserData*) templateContainer->getRootNode()->getUserData();
    if(userData) {
        delete userData;
    }
	templateContainer->getRootNode()->setUserData(NULL);
    
    
    for(int i=0; i < pools.size(); i++) {
        ResourcePool *pool = pools[i];
        UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", pool->getName(), (void*)pool);
        newChild->setUserData(pool);
    }
    
}
Beispiel #3
0
void AssetBrowser::setProject(PolycodeProject *project) {

	if(project == currentProject) {
		return;
	}
	
	templateContainer->getRootNode()->clearTree();

	vector<OSFileEntry> templates = OSBasics::parseFolder(project->getRootFolder(), false);	
	templateContainer->getRootNode()->setLabelText(project->getProjectName());
	
	
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", entry.name, NULL);			
			FolderUserData *data = new FolderUserData();
			data->type = 0;
			data->folderPath = entry.fullPath;
			newChild->setUserData(data);			
			newChild->toggleCollapsed();
			parseFolderIntoTree(newChild, entry);
		}
	}	
	
	currentProject = project;
}
void parseOpenNodesIntoEntry(ObjectEntry *entry, UITree *node, bool addNewNode) {

    bool hasOpenNodes = false;
    for(int i=0; i < node->getNumTreeChildren(); i++) {
        UITree *child = node->getTreeChild(i);
        if(!child->isCollapsed()) {
            hasOpenNodes = true;
        }
    }

    if(!hasOpenNodes) {
        return;
    }

    ObjectEntry *childNodes = entry;
    if(addNewNode) {
        childNodes = entry->addChild("child_nodes");
    }

    for(int i=0; i < node->getNumTreeChildren(); i++) {
        UITree *child = node->getTreeChild(i);
        if(!child->isCollapsed()) {
            ObjectEntry *newEntry = childNodes->addChild("open_node");
            newEntry->addChild("name", child->getLabelText());
            parseOpenNodesIntoEntry(newEntry, child, true);
        }
    }
}
Beispiel #5
0
NewFileWindow::NewFileWindow() : UIWindow(L"Create New File", 580, 280) {
	defaultTemplateTree = NULL;
	
	Config *conf = CoreServices::getInstance()->getConfig();	
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	
	closeOnEscape = true;	
	
	templateContainer = new UITreeContainer("boxIcon.png", L"File Templates", 250, 300-topPadding-padding-padding);	
	
	FileTemplateUserData *data = new FileTemplateUserData();
	data->type = 0;
	templateContainer->getRootNode()->setUserData(data);			

	addChild(templateContainer);		
	templateContainer->setPosition(padding,topPadding+padding);	
	templateContainer->getRootNode()->toggleCollapsed();
	
	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::EXECUTED_EVENT);
	
	
	vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"FileTemplates", false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", entry.name, NULL);			
			FileTemplateUserData *data = new FileTemplateUserData();
			data->type = 0;
			newChild->setUserData(data);			
			newChild->toggleCollapsed();
			parseTemplatesIntoTree(newChild, entry);
		}
	}	
	
	UILabel *label2 = new UILabel(L"NEW FILE NAME (NO EXTENSION)", 18, "section", Label::ANTIALIAS_FULL);
	label2->color.a = 1.0;
	label2->getLabel()->setColorForRange(Color(),0, 12);
	label2->getLabel()->setColorForRange(Color(0.6, 0.6, 0.6, 1.0),12, 40);
	label2->setText("NEW FILE NAME (NO EXTENSION)");
		
	addChild(label2);
	label2->setPosition(padding+270, templateContainer->getPosition().y-5);			
	
	fileNameInput = new UITextInput(false, 550-padding-210-padding-padding, 12);	
	addFocusChild(fileNameInput);
	fileNameInput->setPosition(label2->getPosition().x, label2->getPosition().y+30);
	
	
	cancelButton = new UIButton(L"Cancel", 100);
	cancelButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addFocusChild(cancelButton);
	cancelButton->setPosition(600-100-padding-100-10, 265);
			
	okButton = new UIButton(L"Create File", 100);
	okButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addFocusChild(okButton);
	okButton->setPosition(600-100-padding, 265);	
}
Beispiel #6
0
// RECURSIVE HELPER FUNCTIONS
//
// used in KEY_UP tree nav
UITree *UITreeContainer::findLastOpenNode(UITree *tree) {
	if (!tree->hasTreeChildren() || tree->isCollapsed())
		return tree;
	UITree *t = tree->getTreeChild(tree->getNumTreeChildren()-1);
	if (t->isCollapsed() || !t->hasTreeChildren())
		return t;
	else
		return findLastOpenNode(t);
}
UITree *PolycodeProjectBrowser::nodeHasName(UITree *node, String name) {
	for(int i=0; i < node->getNumTreeChildren(); i++) {
		UITree *projectChild = node->getTreeChild(i);
		if(projectChild->getLabelText() == name) {
			return projectChild;
		}
	}
	return NULL;
}
Beispiel #8
0
UITree::~UITree() {
    for(int i=0; i < treeChildren.size(); i++) {
        UITree *child = treeChildren[i];
        removeChild(child);
        child->removeEventListener(this, UITreeEvent::NEED_REFRESH_EVENT);
        child->removeEventListener(this, UITreeEvent::SELECTED_EVENT);
        child->removeEventListener(this, UITreeEvent::EXECUTED_EVENT);
        //treeChildren.erase(treeChildren.begin()+i);
        delete child;
    }
}
void PolycodeProjectBrowser::addProject(PolycodeProject *project) {
	UITree *projectTree = treeContainer->getRootNode()->addTreeChild("projectIcon.png", project->getProjectName(), (void*) project);
	projectTree->toggleCollapsed();
	
	BrowserUserData *data = new BrowserUserData();
	data->type = 3;
	data->parentProject = project;
	projectTree->setUserData((void*) data)	;
	
	parseFolderIntoNode(projectTree, project->getRootFolder(), project);	
}
Beispiel #10
0
void CurveEditor::addCurve(String name, BezierCurve *curve, Color curveColor) {

    UITree *newNode = treeContainer->getRootNode()->addTreeChild("Images/curve_icon.png", name);
    EditCurve *editCurve = new EditCurve(curve, curveColor);
    addChild(editCurve);
    editCurve->setPosition(160, 63);
    curves.push_back(editCurve);

    newNode->setUserData((void*) editCurve);

}
Beispiel #11
0
NewFileWindow::NewFileWindow() : UIWindow(L"Create New File", 480, 280) {
	defaultTemplateTree = NULL;
	
	Config *conf = CoreServices::getInstance()->getConfig();	
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	int fontSize = conf->getNumericValue("Polycode", "uiDefaultFontSize");
	
	closeOnEscape = true;	
	
	templateContainer = new UITreeContainer("boxIcon.png", L"File Templates", 200, 300-topPadding-padding-padding);	
	
	FileTemplateUserData *data = new FileTemplateUserData();
	data->type = 0;
	templateContainer->getRootNode()->setUserData(data);			

	addChild(templateContainer);		
	templateContainer->setPosition(padding,topPadding+padding);	
	templateContainer->getRootNode()->toggleCollapsed();
	
	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
	
	
	vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"FileTemplates", false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", entry.name, NULL);			
			FileTemplateUserData *data = new FileTemplateUserData();
			data->type = 0;
			newChild->setUserData(data);			
			newChild->toggleCollapsed();
			parseTemplatesIntoTree(newChild, entry);
		}
	}	
	
	ScreenLabel *label2 = new ScreenLabel(L"New File Name (without extension)", fontSize, fontName, Label::ANTIALIAS_FULL);
	addChild(label2);
	label2->setPosition(padding+220, templateContainer->getPosition().y);			
	
	fileNameInput = new UITextInput(false, 500-padding-220-padding-padding, 12);	
	addChild(fileNameInput);
	fileNameInput->setPosition(label2->getPosition().x, label2->getPosition().y+label2->getHeight()+2);
	
	
	cancelButton = new UIButton(L"Cancel", 100);
	cancelButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(cancelButton);
	cancelButton->setPosition(500-100-padding-100-10, 265);
			
	okButton = new UIButton(L"Create File", 100);
	okButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(okButton);
	okButton->setPosition(500-100-padding, 265);	
}
Beispiel #12
0
void UITree::clearTree() {
	for(int i=0; i < treeChildren.size(); i++) {
		UITree *child = treeChildren[i];
		removeChild(child);
		child->removeEventListener(this, UITreeEvent::NEED_REFRESH_EVENT);
		child->removeEventListener(this, UITreeEvent::SELECTED_EVENT);
		child->removeEventListener(this, UITreeEvent::EXECUTED_EVENT);	
		delete child;
	}
	treeChildren.clear();
}
ExampleBrowserWindow::ExampleBrowserWindow() : UIWindow(L"Example Browser", 320, 300){
	
	templateFolder = "";
	
	closeOnEscape = true;
	defaultTemplateTree = NULL;
	
	Config *conf = CoreServices::getInstance()->getConfig();	
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	int fontSize = conf->getNumericValue("Polycode", "uiDefaultFontSize");
	
	
	templateContainer = new UITreeContainer("boxIcon.png", L"Examples", 300, 300-topPadding-padding-padding- 40);	
	
	ExampleTemplateUserData *data = new ExampleTemplateUserData();
	data->type = 0;
	templateContainer->getRootNode()->setUserData(data);			
	
	
	addChild(templateContainer);		
	templateContainer->setPosition(padding,topPadding+padding);	
	templateContainer->getRootNode()->toggleCollapsed();
	
	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
	
	vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"Standalone/Examples/Lua", false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", entry.name, NULL);			
			ExampleTemplateUserData *data = new ExampleTemplateUserData();
			data->type = 0;
			newChild->setUserData(data);			
			if(i == 0) {
				newChild->toggleCollapsed();
			}
			parseTemplatesIntoTree(newChild, entry);
		}
	}
	
	
	
	cancelButton = new UIButton(L"Cancel", 100);
	cancelButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(cancelButton);
	cancelButton->setPosition(300-100-padding-80-10, 265);
		
	
	okButton = new UIButton(L"Open Example", 100);
	okButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(okButton);
	okButton->setPosition(300-80-padding, 265);
}
Beispiel #14
0
void AssetBrowser::parseFolderIntoTree(UITree *tree, OSFileEntry folder) {
	vector<OSFileEntry> templates = OSBasics::parseFolder(folder.fullPath, false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];	
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = tree->addTreeChild("folder.png", entry.nameWithoutExtension, NULL);
			FolderUserData *data = new FolderUserData();
			data->type = 1;
			data->folderPath = entry.fullPath;
			newChild->setUserData(data);
			parseFolderIntoTree(newChild, entry);
		}
	}	
}
void PolycodeProjectBrowser::refreshProject(PolycodeProject *project) {
	
	UITree *projectTree = treeContainer->getRootNode();
	
	for(int i=0; i < projectTree->getNumTreeChildren(); i++) {
		UITree *projectChild = projectTree->getTreeChild(i);
		BrowserUserData *userData = (BrowserUserData*)projectChild->getUserData();
		if(userData->parentProject == project) {
			parseFolderIntoNode(projectChild, project->getRootFolder(), project);		
			return;
		}
	}	
	
}
void NewProjectWindow::parseTemplatesIntoTree(UITree *tree, OSFileEntry folder) {
	vector<OSFileEntry> templates = OSBasics::parseFolder(folder.fullPath, false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = tree->addTreeChild("templateIcon.png", entry.name, NULL);			
			TemplateUserData *data = new TemplateUserData();
			data->type = 1;
			data->templateFolder = entry.fullPath;
			newChild->setUserData(data);
			if(entry.name == "Empty Project") {
				defaultTemplateTree = newChild;
				newChild->setSelected();
			}
		}
	}	
}
Beispiel #17
0
void NewFileWindow::parseTemplatesIntoTree(UITree *tree, OSFileEntry folder) {
	vector<OSFileEntry> templates = OSBasics::parseFolder(folder.fullPath, false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];	
		if(entry.type != OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = tree->addTreeChild("templateIcon.png", entry.nameWithoutExtension, NULL);
			FileTemplateUserData *data = new FileTemplateUserData();
			data->type = 1;
			data->templatePath = entry.fullPath;
			newChild->setUserData(data);
			if(entry.name == "LUA Source File.lua") {
				defaultTemplateTree = newChild;
				newChild->setSelected();
			}
		}
	}	
}
void PolycodeProjectBrowser::parseFolderIntoNode(UITree *node, String spath, PolycodeProject *parentProject) {
	vector<OSFileEntry> files = OSBasics::parseFolder(spath, false);
	
	// check if files got deleted
	for(int i=0; i < node->getNumTreeChildren(); i++) {
		UITree *projectChild = node->getTreeChild(i);
		if(!listHasFileEntry(files, ((BrowserUserData*)projectChild->getUserData())->fileEntry)) {
			node->removeTreeChild(projectChild);
		}
	}	
	
	for(int i=0; i < files.size(); i++) {
		OSFileEntry entry = files[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *existing = nodeHasName(node, entry.name);
			if(!existing) {		
				BrowserUserData *data = new BrowserUserData();
				data->fileEntry = entry;
				UITree *newChild = node->addTreeChild("folder.png", entry.name, (void*) data);
				data->type = 2;	
				data->parentProject = parentProject;
				parseFolderIntoNode(newChild, entry.fullPath, parentProject);				
			} else {
				parseFolderIntoNode(existing, entry.fullPath, parentProject);							
			}
		} else {
			if(!nodeHasName(node, entry.name)) {
				BrowserUserData *data = new BrowserUserData();
				data->fileEntry = entry;
				data->type = 1;
				data->parentProject = parentProject;			
				node->addTreeChild("file.png", entry.name, (void*) data);
			}
		}
	}		
	
}
Beispiel #19
0
UITree *UITree::addTreeChild(String icon, String text, void *userData) {
	UITree *newTree = new UITree(icon, text, treeWidth, treeOffset+11);
	newTree->setUserData(userData);
	addChild(newTree);
	newTree->setParent(this);
	newTree->addEventListener(this, UITreeEvent::NEED_REFRESH_EVENT);
	newTree->addEventListener(this, UITreeEvent::SELECTED_EVENT);
	newTree->addEventListener(this, UITreeEvent::EXECUTED_EVENT);
	newTree->addEventListener(this, UITreeEvent::DRAG_START_EVENT);	
	treeChildren.push_back(newTree);
	refreshTree();
	return newTree;
}
void PolycodeProjectBrowser::removeProject(PolycodeProject *project) {
	
	UITree *projectTree = treeContainer->getRootNode();
	
	for(int i=0; i < projectTree->getNumTreeChildren(); i++) {
		UITree *projectChild = projectTree->getTreeChild(i);
		BrowserUserData *userData = (BrowserUserData*)projectChild->getUserData();
		if(userData->parentProject == project) {
			projectTree->removeTreeChild(projectChild);
			return;
		}
	}
}
Beispiel #21
0
void UITreeContainer::onKeyDown(PolyKEY key, wchar_t charCode) {
	if (hasFocus) {
		
		// KEYBOARD NAV STUFF
		// TODO: add ability to jump to prev/next sibling via holding down some button
		//
		if (keyNavigable) {
			enum { NONE, UP, DOWN } scrollDir = NONE;
			UITree *currentSelection = getRootNode()->getSelectedNode();
			if (!currentSelection)
				return;
			UITree *parent = currentSelection->getParent();
			
			// - select parent if currently selected node is first in the tree
			// - else, select the last opened node in a sibling above
			if (key == KEY_UP) {
				if (parent) {
					for (int i=0; i < parent->getNumTreeChildren(); i++) {
						if (parent->getTreeChild(i) == currentSelection) {
							if (i == 0)
								parent->setSelected(true);
							else
								findLastOpenNode((parent->getTreeChild(i-1)))->setSelected(true);
							scrollDir = UP;
							break;
						}
					}
				}
			}
			
			// - select first child of currently selected if expanded and has children
			// - or select next sibling
			// - else, select the next sibling of some ancestor node
			if (key == KEY_DOWN) {
				if (currentSelection == getRootNode())
					parent = getRootNode();

				if (currentSelection->hasTreeChildren() && !currentSelection->isCollapsed()) {
					currentSelection->getTreeChild(0)->setSelected(true);
					scrollDir = DOWN;
				}
				else {
					for (int i=0; i < parent->getNumTreeChildren(); i++) {
						if (parent->getTreeChild(i) == currentSelection) {
							if (i == parent->getNumTreeChildren()-1) {
								UITree *psib = findNextParentSibling(parent);
								if (psib)
									psib->setSelected(true);
							} else {
								parent->getTreeChild(i+1)->setSelected(true);
							}
							scrollDir = DOWN;
							break;
						}
					}
				}
			}
			
			if (key == KEY_LEFT) {
				if (currentSelection->hasTreeChildren() && !currentSelection->isCollapsed())
					currentSelection->toggleCollapsed();
				else if (parent) {
					parent->setSelected(true);
					scrollDir = UP;
				}
			}
			
			if (key == KEY_RIGHT) {
				if (currentSelection->hasTreeChildren()) {
					if (currentSelection->isCollapsed())
						currentSelection->toggleCollapsed();
				}
			}
			
			if (scrollDir != NONE)
				scrollToNode(getRootNode()->getSelectedNode(), (scrollDir == UP) ? true : false);
		}
		//
		// END KEYBOARD NAV STUFF
		
	}
}
NewProjectWindow::NewProjectWindow() : UIWindow(L"Create New Project", 480, 280){
	
	templateFolder = "";
	
	closeOnEscape = true;
	defaultTemplateTree = NULL;
	
	Config *conf = CoreServices::getInstance()->getConfig();	
	String fontName = conf->getStringValue("Polycode", "uiDefaultFontName");
	int fontSize = conf->getNumericValue("Polycode", "uiDefaultFontSize");
	
	
	templateContainer = new UITreeContainer("boxIcon.png", L"Templates", 200, 300-topPadding-padding-padding);	
	
	TemplateUserData *data = new TemplateUserData();
	data->type = 0;
	templateContainer->getRootNode()->setUserData(data);			
	
	
	addChild(templateContainer);		
	templateContainer->setPosition(padding,topPadding+padding);	
	templateContainer->getRootNode()->toggleCollapsed();
	
	templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
	
	vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"ProjectTemplates", false);
	for(int i=0; i < templates.size(); i++) {
		OSFileEntry entry = templates[i];
		if(entry.type == OSFileEntry::TYPE_FOLDER) {
			UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", entry.name, NULL);			
			TemplateUserData *data = new TemplateUserData();
			data->type = 0;
			newChild->setUserData(data);			
			if(i == 0) {
				newChild->toggleCollapsed();
			}
			parseTemplatesIntoTree(newChild, entry);
		}
	}
	
	ScreenLabel *label2 = new ScreenLabel(L"PROJECT NAME", 22, "section", Label::ANTIALIAS_FULL);
	label2->color.a = 0.4;
	addChild(label2);
	label2->setPosition(padding+220, templateContainer->getPosition().y-5);		

	projectNameInput = new UITextInput(false, 500-padding-210-padding-padding, 12);	
	addChild(projectNameInput);
	projectNameInput->setPosition(label2->getPosition().x, label2->getPosition().y + 30);
	
	ScreenLabel *label3 = new ScreenLabel(L"PROJECT LOCATION", 22, "section", Label::ANTIALIAS_FULL);
	label3->color.a = 0.4;
	addChild(label3);
	label3->setPosition(padding+220, templateContainer->getPosition().y+60);		
	
	projectLocationInput = new UITextInput(false, 500-padding-210-padding-padding, 12);	
	addChild(projectLocationInput);
	projectLocationInput->setPosition(label3->getPosition().x, label3->getPosition().y+30);

	
	locationSelectButton = new UIButton(L"Choose...", 100);
	locationSelectButton->addEventListener(this, UIEvent::CLICK_EVENT);	
	addChild(locationSelectButton);
	locationSelectButton->setPosition(500-103-padding, projectLocationInput->getPosition().y+projectLocationInput->getHeight()+10);
	
	
	cancelButton = new UIButton(L"Cancel", 100);
	cancelButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(cancelButton);
	cancelButton->setPosition(500-100-padding-100-10, 265);
		
	
	okButton = new UIButton(L"Create Project", 100);
	okButton->addEventListener(this, UIEvent::CLICK_EVENT);
	addChild(okButton);
	okButton->setPosition(500-100-padding, 265);
}