X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSpacing.h;h=0395b3e0cf53a7d355bd260727b89f71f5cedc83;hb=98c966c64594611e469313314abd1e59524adb4a;hp=bf593a19f55a3cfafc3e26565b84d2214c9d9e40;hpb=8dccec5c46a1689fe3ea37144252e952771e1e1c;p=lyx.git diff --git a/src/Spacing.h b/src/Spacing.h index bf593a19f5..0395b3e0cf 100644 --- a/src/Spacing.h +++ b/src/Spacing.h @@ -1,24 +1,24 @@ // -*- C++ -*- /* This file is part of * ====================================================== - * + * * LyX, The Document Processor - * + * * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ #ifndef SPACING_H #define SPACING_H -#ifdef HAVE_SSTREAM -#include -#else -#include +#ifdef __GNUG__ +#pragma interface #endif -#include "support/LOstream.h" +#include + +#include "LString.h" /// class Spacing { @@ -32,69 +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