void ItemBrowserWidget::NextPage(Widget* /*_widget*/)
{
    int old_page = page_;
    int max_number_items = grid_size_.x * grid_size_.y - 2;
    int number_items = static_cast<int>(items_.size()) - page_ * max_number_items;
    if(number_items > max_number_items)
        page_++;
    else
        page_ = 0;
    PerformItemLayout();
    if(page_ != old_page)
        OnPageChange(this, old_page, page_);
}
void ItemBrowserWidget::SetPage(int _page)
{
    int max_page = GetPageCount() - 1;
    int old_page = page_;
    page_ = _page;

    if(page_ < 0)
        page_ = 0;
    if(page_ > max_page)
        page_ = max_page;

    if(page_ != old_page)
        OnPageChange(this, old_page, page_);
}
void ItemBrowserWidget::PrevPage(Widget* /*_widget*/)
{
    int old_page = page_;
    int max_number_items = grid_size_.x * grid_size_.y - 2;
    if(page_ > 0)
        page_--;
    else
    {
        page_ = (int)items_.size() / max_number_items;
        if(items_.size() % max_number_items == 0)
            page_--;
    }

    //Small numbers of items could result in negative page
    if(page_ < 0)
        page_ = 0;
    PerformItemLayout();
    if(page_ != old_page)
        OnPageChange(this, old_page, page_);
}
Exemplo n.º 4
0
void View::SetPage(int pageIdx, bool doLayout)
{
    assert(m_doc); // Page cannot be NULL
    assert(m_doc->HasPage(pageIdx));

    m_pageIdx = pageIdx;
    m_currentPage = m_doc->SetDrawingPage(pageIdx);

    if (doLayout) {
        m_doc->CollectScoreDefs();
        // if we once deal with multiple views, it would be better
        // to redo the layout only when necessary?
        m_currentPage->LayOut();
    }

    m_currentElement = NULL;
    m_currentLayer = NULL;
    m_currentMeasure = NULL;
    m_currentStaff = NULL;
    m_currentSystem = NULL;

    OnPageChange();
    DoRefresh();
}