X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlength.C;h=fded92c19bcfe53b595f0d24e86a7cc713607f6f;hb=46bd598fc5b0b1bb61e713428c54aedf9c6e6d98;hp=e9c0cf880ecdcfe0c5f3c39cd03e21f6f5048e25;hpb=91de22ef340abbf1e9ba7d422bcd9024fa90d63f;p=lyx.git diff --git a/src/lyxlength.C b/src/lyxlength.C index e9c0cf880e..fded92c19b 100644 --- a/src/lyxlength.C +++ b/src/lyxlength.C @@ -19,11 +19,17 @@ #include "lengthcommon.h" #include "lyxrc.h" +#include "support/docstream.h" +#include +#include -#include "Lsstream.h" +namespace lyx { + + +using std::ostringstream; +using std::string; -using std::abs; LyXLength::LyXLength() : val_(0), unit_(LyXLength::UNIT_NONE) @@ -50,45 +56,47 @@ LyXLength::LyXLength(string const & data) string const LyXLength::asString() const { - ostringstream buffer; - buffer << val_ << unit_name[unit_]; // setw? - return STRCONV(buffer.str()); + ostringstream os; + os << val_ << unit_name[unit_]; // setw? + return os.str(); +} + + +docstring const LyXLength::asDocstring() const +{ + odocstringstream os; + os << val_ << unit_name[unit_]; // setw? + return os.str(); } string const LyXLength::asLatexString() const { - ostringstream buffer; + ostringstream os; switch (unit_) { case PTW: - buffer << abs(static_cast(val_/100)) << '.' - << abs(static_cast(val_)%100) << "\\textwidth"; - break; + os << val_ / 100.0 << "\\textwidth"; + break; case PCW: - buffer << abs(static_cast(val_/100)) << '.' - << abs(static_cast(val_)%100) << "\\columnwidth"; - break; + os << val_ / 100.0 << "\\columnwidth"; + break; case PPW: - buffer << abs(static_cast(val_/100)) << '.' - << abs(static_cast(val_)%100) << "\\paperwidth"; - break; + os << val_ / 100.0 << "\\paperwidth"; + break; case PLW: - buffer << abs(static_cast(val_/100)) << '.' - << abs(static_cast(val_)%100) << "\\linewidth"; - break; + os << val_ / 100.0 << "\\linewidth"; + break; case PPH: - buffer << abs(static_cast(val_/100)) << '.' - << abs(static_cast(val_)%100) << "\\paperheight"; - break; + os << val_ / 100.0 << "\\paperheight"; + break; case PTH: - buffer << abs(static_cast(val_/100)) << '.' - << abs(static_cast(val_)%100) << "\\textheight"; - break; + os << val_ / 100.0 << "\\textheight"; + break; default: - buffer << val_ << unit_name[unit_]; // setw? - break; + os << val_ << unit_name[unit_]; + break; } - return STRCONV(buffer.str()); + return os.str(); } @@ -140,7 +148,7 @@ int LyXLength::inPixels(int text_width, int em_width_base) const ? em_width_base : 10*(dpi/72.27)*zoom; // A different estimate for em_width is - // font_metrics::width('M', LyXFont(LyXFont::ALL_SANE)) + // theFontMetrics(LyXFont(LyXFont::ALL_SANE)).width('M') // but this estimate might not be more accurate as the screen font // is different then the latex font. @@ -148,10 +156,6 @@ int LyXLength::inPixels(int text_width, int em_width_base) const // between lengths and font sizes on the screen // is the same as on paper. -#ifdef WITH_WARNINGS -#warning if you don't care than either call this function differently or let it return negative values and call abs() explicitly when needed (Andre') -#endif - double result = 0.0; switch (unit_) { @@ -272,3 +276,6 @@ bool operator!=(LyXLength const & l1, LyXLength const & l2) { return !(l1 == l2); } + + +} // namespace lyx