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_); }
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(); }