NewFileWindow.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "NewFileWindow.h"
  2. NewFileWindow::NewFileWindow() : UIWindow(L"Create New File", 500, 300) {
  3. defaultTemplateTree = NULL;
  4. templateContainer = new UITreeContainer("boxIcon.png", L"File Templates", 200, 300-topPadding-padding-padding);
  5. FileTemplateUserData *data = new FileTemplateUserData();
  6. data->type = 0;
  7. templateContainer->getRootNode()->setUserData(data);
  8. addChild(templateContainer);
  9. templateContainer->setPosition(padding,topPadding+padding);
  10. templateContainer->getRootNode()->toggleCollapsed();
  11. templateContainer->getRootNode()->addEventListener(this, UITreeEvent::SELECTED_EVENT);
  12. vector<OSFileEntry> templates = OSBasics::parseFolder(RESOURCE_PATH"FileTemplates", false);
  13. for(int i=0; i < templates.size(); i++) {
  14. OSFileEntry entry = templates[i];
  15. if(entry.type == OSFileEntry::TYPE_FOLDER) {
  16. UITree *newChild = templateContainer->getRootNode()->addTreeChild("folder.png", entry.name, NULL);
  17. FileTemplateUserData *data = new FileTemplateUserData();
  18. data->type = 0;
  19. newChild->setUserData(data);
  20. newChild->toggleCollapsed();
  21. parseTemplatesIntoTree(newChild, entry);
  22. }
  23. }
  24. }
  25. NewFileWindow::~NewFileWindow() {
  26. }
  27. void NewFileWindow::resetForm() {
  28. defaultTemplateTree->setSelected();
  29. }
  30. void NewFileWindow::parseTemplatesIntoTree(UITree *tree, OSFileEntry folder) {
  31. vector<OSFileEntry> templates = OSBasics::parseFolder(folder.fullPath, false);
  32. for(int i=0; i < templates.size(); i++) {
  33. OSFileEntry entry = templates[i];
  34. if(entry.type != OSFileEntry::TYPE_FOLDER) {
  35. UITree *newChild = tree->addTreeChild("templateIcon.png", entry.nameWithoutExtension, NULL);
  36. FileTemplateUserData *data = new FileTemplateUserData();
  37. data->type = 1;
  38. data->templateFolder = entry.fullPath;
  39. newChild->setUserData(data);
  40. if(entry.name == "LUA Source File.lua") {
  41. defaultTemplateTree = newChild;
  42. newChild->setSelected();
  43. }
  44. }
  45. }
  46. }