//--------------------------------------------------------------------------
	void BaseFileDialog::ok()
	{
		MyGUI::LanguageManager& lang = MyGUI::LanguageManager::getInstance();
		if(mCurrentBasename.empty())
		{
			MessageBox* msgbox = new MessageBox;
			msgbox->setIcon(MessageBoxIcon::INFO);
			msgbox->setMessage("#{SelectFileBefore}");
			msgbox->addButton(MessageBoxButton::OK);
			return;
		}

		size_t pos = mCurrentBasename.rfind('.');
		if(pos == String::npos)
		{
			if(mCurrentFilter < getNumFilters())
			{
				const Filter& filter = getFilter(mCurrentFilter);
				mCurrentBasename += filter.getDefaultExt();
			}
		}

		String filename = getCurrentFilename();
		if(mType == LOAD)
		{
			if(!ResourceGroupManager::getSingleton().resourceExists(mResourceGroup, filename))
			{
				MessageBox* msgbox = new MessageBox;
				msgbox->setIcon(MessageBoxIcon::ERROR);
				msgbox->setMessage("#{FileNotFound}", "1", filename);
				msgbox->addButton(MessageBoxButton::OK);
				return;
			}
		}
		else if(mType == SAVE)
		{
			if(ResourceGroupManager::getSingleton().resourceExists(mResourceGroup, filename))
			{
				MessageBox* msgbox = new MessageBox;
				msgbox->setIcon(MessageBoxIcon::QUEST);
				msgbox->setMessage("#{ConfirmOverwriteFile}", "1", filename);
				msgbox->addButton(MessageBoxButton::YES);
				msgbox->addButton(MessageBoxButton::NO);
				msgbox->eventChoice = MyGUI::newDelegate(this, &BaseFileDialog::notifyFileOverwriteMessageButton);
				return;
			}
		}

		ok_final();
	}
	//----------------------------------------------------------------------------
	void WorldViewWindowManager::_processWindowClosing()
	{
		World* changedWorld = nullptr;
		size_t i = mWindows.size();
		while(i != 0)
		{
			WorldViewWindow* window = mWindows[--i];
			if(window->isClosing())
			{
				World* world = window->getWorld();
				if(!world->isChanged())
					WorldManager::getSingleton().destroyWorld(world);
				else
				{
					changedWorld = world;
					break;
				}
			}
		}

		if(!changedWorld)
		{
			if(mAppExitAfterWindowClosing)
				InputSystem::getSingleton().setExitFlag();
			return;
		}

		WorldManager::getSingleton().setActiveWorld(changedWorld);

		MessageBox* msgbox = new MessageBox;
		msgbox->addButton(MessageBoxButton::BUTTON1, "#{Save}");
		msgbox->addButton(MessageBoxButton::BUTTON2, "#{DontSave}");
		msgbox->addButton(MessageBoxButton::CANCEL);
		msgbox->setIcon(MessageBoxIcon::QUEST);
		msgbox->setMessage("#{ConfirmSaveChanges}", "1", changedWorld->getName());
		msgbox->eventChoice = MyGUI::newDelegate(this, &WorldViewWindowManager::notifyMessageBoxChoice);
	}