void EditorState::initState() { addUserTag("\\n", "\n"); addUserTag("CurrentFileName", mFileName); mMainPane = new MainPane(); mMessageBoxFadeControl = new MessageBoxFadeControl(); mSettingsWindow = new SettingsWindow(); mSettingsWindow->eventEndDialog = MyGUI::newDelegate(this, &EditorState::notifySettingsWindowEndDialog); mOpenSaveFileDialog = new OpenSaveFileDialog(); mOpenSaveFileDialog->eventEndDialog = MyGUI::newDelegate(this, &EditorState::notifyEndDialog); mOpenSaveFileDialog->setFileMask("*.xml"); mOpenSaveFileDialog->setCurrentFolder(RecentFilesManager::getInstance().getRecentFolder()); mOpenSaveFileDialog->setRecentFilders(RecentFilesManager::getInstance().getRecentFolders()); ActionManager::getInstance().eventChanges += MyGUI::newDelegate(this, &EditorState::notifyChanges); updateCaption(); if (!Application::getInstance().getParams().empty()) { mFileName = Application::getInstance().getParams().front(); addUserTag("CurrentFileName", mFileName); load(); updateCaption(); } }
void EditorState::notifyEndDialog(Dialog* _sender, bool _result) { if (_result) { if (mOpenSaveFileDialog->getMode() == "SaveAs") { RecentFilesManager::getInstance().setRecentFolder(mOpenSaveFileDialog->getCurrentFolder()); mFileName = common::concatenatePath(mOpenSaveFileDialog->getCurrentFolder(), mOpenSaveFileDialog->getFileName()); addUserTag("CurrentFileName", mFileName); save(); updateCaption(); } else if (mOpenSaveFileDialog->getMode() == "Load") { RecentFilesManager::getInstance().setRecentFolder(mOpenSaveFileDialog->getCurrentFolder()); mFileName = common::concatenatePath(mOpenSaveFileDialog->getCurrentFolder(), mOpenSaveFileDialog->getFileName()); addUserTag("CurrentFileName", mFileName); load(); updateCaption(); } } mOpenSaveFileDialog->endModal(); }
void EditorState::initState() { addUserTag("\\n", "\n"); setFileName(mFileName); mMainPaneControl = new MainPaneControl(); mSettingsWindow = new SettingsWindow(); mSettingsWindow->Initialise(SettingsManager::getInstance().getValue("EditorState/SettingsWindowLayout")); mSettingsWindow->eventEndDialog.connect(this, &EditorState::notifySettingsWindowEndDialog); mCodeGenerator = new CodeGenerator(); mCodeGenerator->eventEndDialog.connect(this, &EditorState::notifyEndDialogCodeGenerator); mOpenSaveFileDialog = new OpenSaveFileDialog(); mOpenSaveFileDialog->Initialise(SettingsManager::getInstance().getValue("EditorState/OpenSaveFileDialogLayout")); mOpenSaveFileDialog->setFileMask("*.layout"); mOpenSaveFileDialog->eventEndDialog.connect(this, &EditorState::notifyEndDialogOpenSaveFile); mOpenSaveFileDialog->setCurrentFolder(RecentFilesManager::getInstance().getRecentFolder()); mOpenSaveFileDialog->setRecentFolders(RecentFilesManager::getInstance().getRecentFolders()); updateCaption(); if (!Application::getInstance().getParams().empty()) { setFileName(Application::getInstance().getParams().front()); load(); updateCaption(); } UndoManager::getInstance().eventChanges += MyGUI::newDelegate(this, &EditorState::notifyChanges); }
MyGUI::UString EditorState::convertProjectName(const MyGUI::UString& _fileName) { size_t pos = mFileName.find_last_of("\\/"); MyGUI::UString shortName = pos == MyGUI::UString::npos ? mFileName : mFileName.substr(pos + 1); addUserTag("ResourceName", shortName); size_t index = _fileName.find("|"); if (index == MyGUI::UString::npos) return _fileName; MyGUI::UString fileName = _fileName.substr(0, index); MyGUI::UString itemIndexName = _fileName.substr(index + 1); size_t itemIndex = MyGUI::utility::parseValue<size_t>(itemIndexName); MyGUI::xml::Document doc; if (!doc.open(fileName)) return _fileName; MyGUI::xml::ElementPtr root = doc.getRoot(); if ((nullptr == root) || (root->getName() != "MyGUI")) return _fileName; if (root->findAttribute("type") == "Resource") { // берем детей и крутимся MyGUI::xml::ElementEnumerator element = root->getElementEnumerator(); while (element.next("Resource")) { if (element->findAttribute("type") == "ResourceLayout") { if (itemIndex == 0) { // поменять на теги std::string resourceName = element->findAttribute("name"); addUserTag("ResourceName", resourceName); return MyGUI::utility::toString(fileName, " [", resourceName, "]"); } else { itemIndex --; } } } } return _fileName; }
void EditorState::loadDropFile() { mFileName = mDropFileName; addUserTag("CurrentFileName", mFileName); load(); updateCaption(); }
void EditorState::clear() { SkinManager::getInstance().clear(); ActionManager::getInstance().setChanges(false); mFileName = mDefaultFileName; addUserTag("CurrentFileName", mFileName); updateCaption(); }
void StateTextureControl::updateCaption() { if (getActivate()) { int scale = (int)(getScale() * (double)100); addUserTag("CurrentScale", MyGUI::utility::toString(scale)); CommandManager::getInstance().executeCommand("Command_UpdateAppCaption"); } }
void EditorState::clear() { DataManager::getInstance().clear(); ActionManager::getInstance().reset(); DataSelectorManager::getInstance().changeParent(DataManager::getInstance().getRoot()); mFileName = mDefaultFileName; addUserTag("CurrentFileName", mFileName); updateCaption(); }
void MainMenuControlLE::updateRecentProjectsMenu() { MyGUI::MenuItem* recentProjectsMenu = mBar->findItemById("RecentProjects", true); if (recentProjectsMenu != nullptr) { recentProjectsMenu->getItemChild()->removeAllItems(); // список последних открытых проектов const RecentFilesManager::VectorUString& recentProjects = RecentFilesManager::getInstance().getRecentProjects(); if (!recentProjects.empty()) { size_t index = 1; for (RecentFilesManager::VectorUString::const_iterator iter = recentProjects.begin(); iter != recentProjects.end(); ++iter, ++index) { addUserTag("IndexRecentProject", MyGUI::utility::toString(index)); addUserTag("RecentProject", *iter); recentProjectsMenu->getItemChild()->addItem(replaceTags("FormatRecentProject"), MyGUI::MenuItemType::Normal, "Command_OpenRecentProject", *iter); } } } }
MyGUI::UString SkinListControl::getNextFreeName() { for (size_t index = 0; index < (std::numeric_limits<size_t>::max)(); index++) { addUserTag("SkinNameIndex", MyGUI::utility::toString(index)); MyGUI::UString name = replaceTags("SkinNamePattern"); if (!isNameExist(name)) return name; } return ""; }
void EditorState::load() { SkinManager::getInstance().clear(); MyGUI::xml::Document doc; if (doc.open(mFileName)) { bool result = false; MyGUI::xml::Element* root = doc.getRoot(); if (root->getName() == "Root") { MyGUI::xml::ElementEnumerator nodes = root->getElementEnumerator(); while (nodes.next("SkinManager")) { SkinManager::getInstance().deserialization(nodes.current(), MyGUI::Version()); result = true; if (mFileName != mDefaultFileName) RecentFilesManager::getInstance().addRecentFile(mFileName); break; } } if (!result) { /*MyGUI::Message* message =*/ MessageBoxManager::getInstance().create( replaceTags("Error"), replaceTags("MessageIncorrectFileFormat"), MyGUI::MessageBoxStyle::IconError | MyGUI::MessageBoxStyle::Yes); mFileName = mDefaultFileName; addUserTag("CurrentFileName", mFileName); updateCaption(); } } else { /*MyGUI::Message* message =*/ MessageBoxManager::getInstance().create( replaceTags("Error"), doc.getLastError(), MyGUI::MessageBoxStyle::IconError | MyGUI::MessageBoxStyle::Yes); } ActionManager::getInstance().setChanges(false); }
void EditorState::initState() { addUserTag("\\n", "\n"); addUserTag("CurrentFileName", mFileName); mMainPane = new Control(); mMainPane->Initialise(SettingsManager::getInstance().getValue("EditorState/MainPaneLayout")); mSettingsWindow = new SettingsWindow(); mSettingsWindow->Initialise(SettingsManager::getInstance().getValue("EditorState/SettingsWindowLayout")); mSettingsWindow->eventEndDialog.connect(this, &EditorState::notifySettingsWindowEndDialog); mOpenSaveFileDialog = new OpenSaveFileDialog(); mOpenSaveFileDialog->Initialise(SettingsManager::getInstance().getValue("EditorState/OpenSaveFileDialogLayout")); mOpenSaveFileDialog->eventEndDialog.connect(this, &EditorState::notifyEndDialog); mOpenSaveFileDialog->setCurrentFolder(RecentFilesManager::getInstance().getRecentFolder()); mOpenSaveFileDialog->setRecentFolders(RecentFilesManager::getInstance().getRecentFolders()); std::string fileMask; if (!SettingsManager::getInstance().tryGetValue("EditorState/DefaultFileMask", fileMask)) fileMask = "*.xml"; mOpenSaveFileDialog->setFileMask(fileMask); ActionManager::getInstance().eventChanges.connect(this, &EditorState::notifyChanges); updateCaption(); if (!Application::getInstance().getParams().empty()) { mFileName = Application::getInstance().getParams().front(); addUserTag("CurrentFileName", mFileName); load(); updateCaption(); } }
std::string MainMenuControlLE::getDescriptionString(MyGUI::Widget* _widget, bool _print_name, bool _print_type, bool _print_skin) { WidgetContainer* widgetContainer = EditorWidgets::getInstance().find(_widget); addUserTag("WidgetName", _print_name ? widgetContainer->getName() : ""); addUserTag("WidgetType", _print_type ? _widget->getTypeName() : ""); addUserTag("WidgetSkin", _print_skin ? widgetContainer->getSkin() : ""); addUserTag("FormatWidgetName", (_print_name && !widgetContainer->getName().empty()) ? "#{PatternWidgetName}" : ""); addUserTag("FormatWidgetType", _print_type ? "#{PatternWidgetType}" : ""); addUserTag("FormatWidgetSkin", _print_skin ? "#{PatternWidgetSkin}" : ""); return replaceTags("MenuItemWidgetInfo"); }
void EditorState::load() { DataManager::getInstance().clear(); ActionManager::getInstance().reset(); DataSelectorManager::getInstance().changeParent(DataManager::getInstance().getRoot()); pugi::xml_document doc; pugi::xml_parse_result result = doc.load_file(mFileName.asWStr_c_str()); if (result) { bool success = ExportManager::getInstance().deserialization(doc); if (success) { if (mFileName != mDefaultFileName) RecentFilesManager::getInstance().addRecentFile(mFileName); DataSelectorManager::getInstance().changeParent(DataManager::getInstance().getRoot()); } else { /*MyGUI::Message* message =*/ MessageBoxManager::getInstance().create( replaceTags("Error"), replaceTags("MessageIncorrectFileFormat"), MyGUI::MessageBoxStyle::IconError | MyGUI::MessageBoxStyle::Yes); mFileName = mDefaultFileName; addUserTag("CurrentFileName", mFileName); updateCaption(); } } else { /*MyGUI::Message* message =*/ MessageBoxManager::getInstance().create( replaceTags("Error"), result.description(), MyGUI::MessageBoxStyle::IconError | MyGUI::MessageBoxStyle::Yes); } }
void EditorState::setFileName(const MyGUI::UString& _fileName) { mFileName = _fileName; addUserTag("CurrentFileName", convertProjectName(mFileName)); }
void EditorState::updateCaption() { addUserTag("HasChanged", ActionManager::getInstance().getChanges() ? "*" : ""); CommandManager::getInstance().executeCommand("Command_UpdateAppCaption"); }
void EditorState::updateCaption() { addUserTag("HasChanged", UndoManager::getInstance().isUnsaved() ? "*" : ""); CommandManager::getInstance().executeCommand("Command_UpdateAppCaption"); }
void EditorState::updateCaption() { addUserTag("HasChanged", ActionManager::getInstance().getChanges() ? "*" : ""); Application::getInstance().setCaption(replaceTags("CaptionMainWindow")); }