// // anchor.h // // Part of KVIEWSHELL - A framework for multipage text/gfx viewers // // (C) 2004-2005 Stefan Kebekus // Distributed under the GPL #ifndef ANCHOR_H #define ANCHOR_H #include "length.h" #include "pageNumber.h" /** \brief Page number and vertical position in physical coordinates This very simple class contains a page number and a vertical position in physical coordiantes. The vertical position is given by the distance from the top of the page. Anchors are completely independent of documents, there is no need for a document to exists that contains the given page, nor does the page number need to be valid. @author Stefan Kebekus @version 1.0 0 */ class Anchor { public: /** \brief Constructs an anchor that points to an invalid page */ Anchor() {page = 0;} /** \brief Constructs an snchor that points to a given position on a given page The class contains no code to make sure in any way that the page number pg exists, and that page pg, if it exists, is taller than distance_from_top @param pg number of the page @param _distance_from_top distance from the top of the page */ Anchor(const PageNumber& pg, const Length& _distance_from_top): page(pg), distance_from_top(_distance_from_top) {} /** \brief quick validity check for anchors @returns true if the page number is valid, and 0mm <= distance_from_top <= 2m */ bool isValid() const {return page.isValid() && (0.0 <= distance_from_top.getLength_in_mm()) && (distance_from_top.getLength_in_mm() <= 2000.0);} /** \brief Page number that this anchor point to */ PageNumber page; /** \brief Distance from the top of the page in inch */ Length distance_from_top; }; #endif