X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSpacing.C;h=90d73d52f7ed9b7786b20fc9269d3a9471bfc3cc;hb=32ef0d04c48a1751abbb5e3b17d1bec25f22c255;hp=19f9d1fa65fd6ff084b859faed282a6ccc50f1e2;hpb=fe4e2a84c664ab13a2cfbfcbdb953d72c77eb268;p=lyx.git diff --git a/src/Spacing.C b/src/Spacing.C index 19f9d1fa65..90d73d52f7 100644 --- a/src/Spacing.C +++ b/src/Spacing.C @@ -1,13 +1,20 @@ -#include +/* This file is part of + * ====================================================== + * + * LyX, The Document Processor + * + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2001 The LyX Team. + * + * ====================================================== */ +#include -#ifdef HAVE_SSTREAM -#include -using std::istringstream; -#else -#include +#ifdef __GNUG__ +#pragma implementation #endif +#include "Lsstream.h" #include "Spacing.h" #include "LString.h" @@ -15,13 +22,16 @@ using std::ios; using std::ostream; /// how can I put this inside of Spacing (class) -static -char const * spacing_string[] = {"single", "onehalf", "double", "other"}; +namespace { + +char const * const spacing_string[] = {"single", "onehalf", "double", "other"}; + +} // namespace anon float Spacing::getValue() const { - switch(space) { + switch (space) { case Default: // nothing special should happen with this... case Single: return 1.0; case Onehalf: return 1.25; @@ -36,7 +46,7 @@ void Spacing::set(Spacing::Space sp, float val) { space = sp; if (sp == Other) { - switch(int(val * 1000 + 0.5)) { + switch (int(val * 1000 + 0.5)) { case 1000: space = Single; break; case 1250: space = Onehalf; break; case 1667: space = Double; break; @@ -46,14 +56,10 @@ void Spacing::set(Spacing::Space sp, float val) } -void Spacing::set(Spacing::Space sp, char const * val) +void Spacing::set(Spacing::Space sp, string const & val) { - float fval; -#ifdef HAVE_SSTREAM - istringstream istr(val); -#else - istrstream istr(val); -#endif + float fval = 0.0; + istringstream istr(val.c_str()); istr >> fval; set(sp, fval); } @@ -74,3 +80,42 @@ void Spacing::writeFile(ostream & os, bool para) const os << cmd << spacing_string[getSpace()] << " \n"; } } + + +string const Spacing::writeEnvirBegin() const +{ + switch (space) { + case Default: break; // do nothing + case Single: + return "\\begin{singlespace}"; + case Onehalf: + return "\\begin{onehalfspace}"; + case Double: + return "\\begin{doublespace}"; + case Other: + { + ostringstream ost; + ost << "\\begin{spacing}{" + << getValue() << "}"; + return ost.str().c_str(); + } + } + return string(); +} + + +string const Spacing::writeEnvirEnd() const +{ + switch (space) { + case Default: break; // do nothing + case Single: + return "\\end{singlespace}"; + case Onehalf: + return "\\end{onehalfspace}"; + case Double: + return "\\end{doublespace}"; + case Other: + return "\\end{spacing}"; + } + return string(); +}