diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-13 22:46:48 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-24 11:23:30 +0200 |
commit | 75825230abcc5f303a29f1f74b29c36e6140a064 (patch) | |
tree | 00083fcb5bc44706fdaf85153f2a115f70a5c8c3 /brep/page | |
parent | 7747dde9fa64fe0b5838d730a1d892f3f49d2d5d (diff) |
Implement package details page
Diffstat (limited to 'brep/page')
-rw-r--r-- | brep/page | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/brep/page b/brep/page new file mode 100644 index 0000000..81b6da8 --- /dev/null +++ b/brep/page @@ -0,0 +1,52 @@ +// file : brep/page -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#ifndef BREP_PAGE +#define BREP_PAGE + +#include <string> +#include <cstddef> // size_t +#include <functional> + +#include <xml/forward> + +namespace brep +{ + // Page common building blocks. + // + + // Generates paging element block. + // + class pager + { + public: + using get_url_type = std::function<std::string(std::size_t page)>; + + pager (std::size_t current_page, + std::size_t item_count, + std::size_t item_per_page, + std::size_t page_number_count, + get_url_type get_url); + + void + operator() (xml::serializer& s) const; + + private: + std::size_t current_page_; + std::size_t item_count_; + std::size_t item_per_page_; + std::size_t page_number_count_; + get_url_type get_url_; + }; + + // Default pager element block style. + // + struct pager_style + { + void + operator() (xml::serializer& s) const; + }; +} + +#endif // BREP_PAGE |