Esempio n. 1
0
	void DemoKeeper::createScene()
	{
		MyGUI::FactoryManager::getInstance().registerFactory<ControllerRandomSelected>("Controller");
		MyGUI::FactoryManager::getInstance().registerFactory<ControllerRandomProgress>("Controller");
		MyGUI::FactoryManager::getInstance().registerFactory<ControllerSmoothProgress>("Controller");
		MyGUI::FactoryManager::getInstance().registerFactory<ControllerSmoothCaption>("Controller");
		MyGUI::FactoryManager::getInstance().registerFactory<ResourceDevice>("Resource");
		MyGUI::FactoryManager::getInstance().registerFactory<MyGUI::RTTLayer>("Layer");

		createGround();
		createObject();

		setupCamera();

		getGUI()->load("rtt_data.xml");

		mCommandManager = new CommandManager();
		mMonitorPanel = new MonitorPanel();
		mKeyboardPanel = new KeyboardPanel();
	}
Esempio n. 2
0
	void DemoKeeper::createScene()
	{
		getGUI()->load("Wallpaper0.layout");
		MyGUI::VectorWidgetPtr& root = MyGUI::LayoutManager::getInstance().load("BackHelp.layout");
		root.at(0)->findWidget("Text")->setCaption("Example of using plugins in MyGUI. Actually nothing interesting to look at.");

		const MyGUI::IntSize & view = MyGUI::Gui::getInstance().getViewSize();
		const MyGUI::IntSize size(300, 26);

		// если группа ресурсов не указанна, то ищется в корне приложения
	#ifdef _DEBUG
		MyGUI::PluginManager::getInstance().loadPlugin("Plugin_StrangeButton_d.dll");
	#else
		MyGUI::PluginManager::getInstance().loadPlugin("Plugin_StrangeButton.dll");
	#endif

		m_button = MyGUI::Gui::getInstance().createWidgetT("StrangeButton", "Button", MyGUI::IntCoord((view.width - size.width) / 2, (view.height - size.height) / 2, size.width, size.height), MyGUI::Align::Default, "Main");
		m_button->setCaption("Plugin StrangeButton demo");

	}
