X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSpacing.h;h=2a3bb755dddade3ccf61f49bcd8df3f9428fde11;hb=21226de2b87a86be19fff025cace3d286a75aa76;hp=fec928bb76ada8e5d72b6fbb9c8e172ee6ce2e6c;hpb=9ce32d63e5ff1dbf4c04e3d8263b2649ef3ac595;p=lyx.git diff --git a/src/Spacing.h b/src/Spacing.h index fec928bb76..2a3bb755dd 100644 --- a/src/Spacing.h +++ b/src/Spacing.h @@ -5,21 +5,20 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ #ifndef SPACING_H #define SPACING_H -#ifdef HAVE_SSTREAM -#include -using std::istringstream; -#else -#include +#ifdef __GNUG__ +#pragma interface #endif -#include "support/LOstream.h" +#include + +#include "LString.h" /// class Spacing { @@ -33,63 +32,60 @@ public: /// Double, /// - Other + Other, + /// + Default }; /// - Spacing() { - space = Single; - value = getValue(); - } + Spacing() : space(Default), value(1.0) {} /// - float getValue() const { - switch(space) { - case Single: return 1.0; - case Onehalf: return 1.25; - case Double: return 1.667; - case Other: return value; - } - return 1.0; + Spacing(Spacing::Space sp, float val = 1.0) { + set(sp, val); } - /// - Spacing::Space getSpace() const { - return space; + Spacing(Spacing::Space sp, string const & val) { + set(sp, val); } /// - void set(Spacing::Space sp, float val = 1.0) { - space = sp; - if (sp == Other) { - switch(int(val * 1000 + 0.5)) { - case 1000: space = Single; break; - case 1250: space = Onehalf; break; - case 1667: space = Double; break; - default: value = val; break; - } - } + bool isDefault() const { + return space == Default; } /// - void set(Spacing::Space sp, char const * val) { - float fval; -#ifdef HAVE_SSTREAM - istringstream istr(val); -#else - istrstream istr(val); -#endif - istr >> fval; - set(sp, fval); - } + float getValue() const; /// - void writeFile(ostream &); + Spacing::Space getSpace() const { return space; } /// - friend bool operator!=(Spacing const & a, Spacing const & b) { - if (a.space == b.space && a.getValue() == b.getValue()) - return false; - return true; - } + void set(Spacing::Space sp, float val = 1.0); + /// + void set(Spacing::Space sp, string const & val) ; + /// + void writeFile(std::ostream &, bool para = false) const; + /// + string const writeEnvirBegin() const; + /// + string const writeEnvirEnd() const; + private: /// Space space; /// float value; + /// names of line spacing + static string const spacing_string[]; }; + +/// +inline +bool operator==(Spacing const & a, Spacing const & b) +{ + return a.getSpace() == b.getSpace() + && a.getValue() == b.getValue(); +} + +/// +inline +bool operator!=(Spacing const & a, Spacing const & b) +{ + return !(a == b); +} #endif