X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlength.C;h=c38e7a33729300a0e59ae5ecafa17f3faedb16a1;hb=a9713c5563c924f4ab98bde3d9f24a5c1e4dd50e;hp=40eb3b5d06b72a1a2a114c7c93543c3d24ebee45;hpb=293767645f75c540a48e9498ec5dca6aabdd5455;p=lyx.git diff --git a/src/lyxlength.C b/src/lyxlength.C index 40eb3b5d06..c38e7a3372 100644 --- a/src/lyxlength.C +++ b/src/lyxlength.C @@ -10,10 +10,6 @@ #include -#ifdef __GNUG__ -#pragma implementation -#endif - #include "lyxlength.h" #include "lengthcommon.h" #include "lyxrc.h" @@ -27,7 +23,7 @@ using std::abs; LyXLength::LyXLength() - : val_(0), unit_(LyXLength::PT) + : val_(0), unit_(LyXLength::UNIT_NONE) {} @@ -53,7 +49,7 @@ string const LyXLength::asString() const { ostringstream buffer; buffer << val_ << unit_name[unit_]; // setw? - return buffer.str().c_str(); + return STRCONV(buffer.str()); } @@ -62,34 +58,34 @@ string const LyXLength::asLatexString() const ostringstream buffer; switch (unit_) { case PTW: - buffer << abs(static_cast(val_/100)) << "." + buffer << abs(static_cast(val_/100)) << '.' << abs(static_cast(val_)%100) << "\\textwidth"; break; case PCW: - buffer << abs(static_cast(val_/100)) << "." + buffer << abs(static_cast(val_/100)) << '.' << abs(static_cast(val_)%100) << "\\columnwidth"; break; case PPW: - buffer << abs(static_cast(val_/100)) << "." + buffer << abs(static_cast(val_/100)) << '.' << abs(static_cast(val_)%100) << "\\paperwidth"; break; case PLW: - buffer << abs(static_cast(val_/100)) << "." + buffer << abs(static_cast(val_/100)) << '.' << abs(static_cast(val_)%100) << "\\linewidth"; break; case PPH: - buffer << abs(static_cast(val_/100)) << "." + buffer << abs(static_cast(val_/100)) << '.' << abs(static_cast(val_)%100) << "\\paperheight"; break; case PTH: - buffer << abs(static_cast(val_/100)) << "." + buffer << abs(static_cast(val_/100)) << '.' << abs(static_cast(val_)%100) << "\\textheight"; break; default: buffer << val_ << unit_name[unit_]; // setw? break; } - return buffer.str().c_str(); + return STRCONV(buffer.str()); } @@ -123,6 +119,12 @@ bool LyXLength::zero() const } +bool LyXLength::empty() const +{ + return unit_ == LyXLength::UNIT_NONE; +} + + int LyXLength::inPixels(int text_width, int em_width_base) const { // Zoom factor specified by user in percent @@ -134,7 +136,7 @@ int LyXLength::inPixels(int text_width, int em_width_base) const double const em_width = (em_width_base > 0) ? em_width_base : 10*(dpi/72.27)*zoom; - // A different estimate for em_width is + // A different estimate for em_width is // font_metrics::width('M', LyXFont(LyXFont::ALL_SANE)) // but this estimate might not be more accurate as the screen font // is different then the latex font.