X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLength.h;h=aaf19238e69541a47db7eb47cea89cdf08ac9bf7;hb=38c2cde0d8695ac5287bae218c4a33a2acf18ef8;hp=3a7e87a91cde8e3e5a2e660242e28cdb07b2fc33;hpb=a00c355fb12c54b1922660c1b804061161e2a3ae;p=lyx.git diff --git a/src/Length.h b/src/Length.h index 3a7e87a91c..aaf19238e6 100644 --- a/src/Length.h +++ b/src/Length.h @@ -50,12 +50,13 @@ public: PC, ///< Pica = 12pt = 4.218mm PT, ///< Point = 1/72.27in = 0.351mm SP, ///< Scaled point (65536sp = 1pt) TeX's smallest unit. + PTW, //< Percent of TextWidth PCW, //< Percent of ColumnWidth - PLW, //< Percent of LineWidth - PPH, //< Percent of PaperHeight // Herbert 2002-05-16 PPW, //< Percent of PageWidth - PTH, //< Percent of TextHeight // Herbert 2002-05-16 - PTW, //< Percent of TextWidth + PLW, //< Percent of LineWidth + PTH, //< Percent of TextHeight // Herbert 2002-05-16 + PPH, //< Percent of PaperHeight // Herbert 2002-05-16 + BLS, //< Percent of BaselineSkip // uwestoehr 2017-04-01 UNIT_NONE ///< no unit }; @@ -67,8 +68,6 @@ public: /// "data" must be a decimal number, followed by a unit explicit Length(std::string const & data); - /// - void swap(Length & rhs); /// double value() const; /// @@ -89,9 +88,16 @@ public: std::string const asLatexString() const; /// return string representation for HTML std::string const asHTMLString() const; - /// return the on-screen size of this length + /** return the on-screen size of this length. + * + * If the second argument is not provided, then the unit EM will + * only be approximated. It is better if possible to use + * FontMetrics::em() to get this value. + */ int inPixels(int text_width, int em_width = 0) const; + /// return the value in Big Postscript points. + /// Caution: Inaccurate for em, ex, mu and percent units. int inBP() const; /// return the default unit (centimeter or inch) @@ -100,6 +106,8 @@ public: friend bool isValidLength(std::string const & data, Length * result); private: + /// Convert value to inch for text width and em width given in inch + double inInch(double text_width, double em_width) const; /// double val_; ///