bool GUIManager::handleDSActivation ( CEGUI::EventArgs const & e ) { CEGUI::Window *tab = static_cast<CEGUI::WindowEventArgs const &>(e).window->getParent(); CEGUI::Listbox *lb = static_cast<CEGUI::Listbox *>(tab->getChild(0)); ListboxItem *item = static_cast<ListboxItem *>(lb->getFirstSelectedItem()); if (item != NULL) { DataManager *dm = static_cast<DataManager *>(item->getUserData()); CEGUI::Scrollbar *sb = static_cast<CEGUI::Scrollbar *>(tab->getChild(2)); std::vector<unsigned int> const & dims = dm->getDimensions(); unsigned int dim = dims[int(sb->getScrollPosition()*(dims.size()-1))]; float scrollPos = sb->getScrollPosition(); dm->activate(dim); // Enable global scrollbar CEGUI::WindowManager & wm = CEGUI::WindowManager::getSingleton(); sb = static_cast<CEGUI::Scrollbar *>(wm.getWindow("Sheet/DimensionSlider")); sb->enable(); CEGUI::WindowEventArgs w(sb); sb->fireEvent(CEGUI::Scrollbar::EventScrollPositionChanged, w); // Set the global scrollbar to the right position. sb->setScrollPosition(scrollPos); CEGUI::Window *desc = wm.getWindow("Sheet/DimensionText"); desc->show(); } // TODO handle else-error return true; }
void WidgetDemo::logFiredEvent(const CEGUI::String& logMessage) { ListboxItem* item = d_widgetSelectorListbox->getFirstSelectedItem(); if(!item) return; CEGUI::String eventsLog = d_widgetsEventsLog->getText(); eventsLog += logMessage; //Remove line int pos = std::max<int>(static_cast<int>(eventsLog.length() - 2056), 0); int len = std::min<int>(static_cast<int>(eventsLog.length()), 2056); eventsLog = eventsLog.substr(pos, len); if(len == 2056) { int newlinePos = eventsLog.find_first_of("\n"); if(newlinePos != std::string::npos) eventsLog = eventsLog.substr(newlinePos, std::string::npos); } d_widgetsEventsLog->setText(eventsLog); //Scroll to end CEGUI::Scrollbar* scrollbar = static_cast<CEGUI::Scrollbar*>(d_widgetsEventsLog->getChild("__auto_vscrollbar__")); scrollbar->setScrollPosition(scrollbar->getDocumentSize() - scrollbar->getPageSize()); }
void CGUIMemo_Impl::SetVerticalScrollPosition ( float fPosition ) { CEGUI::Scrollbar* pScrollbar = reinterpret_cast < CEGUI::MultiLineEditbox* > ( m_pWindow )->d_vertScrollbar; if ( pScrollbar ) { pScrollbar->setScrollPosition ( fPosition ); } }
void CGUIGridList_Impl::SetVerticalScrollPosition ( float fPosition ) { try { CEGUI::Scrollbar* pScrollbar = reinterpret_cast < CEGUI::MultiColumnList* > ( m_pWindow )->d_vertScrollbar; if ( pScrollbar ) pScrollbar->setScrollPosition ( fPosition * ( pScrollbar->getDocumentSize () - pScrollbar->getPageSize () ) ); } catch ( CEGUI::Exception ) {} }
void MainGameScreen::resetDeepthSliders() { CEGUI::Scrollbar* DepthSliderTop = static_cast<CEGUI::Scrollbar*> (GUI->getWindowManager()->getWindow("MainGameScreen/DepthScrollerTop")); if (DepthSliderTop != NULL) { int32_t ZMax = GAME->getMap()->getHighest() - GAME->getMap()->getLowest(); DepthSliderTop->setDocumentSize(ZMax); } CEGUI::Scrollbar* DepthSliderBottom = static_cast<CEGUI::Scrollbar*> (GUI->getWindowManager()->getWindow("MainGameScreen/DepthScrollerBottom")); if (DepthSliderBottom != NULL) { int32_t ZMax = GAME->getMap()->getHighest() - GAME->getMap()->getLowest(); float OldPosition = DepthSliderBottom->getScrollPosition(); if (OldPosition > ZMax) { DepthSliderBottom->setDocumentSize(ZMax); DepthSliderBottom->setScrollPosition(ZMax); } else { DepthSliderBottom->setScrollPosition(ZMax); } } }
bool GUIManager::handleBigScrollbarChanged ( CEGUI::EventArgs const & e ) { CEGUI::WindowManager & wm = CEGUI::WindowManager::getSingleton(); try { if (_selectedDM != NULL) { CEGUI::Window *desc = wm.getWindow("Sheet/DimensionText"); CEGUI::Scrollbar *sb = static_cast<CEGUI::Scrollbar *>( static_cast<CEGUI::WindowEventArgs const &>(e).window); float f = sb->getScrollPosition(); std::vector<unsigned int> const & dims = _selectedDM->getDimensions(); unsigned int newDim = dims[int(f*(dims.size()-1))]; std::ostringstream ss; ss << newDim; desc->setText(ss.str()); CEGUI::Scrollbar *otherSB; switch (_selectedDM->type) { case DM_Height: otherSB = static_cast<CEGUI::Scrollbar *>(wm.getWindow( "Sheet/DatasetFrame/TabControl/HTab/Scrollbar")); break; case DM_Pattern: otherSB = static_cast<CEGUI::Scrollbar *>(wm.getWindow( "Sheet/DatasetFrame/TabControl/PTab/Scrollbar")); break; case DM_Color: otherSB = static_cast<CEGUI::Scrollbar *>(wm.getWindow( "Sheet/DatasetFrame/TabControl/CTab/Scrollbar")); break; default: break; }; otherSB->setScrollPosition(f); _selectedDM->activate(newDim); } } catch (DataManagerException & e) { std::cerr << e.what() << std::endl; } return true; }
bool MainGameScreen::Init() { RootWindow = CEGUI::WindowManager::getSingleton().loadWindowLayout("MainGameScreen.layout"); try { CEGUI::Window* GameOptionsButton = GUI->getWindowManager()->getWindow("MainGameScreen/TopBar/GameOptionsButton"); if (GameOptionsButton != NULL) { GameOptionsButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::GameOptionsOpen, this)); } CEGUI::Window* GameOptionsWindow = GUI->getWindowManager()->getWindow("MainGameScreen/GameOptionsWindow"); if (GameOptionsWindow != NULL) { GameOptionsWindow->subscribeEvent(CEGUI::FrameWindow::EventCloseClicked, CEGUI::Event::Subscriber(&MainGameScreen::GameOptionsClose, this)); } CEGUI::Window* PathTesterWindow = GUI->getWindowManager()->getWindow("MainGameScreen/PathProfileWindow"); if (PathTesterWindow != NULL) { PathTesterWindow->subscribeEvent(CEGUI::FrameWindow::EventCloseClicked, CEGUI::Event::Subscriber(&MainGameScreen::PathProfilerClose, this)); } CEGUI::Window* ZoneButton = GUI->getWindowManager()->getWindow("MainGameScreen/TopBar/ZoneButton"); if (ZoneButton != NULL) { ZoneButton->subscribeEvent(CEGUI::FrameWindow::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::ZoneButtonClick, this)); } CEGUI::Window* SaveButton = GUI->getWindowManager()->getWindow("MainGameScreen/GameOptionsWindow/SaveGameButton"); if (SaveButton != NULL) { SaveButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::SaveGame, this)); } CEGUI::Window* PathProfileButton = GUI->getWindowManager()->getWindow("MainGameScreen/GameOptionsWindow/PathProfilerButton"); if (PathProfileButton != NULL) { PathProfileButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::PathProfilerOpen, this)); } CEGUI::Window* ExitButton = GUI->getWindowManager()->getWindow("MainGameScreen/GameOptionsWindow/ExitButton"); if (ExitButton != NULL) { ExitButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::ExitGame, this)); } CEGUI::Window* TestSuiteButton = GUI->getWindowManager()->getWindow("MainGameScreen/PathProfileWindow/RunSuiteButton"); if (TestSuiteButton != NULL) { TestSuiteButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::RunSuitePressed, this)); } CEGUI::Scrollbar* DepthSliderTop = static_cast<CEGUI::Scrollbar*> (GUI->getWindowManager()->getWindow("MainGameScreen/DepthScrollerTop")); if (DepthSliderTop != NULL) { DepthSliderTop->setDocumentSize(1000); DepthSliderTop->setScrollPosition(0); DepthSliderTop->subscribeEvent(CEGUI::Scrollbar::EventScrollPositionChanged, CEGUI::Event::Subscriber(&MainGameScreen::DepthSliderMoved, this)); } CEGUI::Scrollbar* DepthSliderBottom = static_cast<CEGUI::Scrollbar*> (GUI->getWindowManager()->getWindow("MainGameScreen/DepthScrollerBottom")); if (DepthSliderBottom != NULL) { DepthSliderBottom->setDocumentSize(1000); DepthSliderBottom->setScrollPosition(1000); DepthSliderBottom->subscribeEvent(CEGUI::Scrollbar::EventScrollPositionChanged, CEGUI::Event::Subscriber(&MainGameScreen::DepthSliderMoved, this)); } CEGUI::Window* PauseButton = GUI->getWindowManager()->getWindow("MainGameScreen/TopBar/PauseButton"); if (PauseButton != NULL) { PauseButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::MainGameScreen::PausePressed, this)); } CEGUI::Window* PlayButton = GUI->getWindowManager()->getWindow("MainGameScreen/TopBar/PlayButton"); if (PauseButton != NULL) { PlayButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::MainGameScreen::PlayPressed, this)); } CEGUI::Window* DigButton = GUI->getWindowManager()->getWindow("MainGameScreen/BottomWindow/DigButton"); if (DigButton != NULL) { DigButton->subscribeEvent(CEGUI::PushButton::EventMouseClick, CEGUI::Event::Subscriber(&MainGameScreen::MainGameScreen::DigPressed, this)); } } catch(CEGUI::Exception &e) { } }