]> git.lyx.org Git - lyx.git/blobdiff - src/Spacing.cpp
Bulk cleanup/fix incorrect annotation at the end of namespaces.
[lyx.git] / src / Spacing.cpp
index 1f226cae41dfb8e696dc090d7607cbb42eb3b433..cd5816e60031398f5cc9450e5c8ebe3a41c15ca1 100644 (file)
@@ -3,7 +3,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author Jean-Marc Lasgouttes
  *
  * Full author contact details are available in file CREDITS.
@@ -15,8 +15,7 @@
 #include "support/lstrings.h"
 #include "support/convert.h"
 
-#include <sstream>
-#include <string>
+#include <ostream>
 
 using namespace std;
 
@@ -89,50 +88,59 @@ void Spacing::writeFile(ostream & os, bool para) const
 }
 
 
+namespace {
+
+string envName(Spacing::Space space, bool useSetSpace)
+{
+       static char const * const env_names[]
+               = { "SingleSpace", "OnehalfSpace", "DoubleSpace", "Spacing", ""};
+       string const name = env_names[space];
+
+       return useSetSpace ? name : support::ascii_lowercase(name);
+}
+
+} // namespace
+
 string const Spacing::writeEnvirBegin(bool useSetSpace) const
 {
-       switch (space) {
-       case Default: break; // do nothing
-       case Single:
-               return (useSetSpace ? "\\begin{SingleSpace}"
-                       : "\\begin{singlespace}");
-       case Onehalf:
-               return (useSetSpace ? "\\begin{OnehalfSpace}"
-                       : "\\begin{onehalfspace}");
-       case Double:
-               return (useSetSpace ? "\\begin{DoubleSpace}" 
-                       : "\\begin{doublespace}");
-       case Other:
-       {
-               ostringstream ost;
-               ost << (useSetSpace ? "\\begin{Spacing}{"
-                       : "\\begin{spacing}{" )
-                   << getValueAsString() << '}';
-               return ost.str();
-       }
-       }
-       return string();
+       string const name = envName(space, useSetSpace);
+       if (space == Other)
+               return "\\begin{" + name + "}{" + getValueAsString() + '}';
+       else
+               return name.empty() ? string() : "\\begin{" + name + '}';
 }
 
 
 string const Spacing::writeEnvirEnd(bool useSetSpace) const
 {
+       string const name = envName(space, useSetSpace);
+       return name.empty() ? string() : "\\end{" + name + '}';
+}
+
+
+string const Spacing::writePreamble(bool useSetSpace) const
+{
+       string preamble;
        switch (space) {
-       case Default: break; // do nothing
+       case Default:
        case Single:
-               return (useSetSpace ? "\\end{SingleSpace}"
-                       : "\\end{singlespace}");
+               // we dont use setspace.sty so dont print anything
+               //return "\\singlespacing\n";
+               break;
        case Onehalf:
-               return (useSetSpace ? "\\end{OnehalfSpace}"
-                       : "\\end{onehalfspace}");
+               preamble = useSetSpace ? "\\OnehalfSpacing\n"
+                       : "\\onehalfspacing\n";
+               break;
        case Double:
-               return (useSetSpace ? "\\end{DoubleSpace}" 
-                       : "\\end{doublespace}");
+               preamble = useSetSpace ? "\\DoubleSpacing\n"
+                       : "\\doublespacing\n";
+               break;
        case Other:
-               return (useSetSpace ? "\\end{Spacing}" : "\\end{spacing}") ;
+               preamble = (useSetSpace ? "\\setSpacing{" : "\\setstretch{")
+                       + getValueAsString() + "}\n";
+               break;
        }
-       return string();
+       return preamble;
 }
 
-
 } // namespace lyx