X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlength.h;h=565d820fd6d39cf860352f001ab544d95c55f127;hb=5091380d6bad1686800e384ed1bbb03836a15aab;hp=cabb28d225d0d73885da2deb195b0d0dd8b5395a;hpb=33a28bdc9cdf978601d5d40b693f13924801ad9e;p=lyx.git diff --git a/src/lyxlength.h b/src/lyxlength.h index cabb28d225..565d820fd6 100644 --- a/src/lyxlength.h +++ b/src/lyxlength.h @@ -1,13 +1,12 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== +/** + * \file lyxlength.h + * Copyright 1995-2002 the LyX Team + * Read the file COPYING * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. - * - * ====================================================== */ + * \author Matthias Ettrich + */ + #ifndef LYX_LENGTH_H #define LYX_LENGTH_H @@ -18,47 +17,32 @@ #include "LString.h" -// -/// LyXLength Class -// +/** + * LyXLength - Represents latex length measurement + */ class LyXLength { public: /// length units enum UNIT { - /// Scaled point (65536sp = 1pt) TeX's smallest unit. - SP, - /// Point = 1/72.27in = 0.351mm - PT, - /// Big point (72bp = 1in), also PostScript point - BP, - /// Didot point = 1/72 of a French inch, = 0.376mm - DD, - /// Millimeter = 2.845pt - MM, - /// Pica = 12pt = 4.218mm - PC, - /// Cicero = 12dd = 4.531mm - CC, - /// Centimeter = 10mm = 2.371pc - CM, - /// Inch = 25.4mm = 72.27pt = 6.022pc - IN, - /// Height of a small "x" for the current font. - EX, - /// Width of capital "M" in current font. - EM, - /// Math unit (18mu = 1em) for positioning in math mode - MU, - /// Percent of columnwidth both "%" or "%c" - PW, - /// - PE, - /// Percent of pagewidth - PP, - /// Percent of linewidth - PL, - /// no unit - UNIT_NONE + SP, ///< Scaled point (65536sp = 1pt) TeX's smallest unit. + PT, ///< Point = 1/72.27in = 0.351mm + BP, ///< Big point (72bp = 1in), also PostScript point + DD, ///< Didot point = 1/72 of a French inch, = 0.376mm + MM, ///< Millimeter = 2.845pt + PC, ///< Pica = 12pt = 4.218mm + CC, ///< Cicero = 12dd = 4.531mm + CM, ///< Centimeter = 10mm = 2.371pc + IN, ///< Inch = 25.4mm = 72.27pt = 6.022pc + EX, ///< Height of a small "x" for the current font. + EM, ///< Width of capital "M" in current font. + MU, ///< Math unit (18mu = 1em) for positioning in math mode + PTW, //< Percent of TextWidth + PCW, //< Percent of ColumnWidth + PPW, //< Percent of PageWidth + PLW, //< Percent of LineWidth + PTH, //< Percent of TextHeight // Herbert 2002-05-16 + PPH, //< Percent of PaperHeight // Herbert 2002-05-16 + UNIT_NONE ///< no unit }; /// @@ -79,10 +63,14 @@ public: void unit(LyXLength::UNIT unit); /// bool zero() const; - /// conversion + /// return string representation string const asString() const; - /// + /// return string representation for LaTeX string const asLatexString() const; + /// return the on-screen size of this length + int inPixels(int text_width, int em_width = 0) const; + /// return the on-screen size of this length of an image + int inBP() const; /** If "data" is valid, the length represented by it is stored into "result", if that is not 0. */ @@ -98,8 +86,10 @@ private: /// bool operator==(LyXLength const & l1, LyXLength const & l2); /// -bool isValidLength(string const & data, LyXLength * result); +bool operator!=(LyXLength const & l1, LyXLength const & l2); /// +bool isValidLength(string const & data, LyXLength * result); +/// return the name of the given unit number char const * stringFromUnit(int unit); -#endif +#endif // LYXLENGTH_H