Esempio n. 3
0
void EditorState::destroyScene()
{
	getGUI()->eventFrameStart -= MyGUI::newDelegate(this, &EditorState::notifyFrameStarted);

	saveSettings(userSettingsFile);

	delete mPropertiesPanelView;	
	mPropertiesPanelView = nullptr;

	delete mGroupMessage;

	um->shutdown();
	delete um;		
	um = nullptr;

	ew->shutdown();
	delete ew;		
	ew = nullptr;

	wt->shutdown();
	delete wt;						
	wt = nullptr;

	delete mToolTip;				
	mToolTip = nullptr;

	delete mSettingsWindow;			
	mSettingsWindow = nullptr;

	delete mMetaSolutionWindow;		
	mMetaSolutionWindow = nullptr;

	delete mWidgetsWindow;			
	mWidgetsWindow = nullptr;

	delete mOpenSaveFileDialog;		
	mOpenSaveFileDialog = nullptr;

	MyGUI::LogManager::unregisterSection(LogSection);
}
Esempio n. 4
0
void EditorState::createMainMenu()
{
	MyGUI::VectorWidgetPtr menu_items = MyGUI::LayoutManager::getInstance().load("interface_menu.layout");
	MYGUI_ASSERT(menu_items.size() == 1, "Error load main menu");
	bar = menu_items[0]->castType<MyGUI::MenuBar>();
	bar->setCoord(0, 0, getGUI()->getViewSize().width, bar->getHeight());

	// главное меню
	MyGUI::MenuItem* menu_file = bar->getItemById("File");
	mPopupMenuFile = menu_file->getItemChild();
	// список последних открытых файлов
	if (recentFiles.size())
	{
		MyGUI::MenuItem* menu_item = mPopupMenuFile->getItemById("File/Quit");
		for (std::vector<MyGUI::UString>::reverse_iterator iter = recentFiles.rbegin(); iter != recentFiles.rend(); ++iter)
		{
			mPopupMenuFile->insertItem(menu_item, *iter, MyGUI::MenuItemType::Normal, "File/RecentFiles",  *iter);
		}
		// если есть файлы, то еще один сепаратор
		mPopupMenuFile->insertItem(menu_item, "", MyGUI::MenuItemType::Separator);
	}

	//хак, дл¤ меню тест двойна¤ замена
	MyGUI::MenuItem* menu_item_test = mPopupMenuFile->getItemById("File/Test");
	menu_item_test->setCaption(MyGUI::LanguageManager::getInstance().replaceTags(menu_item_test->getCaption()));

	// меню дл¤ виджетов
	MyGUI::MenuItem* menu_widget = bar->getItemById("Widgets");
	mPopupMenuWidgets = menu_widget->createItemChild();
	//FIXME
	mPopupMenuWidgets->setPopupAccept(true);

	bar->eventMenuCtrlAccept = newDelegate(this, &EditorState::notifyPopupMenuAccept);

	interfaceWidgets.push_back(bar);
}
void JM_GameOverState::render()
{
    applySurface(137, 50, m_title, m_screen);
    getGUI().render();
}
void JM_GameOverState::update(int dTime)
{
    getGUI().update(dTime);
}
Esempio n. 7
0
void MainMenu::onInit()
{
   Vec2f startPos(1000, 300);
   Vec2f size(200, 50);

   const wchar_t * buttons[5] = {
      L"Продолжить",
      L"Новая игра",
      L"Редактор",
      L"Настройки",
      L"Выход"
   };

   std::function<void ()> callbacks[5] = {
      // Продолжить
      []() {
         if(State::get().game.isStarted == false)
            return;
         State::get().screen = State::Game;
      },
      // Новая игра
      []() {
         State::get().screen = State::LevelSelect;
//         State::get().game.reset = true;
      },
      // Редактор
      []() {
         State::get().screen = State::Editor;
         State::get().editor.reset = true;
      },
      // Настройки
      []() {
         State::get().screen = State::Settings;
      },
      // Выход
      []() {
         Renderer::get().getWindow().close();
      }
   };

   for(int i = 0; i < 5; i++)
   {
      gui::SimpleButton * button =
            new gui::SimpleButton(startPos + Vec2f(0, 50 * i), size,
                                  sf::Color::Transparent, sf::Color::Black, 0,
                                  buttons[i], Resources::get().getFont("comic"),
                                  sf::Color::Black, 30);
      button->setMouseOverCallback([button]()
      { button->getText()->getText()->setColor(sf::Color(130, 130, 130)); });

      button->setMouseOutCallback([button]()
      { button->getText()->getText()->setColor(sf::Color::Black); });

      button->setMouseClickCallback(callbacks[i]);

      getGUI()->addElement(button);
   }


   YobaObject::onInit();
}
 void MagnetGeneratorPlugin::showPopup()
 {
     KPassivePopup::message(i18n("Magnet"), i18n("Magnet link copied to clipboard"),
                            KIcon("kt-magnet").pixmap(20, 20), getGUI()->getMainWindow(), 3000);
 }
