X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlength.h;h=d64c93fbbc438f9caf08fd0444b3fc6a90c301df;hb=eead5ba43d0ddf06544ad1b40063981d3788c635;hp=df31f9534900c41a1fe8565f3c016d02ce8b9189;hpb=ff9b02aabae2253d4176bfd0f2d668ab97d7f908;p=lyx.git diff --git a/src/lyxlength.h b/src/lyxlength.h index df31f95349..d64c93fbbc 100644 --- a/src/lyxlength.h +++ b/src/lyxlength.h @@ -1,64 +1,44 @@ // -*- 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 -#ifdef __GNUG__ -#pragma interface -#endif - #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 }; /// @@ -68,7 +48,7 @@ public: /// "data" must be a decimal number, followed by a unit explicit LyXLength(string const & data); - + /// double value() const; /// @@ -77,18 +57,20 @@ public: void value(double); /// void unit(LyXLength::UNIT unit); - - /// real length in SP - //void lenght(); - - /// conversion - string const asString() const; /// + bool zero() const; + /// + bool empty() const; + /// 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. */ - friend bool isValidLength(string const & data, LyXLength * result = 0); + friend bool isValidLength(string const & data, LyXLength * result); private: /// @@ -100,8 +82,11 @@ private: /// bool operator==(LyXLength const & l1, LyXLength const & l2); /// -bool isValidLength(string const & data, LyXLength * result); -/// +bool operator!=(LyXLength const & l1, LyXLength const & l2); +/** If "data" is valid, the length represented by it is + stored into "result", if that is not 0. */ +bool isValidLength(string const & data, LyXLength * result = 0); +/// return the name of the given unit number char const * stringFromUnit(int unit); -#endif +#endif // LYXLENGTH_H