X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlength.h;h=6c79982f2360fa3aa36cba9693a84833a29b2332;hb=98c966c64594611e469313314abd1e59524adb4a;hp=df31f9534900c41a1fe8565f3c016d02ce8b9189;hpb=ff9b02aabae2253d4176bfd0f2d668ab97d7f908;p=lyx.git diff --git a/src/lyxlength.h b/src/lyxlength.h index df31f95349..6c79982f23 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,30 @@ #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 + PW, ///< Percent of columnwidth both "%" or "%c" + PE, ///< FIXME + PP, ///< Percent of pagewidth + PL, ///< Percent of linewidth + UNIT_NONE ///< no unit }; /// @@ -68,7 +50,7 @@ public: /// "data" must be a decimal number, followed by a unit explicit LyXLength(string const & data); - + /// double value() const; /// @@ -77,14 +59,14 @@ public: void value(double); /// void unit(LyXLength::UNIT unit); - - /// real length in SP - //void lenght(); - - /// conversion - string const asString() const; /// + bool zero() 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 default_width, int default_height) const; /** If "data" is valid, the length represented by it is stored into "result", if that is not 0. */ @@ -100,8 +82,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