]> git.lyx.org Git - lyx.git/blobdiff - src/Spacing.h
update all .po files ot latestes pot
[lyx.git] / src / Spacing.h
index 4ee1b284c075516ba672fdbc406b947af02f46a5..98f9463250fe4979d03906f0b7ac221aea6bb09e 100644 (file)
@@ -5,21 +5,20 @@
  *           LyX, The Document Processor
  *        
  *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-1999 The LyX Team.
+ *           Copyright 1995-2000 The LyX Team.
  *
  * ====================================================== */
 
 #ifndef SPACING_H
 #define SPACING_H
 
-#ifdef HAVE_SSTREAM
-#include <sstream>
-using std::istringstream;
-#else
-#include <strstream>
+#ifdef __GNUG__
+#pragma interface
 #endif
 
-#include "support/LOstream.h"
+#include <iosfwd>
+
+#include "LString.h"
 
 ///
 class Spacing {
@@ -33,64 +32,30 @@ public:
                ///
                Double,
                ///
-               Other
+               Other,
+               ///
+               Default
        };
        ///
-       Spacing()
-       {
-               space = Single;
-               value = getValue();
-       }
+       Spacing() : space(Single), 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;
+       bool isDefault() const {
+               return space == Default;
        }
        ///
-       Spacing::Space getSpace() const
-       {
-               return space;
-       }
+       float getValue() const;
        ///
-       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;
-                       }
-               }
-       }
+       Spacing::Space getSpace() const { return space; }
        ///
-       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);
-       }
+       void set(Spacing::Space sp, float val = 1.0);
        ///
-       void writeFile(ostream &);
+       void set(Spacing::Space sp, string const & val) ;
        ///
-       friend bool operator!=(Spacing const & a, Spacing const & b)
-       {
-               if (a.space == b.space && a.getValue() == b.getValue())
-                       return false;
-               return true;
-       }
+       void writeFile(std::ostream &, bool para = false) const;
+       ///
+       string const writeEnvirBegin() const;
+       ///
+       string const writeEnvirEnd() const;
 private:
        ///
        Space space;
@@ -98,4 +63,19 @@ private:
        float value;
 };
 
+
+///
+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