void TPalette::movePage(Page *page, int dstPageIndex) { assert(page); assert(page->m_palette == this); dstPageIndex = tcrop(dstPageIndex, 0, getPageCount() - 1); if (dstPageIndex == page->getIndex()) return; m_pages.erase(m_pages.begin() + page->getIndex()); m_pages.insert(m_pages.begin() + dstPageIndex, page); for (int i = 0; i < getPageCount(); i++) m_pages[i]->m_index = i; assert(page->getIndex() == dstPageIndex); }
TPalette::Page *TPalette::addPage(std::wstring name) { Page *page = new Page(name); page->m_index = getPageCount(); page->m_palette = this; m_pages.push_back(page); return page; }
const TPalette::Page *TPalette::getPage(int pageIndex) const { if (0 <= pageIndex && pageIndex < getPageCount()) { Page *page = m_pages[pageIndex]; assert(page->getIndex() == pageIndex); assert(page->m_palette == this); return page; } else return 0; }
CaDcdGrid_PageSelector& CaDcdGrid_PageSelector::setPage( int value ) { if ( value == INT_MAX ){ value = getPageCount() - 1 ; } if ( value >= getPageCount() ){ value = getPageCount() - 1 ; } if ( value < 0 ){ value = 0 ; } int iYPage = value / m_contiXFixafterColumnNumber.size() ; int iXPage = value % m_contiXFixafterColumnNumber.size() ; setYPage( iYPage ) ; setXPage( iXPage ) ; return *this ; }
void TPalette::erasePage(int index) { Page *page = getPage(index); if (!page) return; m_pages.erase(m_pages.begin() + index); int i; for (i = 0; i < getPageCount(); i++) m_pages[i]->m_index = i; for (i = 0; i < page->getStyleCount(); i++) m_styles[page->getStyleId(i)].first = 0; page->m_palette = 0; delete page; }
uint32_t TableView::getPageIndex() { uint32_t _pageCnt = getPageCount(); uint32_t _pageIdx = 0; auto _offset = getContentOffset(); if (m_scrollDirection == ScrollDirection::HORIZONTAL) { auto _realX = _offset.x * m_container->getContentSize().width; auto _pageTotalWidth = _pageCnt * getCellTotalWidth() * m_columnCnt; _pageIdx = _realX / _pageTotalWidth * _pageCnt; } else { auto _realY = (1.f - _offset.y) * m_container->getContentSize().height; auto _pageTotalHeight = _pageCnt * getCellTotalHeight() * m_rowCnt; _pageIdx = _realY / _pageTotalHeight * _pageCnt; } _pageIdx = MIN(MAX(_pageIdx, 0), _pageCnt - 1); return _pageIdx; }
void TableView::pageTo(uint32_t pageIndex, bool withAnimate, float speed) { uint32_t _pageCnt = getPageCount(); uint32_t _pageIdx = getPageIndex(); if (pageIndex > _pageCnt - 1) { return; } int _pageDelta = pageIndex - _pageIdx; Vec2 _offset; if (m_scrollDirection == ScrollDirection::HORIZONTAL) { _offset.x = -_pageDelta * getContentSize().width; } else { _offset.y = _pageDelta * getContentSize().height; } ScrollView::scrollTo(_offset, withAnimate, speed); }