51 lines
1013 B
C++
51 lines
1013 B
C++
// _____ _ _____
|
|
// |_ _|____ _| ||_ _|_ __
|
|
// | |/ _ \ \/ / __|| | \ \ / /
|
|
// | | __/> <| |_ | | \ V /
|
|
// |_|\___/_/\_\\__||_| \_/
|
|
// Author: Love Billenius <lovebillenius@disroot.org>
|
|
// License: GPL-3
|
|
|
|
|
|
#include "Pager.hpp"
|
|
|
|
Page &Pager::seek(const int number) {
|
|
Page &page = get_page_at(number);
|
|
m_page_number = number;
|
|
return page;
|
|
}
|
|
|
|
Pager &Pager::operator+=(const int number) {
|
|
seek(m_page_number + number);
|
|
return *this;
|
|
}
|
|
|
|
Pager &Pager::operator-=(const int number) {
|
|
seek(m_page_number - number);
|
|
return *this;
|
|
}
|
|
|
|
Page &Pager::operator*() {
|
|
return get_page_at(m_page_number);
|
|
}
|
|
|
|
Page *Pager::operator->() {
|
|
return &get_page_at(m_page_number);
|
|
}
|
|
|
|
void Pager::set(const int number) {
|
|
m_page_number = number;
|
|
}
|
|
|
|
void Pager::clear() {
|
|
m_pages.clear();
|
|
}
|
|
|
|
Page &Pager::get_page_at(const int number) {
|
|
if (!m_pages.contains(number)) {
|
|
const Page p(number);
|
|
m_pages[number] = p;
|
|
}
|
|
return m_pages.at(number);
|
|
}
|