void BookWindow::open (MWWorld::Ptr book) { mBook = book; clearPages(); mCurrentPage = 0; MWBase::Environment::get().getSoundManager()->playSound ("book open", 1.0, 1.0); MWWorld::LiveCellRef<ESM::Book> *ref = mBook.get<ESM::Book>(); BookTextParser parser; std::vector<std::string> results = parser.split(ref->mBase->mText, mLeftPage->getSize().width, mLeftPage->getSize().height); int i=0; for (std::vector<std::string>::iterator it=results.begin(); it!=results.end(); ++it) { MyGUI::Widget* parent; if (i%2 == 0) parent = mLeftPage; else parent = mRightPage; MyGUI::Widget* pageWidget = parent->createWidgetReal<MyGUI::Widget>("", MyGUI::FloatCoord(0.0,0.0,1.0,1.0), MyGUI::Align::Default, "BookPage" + boost::lexical_cast<std::string>(i)); parser.parse(*it, pageWidget, mLeftPage->getSize().width); mPages.push_back(pageWidget); ++i; } updatePages(); setTakeButtonShow(true); }
void ScrollWindow::open (MWWorld::Ptr scroll) { MWBase::Environment::get().getSoundManager()->playSound3D (scroll, "scroll", 1.0, 1.0); mScroll = scroll; ESMS::LiveCellRef<ESM::Book, MWWorld::RefData> *ref = mScroll.get<ESM::Book>(); BookTextParser parser; MyGUI::IntSize size = parser.parse(ref->base->text, mTextView, 390); if (size.height > mTextView->getSize().height) mTextView->setCanvasSize(MyGUI::IntSize(410, size.height)); else mTextView->setCanvasSize(410, mTextView->getSize().height); mTextView->setViewOffset(MyGUI::IntPoint(0,0)); }
void ScrollWindow::open (MWWorld::Ptr scroll) { // no 3d sounds because the object could be in a container. MWBase::Environment::get().getSoundManager()->playSound ("scroll", 1.0, 1.0); mScroll = scroll; MWWorld::LiveCellRef<ESM::Book> *ref = mScroll.get<ESM::Book>(); BookTextParser parser; MyGUI::IntSize size = parser.parseScroll(ref->mBase->mText, mTextView, 390); // Canvas size must be expressed with VScroll disabled, otherwise MyGUI would expand the scroll area when the scrollbar is hidden mTextView->setVisibleVScroll(false); if (size.height > mTextView->getSize().height) mTextView->setCanvasSize(MyGUI::IntSize(410, size.height)); else mTextView->setCanvasSize(410, mTextView->getSize().height); mTextView->setVisibleVScroll(true); mTextView->setViewOffset(MyGUI::IntPoint(0,0)); setTakeButtonShow(true); }