Пример #1
0
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);
}
Пример #2
0
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));
}
Пример #3
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);
    }