X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FLength.cpp;h=f8eb920c0ff48e5b58bd0065d0aad38d00c9009a;hb=55a3dd7b346d29a52ba305a4558e9e380ef50f47;hp=90da83a74ca7080a9fbc2b75762ce761f13501f0;hpb=9383f4c3c6f9cfab2d658701ba66e2b54cd68bea;p=lyx.git diff --git a/src/Length.cpp b/src/Length.cpp index 90da83a74c..f8eb920c0f 100644 --- a/src/Length.cpp +++ b/src/Length.cpp @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Matthias Ettrich - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * \author Angus Leeming * \author John Levon @@ -96,12 +96,12 @@ string const Length::asLatexString() const case PLW: os << val_ / 100.0 << "\\linewidth"; break; - case PPH: - os << val_ / 100.0 << "\\paperheight"; - break; case PTH: os << val_ / 100.0 << "\\textheight"; break; + case PPH: + os << val_ / 100.0 << "\\paperheight"; + break; default: os << val_ << unit_name[unit_]; break; @@ -110,6 +110,48 @@ string const Length::asLatexString() const } +string const Length::asHTMLString() const +{ + ostringstream os; + switch (unit_) { + case PT: + case BP: + case DD: + // close enough + os << val_ << "pt"; + break; + case MM: + case CM: + case PC: + case IN: + case EX: + case EM: + os << val_ << unit_name[unit_]; + break; + case CC: + os << val_/12.0 << "pt"; + break; + case MU: + os << val_/18.0 << "em"; + break; + case PTW: + case PPW: + case PLW: + case PCW: + case PTH: + case PPH: + // what it's a percentage of probably won't make sense for HTML, + // so we'll assume people have chosen these appropriately + os << val_ << '%'; + break; + case SP: + case UNIT_NONE: + break; + } + return os.str(); +} + + double Length::value() const { return val_; @@ -276,6 +318,13 @@ int Length::inBP() const } +Length::UNIT Length::defaultUnit() +{ + return lyxrc.default_length_unit; +} + + + bool operator==(Length const & l1, Length const & l2) { return l1.value() == l2.value() && l1.unit() == l2.unit(); @@ -365,13 +414,12 @@ string const GlueLength::asString() const string const GlueLength::asLatexString() const { ostringstream buffer; - - buffer << len_.value() << unit_name[len_.unit()]; - + // use Length::asLatexString() to handle also the percent lengths + buffer << len_.Length::asLatexString(); if (!plus_.zero()) - buffer << " plus " << plus_.value() << unit_name[plus_.unit()]; + buffer << " plus " << plus_.Length::asLatexString(); if (!minus_.zero()) - buffer << " minus " << minus_.value() << unit_name[minus_.unit()]; + buffer << " minus " << minus_.Length::asLatexString(); return buffer.str(); }