/**
* \file vspace.C
- * Copyright 1995-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author Matthias Ettrich
+ *
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include "vspace.h"
-#include "lengthcommon.h"
#include "buffer.h"
-#include "lyxrc.h"
-#include "lyxtext.h"
+#include "bufferparams.h"
#include "BufferView.h"
-#include "support/LAssert.h"
+#include "lengthcommon.h"
+#include "lyxtext.h"
#include "support/lstrings.h"
-#include <cstdio>
+using lyx::support::compare;
+using lyx::support::isStrDbl;
+using lyx::support::ltrim;
+using lyx::support::prefixIs;
+using lyx::support::rtrim;
+using lyx::support::strToDbl;
+
+using std::string;
-#ifndef CXX_GLOBAL_CSTD
-using std::sscanf;
-#endif
namespace {
string::size_type const length = input.length();
- if (length > 1 && input[length-1] == '*') {
+ if (length > 1 && input[length - 1] == '*') {
keep_ = true;
input.erase(length - 1);
}
else if (prefixIs (input, "bigskip")) kind_ = BIGSKIP;
else if (prefixIs (input, "vfill")) kind_ = VFILL;
else if (isValidGlueLength(input, &len_)) kind_ = LENGTH;
- else if (sscanf(input.c_str(), "%lf", &value) == 1) {
+ else if (isStrDbl(input)) {
+ value = strToDbl(input);
// This last one is for reading old .lyx files
// without units in added_space_top/bottom.
// Let unit default to centimeters here.
}
-LyXGlueLength VSpace::length() const
+LyXGlueLength const & VSpace::length() const
{
return len_;
}
-int VSpace::inPixels(BufferView const * bv) const
+int VSpace::inPixels(BufferView const & bv) const
{
// Height of a normal line in pixels (zoom factor considered)
- int const default_height = bv->text->defaultHeight(); // [pixels]
+ int const default_height = defaultRowHeight(); // [pixels]
int retval = 0;
switch (kind_) {
+
case NONE:
- // Value for this is already set
+ // value for this is already set
break;
+
case DEFSKIP:
- retval = bv->buffer()->params.getDefSkip().inPixels(bv);
+ retval = bv.buffer()->params().getDefSkip().inPixels(bv);
break;
- // This is how the skips are normally defined by
- // LateX. But there should be some way to change
- // this per document.
+ // This is how the skips are normally defined by LateX.
+ // But there should be some way to change this per document.
case SMALLSKIP:
retval = default_height / 4;
break;
retval = 3 * default_height;
break;
- case LENGTH: {
- int const default_width = bv->workWidth();
- retval = len_.len().inPixels(default_width, default_height);
+ case LENGTH:
+ retval = len_.len().inPixels(bv.workWidth());
break;
- }
}
return retval;