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(); }
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"); }
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); }
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); }
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); }
//! ---|> Component bool Menu::onSelect(){ getGUI().setActiveComponent(this); return true; }
//! (dtor) Menu::~Menu() { if(optionalFrameListener) { getGUI().removeFrameListener(std::move(*optionalFrameListener.get())); optionalFrameListener.reset(); } }
//=================================================================================== 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); } }
//=================================================================================== 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); }
//=================================================================================== 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); }
//! ---|> Component void Connector::addConnectorPoint(){ auto p=new ConnectorPoint(getGUI()); _addChild(p); }
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 ) ); }
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(); }