Esempio n. 9
0
File: Menu.cpp Progetto: PADrend/GUI
//! ---|> Component
bool Menu::onSelect(){
	getGUI().setActiveComponent(this);
	return true;
}
Esempio n. 10
0
File: Menu.cpp Progetto: PADrend/GUI
//! (dtor)
Menu::~Menu() {
	if(optionalFrameListener) {
		getGUI().removeFrameListener(std::move(*optionalFrameListener.get()));
		optionalFrameListener.reset();
	}
}
Esempio n. 11
0
//===================================================================================
void EditorState::createScene()
{
	getStatisticInfo()->setVisible(false);

	MyGUI::LogManager::registerSection(LogSection, "MyGUI.log");

	//FIXME
	// set locale language if it was taken from OS
	//if (! BasisManager::getInstance().getLanguage().empty() )
	//	MyGUI::LanguageManager::getInstance().setCurrentLanguage(BasisManager::getInstance().getLanguage());
	// if you want to test LanguageManager uncomment next line
	//MyGUI::LanguageManager::getInstance().setCurrentLanguage("Russian");
	testMode = false;

	wt = new WidgetTypes();
	wt->initialise();
	ew = new EditorWidgets();
	ew->initialise();
	um = new UndoManager();
	um->initialise(ew);
	mGroupMessage = new GroupMessage();

	MyGUI::ResourceManager::getInstance().load("initialise.xml");

	mToolTip = new EditorToolTip();
	//MyGUI::DelegateManager::getInstance().addDelegate("eventInfo", MyGUI::newDelegate(eventInfo));
	//MyGUI::DelegateManager::getInstance().addDelegate("eventEditorToolTip", MyGUI::newDelegate(this, &EditorState::notifyToolTip));

	interfaceWidgets = MyGUI::LayoutManager::getInstance().loadLayout("interface.layout", "LayoutEditor_");

	// settings window
	mSettingsWindow = new SettingsWindow();
	mSettingsWindow->eventWidgetsUpdate = MyGUI::newDelegate(this, &EditorState::notifyWidgetsUpdate);
	interfaceWidgets.push_back(mSettingsWindow->getMainWidget());

	// properties panelView
	mPropertiesPanelView = new PropertiesPanelView();
	mPropertiesPanelView->eventRecreate = MyGUI::newDelegate(this, &EditorState::notifyRecreate);
	interfaceWidgets.push_back(mPropertiesPanelView->getMainWidget());

	mWidgetsWindow = new WidgetsWindow();
	mWidgetsWindow->eventToolTip = MyGUI::newDelegate(this, &EditorState::notifyToolTip);
	mWidgetsWindow->eventSelectWidget = MyGUI::newDelegate(this, &EditorState::notifySelectWidget);
	interfaceWidgets.push_back(mWidgetsWindow->getMainWidget());

	mMetaSolutionWindow = new MetaSolutionWindow();
	mMetaSolutionWindow->eventLoadFile = MyGUI::newDelegate(this, &EditorState::saveOrLoadLayoutEvent<false>);
	mMetaSolutionWindow->eventSelectWidget = MyGUI::newDelegate(this, &EditorState::notifySelectWidget);
	interfaceWidgets.push_back(mMetaSolutionWindow->getMainWidget());

	mOpenSaveFileDialog = new common::OpenSaveFileDialog();
	mOpenSaveFileDialog->setVisible(false);
	mOpenSaveFileDialog->setFileMask("*.layout");
	mOpenSaveFileDialog->eventEndDialog = MyGUI::newDelegate(this, &EditorState::notifyOpenSaveEndDialog);

	loadSettings(settingsFile, true);
	loadSettings(userSettingsFile, false);

	// создание меню
	createMainMenu();

	mPropertiesPanelView->getMainWidget()->setCoord(
		getGUI()->getViewSize().width - mPropertiesPanelView->getMainWidget()->getSize().width,
		bar->getHeight(),
		mPropertiesPanelView->getMainWidget()->getSize().width,
		getGUI()->getViewHeight() - bar->getHeight()
		);

	// после загрузки настроек инициализируем
	mWidgetsWindow->initialise();

	if (mSettingsWindow->getEdgeHide())
	{
		for (MyGUI::VectorWidgetPtr::iterator iter = interfaceWidgets.begin(); iter != interfaceWidgets.end(); ++iter)
		{
			MyGUI::ControllerItem* item = MyGUI::ControllerManager::getInstance().createItem(MyGUI::ControllerEdgeHide::getClassTypeName());
			MyGUI::ControllerEdgeHide* controller = item->castType<MyGUI::ControllerEdgeHide>();

			controller->setTime(POSITION_CONTROLLER_TIME);
			controller->setRemainPixels(HIDE_REMAIN_PIXELS);
			controller->setShadowSize(3);

			MyGUI::ControllerManager::getInstance().addItem(*iter, controller);
		}
	}

	clear();

	/*MyGUI::Widget* mFpsInfo = mGUI->createWidget<MyGUI::Widget>("ButtonSmall", 20, (int)mGUI->getViewHeight() - 80, 120, 70, MyGUI::Align::Left | MyGUI::Align::Bottom, "Main", "fpsInfo");
	mFpsInfo->setColour(Ogre::ColourValue::White);*/

	//FIXME
	/*typedef std::vector<std::string> Params;
	Params params = BasisManager::getInstance().getCommandParams();
	for (Params::iterator iter=params.begin(); iter!=params.end(); ++iter)
	{
		saveOrLoadLayout(false, false, iter->c_str());
	}*/
	getGUI()->eventFrameStart += MyGUI::newDelegate(this, &EditorState::notifyFrameStarted);

	for (std::vector<MyGUI::UString>::iterator iter = additionalPaths.begin(); iter != additionalPaths.end(); ++iter)
	{
		addResourceLocation(*iter);
	}
}
Esempio n. 12
0
//===================================================================================
void EditorState::injectKeyPress(MyGUI::KeyCode _key, MyGUI::Char _text)
{
	MyGUI::InputManager& input = MyGUI::InputManager::getInstance();

	if (testMode)
	{
		if (input.isModalAny() == false)
		{
			if (_key == MyGUI::KeyCode::Escape)
			{
				notifyEndTest();
			}
		}

		getGUI()->injectKeyPress(_key, _text);
		//base::BaseManager::injectKeyPress(_key, _text);
		return;
	}

	if (input.isModalAny())
	{
		if (mOpenSaveFileDialog->isVisible())
		{
			if (_key == MyGUI::KeyCode::Escape)
				mOpenSaveFileDialog->eventEndDialog(false);
			else if (_key == MyGUI::KeyCode::Return)
				mOpenSaveFileDialog->eventEndDialog(true);
		}
	}
	else
	{
		if (_key == MyGUI::KeyCode::Escape)
		{
			notifyQuit();
			return;
		}

		if (input.isControlPressed())
		{
			if (_key == MyGUI::KeyCode::O
				|| _key == MyGUI::KeyCode::L)
				notifyLoad();
			else if (_key == MyGUI::KeyCode::S)
				notifySave();
			else if (_key == MyGUI::KeyCode::Z)
			{
				um->undo();
				notifySelectWidget(nullptr);
			}
			else if ((_key == MyGUI::KeyCode::Y) || ((input.isShiftPressed()) && (_key == MyGUI::KeyCode::Z)))
			{
				um->redo();
				notifySelectWidget(nullptr);
			}
			else if (_key == MyGUI::KeyCode::T)
			{
				notifyTest();
				return;
			}
			else if (_key == MyGUI::KeyCode::R)
			{
				mPropertiesPanelView->toggleRelativeMode();
				return;
			}
		}
	}

	getGUI()->injectKeyPress(_key, _text);
	//base::BaseManager::injectKeyPress(_key, _text);
}
Esempio n. 13
0
//===================================================================================
void EditorState::injectMousePress(int _absx, int _absy, MyGUI::MouseButton _id)
{
	if (testMode)
	{
		return base::BaseManager::injectMousePress(_absx, _absy, _id);
	}

	if (MyGUI::InputManager::getInstance().isModalAny())
	{
		// if we have modal widgets we can't select any widget
		base::BaseManager::injectMousePress(_absx, _absy, _id);
		return;
	}

	// align to grid if shift not pressed
	int x1, y1;
	if (MyGUI::InputManager::getInstance().isShiftPressed() == false)
	{
		x1 = toGrid(_absx);
		y1 = toGrid(_absy);
	}
	else
	{
		x1 = _absx;
		y1 = _absy;
	}

	// юбилейный комит  =)
	mWidgetsWindow->startNewWidget(x1, y1, _id);

	// это чтобы можно было двигать пр¤моугольник у невидимых виджето (или виджетов за границами)
	//MyGUI::LayerItemInfoPtr rootItem = nullptr;
	//MyGUI::Widget* itemWithRect = static_cast<MyGUI::Widget*>(MyGUI::LayerManager::getInstance().findWidgetItem(_absx, _absy, rootItem));
	// не стал это доделывать, т.к. неоднозначность выбора виджета получаетс¤, если кто скажет как выбирать - сделаю

	MyGUI::Widget* item = MyGUI::LayerManager::getInstance().getWidgetFromPoint(_absx, _absy);

	// не убираем пр¤моугольник если нажали на его раст¤гивалку
	if (item && (item->getParent() != mPropertiesPanelView->getWidgetRectangle()))
	{
		// чтобы пр¤моугольник не мешалс¤
		mPropertiesPanelView->getWidgetRectangle()->setVisible(false);
		item = MyGUI::LayerManager::getInstance().getWidgetFromPoint(_absx, _absy);
	}

	if (nullptr != item)
	{
		// find widget registered as container
		while ((nullptr == ew->find(item)) && (nullptr != item)) item = item->getParent();
		MyGUI::Widget* oldItem = item;

		// try to selectin depth
		int depth = selectDepth;
		while (depth && (nullptr != item))
		{
			item = item->getParent();
			while ((nullptr == ew->find(item)) && (nullptr != item)) item = item->getParent();
			depth--;
		}
		if (nullptr == item)
		{
			item = oldItem;
			selectDepth = 0;
		}

		// found widget
		if (nullptr != item)
		{
			notifySelectWidget(item);
			if (mWidgetsWindow->getCreatingStatus() != 1)
			{
				//FIXME
				getGUI()->injectMouseMove(_absx, _absy, 0);// это чтобы сразу можно было тащить
			}
		}
		//FIXME
		getGUI()->injectMousePress(_absx, _absy, _id);
	}
	else
	{
		//FIXME
		getGUI()->injectMousePress(_absx, _absy, _id);
		notifySelectWidget(nullptr);
	}

	// вернем пр¤моугольник
	if (current_widget && mWidgetsWindow->getCreatingStatus() == 0)
	{
		mPropertiesPanelView->getWidgetRectangle()->setVisible(true);
	}
	else if (mWidgetsWindow->getCreatingStatus())
	{
		mPropertiesPanelView->getWidgetRectangle()->setVisible(false);
	}

	//base::BaseManager::injectMousePress(_absx, _absy, _id);
}
Esempio n. 14
0
//! ---|> Component
void Connector::addConnectorPoint(){
	auto p=new ConnectorPoint(getGUI());
	_addChild(p);
}
Esempio n. 15
0
void KfmView::slotDropEvent( KDNDDropZone *_zone )
{
      // check if dropped data is an URL
      if ( _zone->getDataType() != DndURL )
      {
	QMessageBox::warning( 0, klocale->translate( "KFM Error" ),
			      klocale->translate("ERROR: You may only drop URLs") );
	return;
      }
      
      QPoint p = view->mapFromGlobal( QPoint( _zone->getMouseX(), _zone->getMouseY() ) );
      const char *url = view->getURL( p );
 
      // Dropped over an object or not ?
      if ( url == 0L )
	// dropped over white ground
	url = manager->getURL();
      //-------- Sven's write to pseudo global mime/app dirs start ---

      // Consider the following case:
      // User opened mime/apps dir and has not any local items =>
      // displayed are global items or global dirs with items.
      // Now he clicks on dir Images/. Global Images/ dir openes. Now
      // user wants to drag some new item  he got from friend to this
      // dir; He can't; this is a global directory. He is frustrated.

      // the code is moved to kfm.cpp: static Kfm::setUpDest (QString *)

      QString tryPath(url);      // copy (hope deep)
      if (!getGUI()->sumode) // if not root...
      {
	Kfm::setUpDest(&tryPath);  // check/modify...
	url = tryPath.data();      // return back
      }
      //-------- Sven's write to pseudo global mime/app dirs end ---
      
    KURL u( url );
    if ( u.isMalformed() )
    {
	QMessageBox::warning( 0, klocale->translate( "KFM Error" ),
			      klocale->translate("ERROR: Drop over malformed URL") );
	return;
    }
    
    // Check whether we drop a directory on itself or one of its children
    int nested = 0;
    QStrList list( _zone->getURLList() );
    char *s;
    for ( s = list.first(); s != 0L; s = list.next() )
    {
	int j;
	if ( ( j = testNestedURLs( s, url ) ) )
	    if ( j == -1 || ( j > nested && nested != -1 ) )
		nested = j;
    }
    
    if ( nested == -1 )
    {
	QMessageBox::warning( 0, klocale->translate( "KFM Error" ),
			      klocale->translate("ERROR: Malformed URL") );
	return;
    }
    if ( nested == 2 )
    {
        // Commented out useless warning. David.
	// QMessageBox::warning( 0, klocale->translate( "KFM Error" ),
	// 		      klocale->translate("ERROR: You dropped some URL over itself") );
	return;
    }
    
    QPoint p2( _zone->getMouseX(), _zone->getMouseY() );
    manager->dropPopupMenu( _zone, url, &p2, ( nested == 0 ? false : true ) );

}
Esempio n. 16
-1
    void MagnetGeneratorPlugin::generateMagnet()
    {
        bt::TorrentInterface* tor = getGUI()->getTorrentActivity()->getCurrentTorrent();
        if (!tor)
            return;

        QUrl dn(tor->getStats().torrent_name);
        SHA1Hash ih(tor->getInfoHash());

        QString uri("magnet:?xt=urn:btih:");
        uri.append(ih.toString());

        if (MagnetGeneratorPluginSettings::dn())
        {
            uri.append("&dn=");
            uri.append(QUrl::toPercentEncoding(dn.toString(), "{}", NULL));
        }

        if ((MagnetGeneratorPluginSettings::customtracker() && MagnetGeneratorPluginSettings::tr().length() > 0) && !MagnetGeneratorPluginSettings::torrenttracker())
        {
            uri.append("&tr=");
            QUrl tr(MagnetGeneratorPluginSettings::tr());
            uri.append(QUrl::toPercentEncoding(tr.toString(), "{}", NULL));
        }

        if (MagnetGeneratorPluginSettings::torrenttracker())
        {
            QList<bt::TrackerInterface*> trackers = tor->getTrackersList()->getTrackers();
            if (!trackers.isEmpty())
            {
                Tracker* trk = (Tracker*)trackers.first();
                QUrl tr(trk->trackerURL());

                uri.append("&tr=");
                uri.append(QUrl::toPercentEncoding(tr.toString(), "{}", NULL));
            }

        }

        addToClipboard(uri);

        if (MagnetGeneratorPluginSettings::popup())
            showPopup();

    }