#include "buffer.h"
#include "bufferparams.h"
#include "BufferView.h"
+#include "gettext.h"
#include "lengthcommon.h"
#include "lyxtext.h"
+#include "support/convert.h"
#include "support/lstrings.h"
-using lyx::support::compare;
-using lyx::support::isStrDbl;
-using lyx::support::ltrim;
-using lyx::support::prefixIs;
-using lyx::support::rtrim;
-using lyx::support::strToDbl;
+
+namespace lyx {
+
+using support::compare;
+using support::isStrDbl;
+using support::ltrim;
+using support::prefixIs;
+using support::rtrim;
using std::string;
lyx_advance(data, 1);
return '+';
}
-
+
if (prefixIs(data, "plus")) {
lyx_advance(data, 4);
return '+';
}
-
+
if (data[0] == '-') {
lyx_advance(data, 1);
return '-';
lyx_advance(data, i);
if (isStrDbl(buffer)) {
- number[number_index] = strToDbl(buffer);
+ number[number_index] = convert<double>(buffer);
++number_index;
return 'n';
}
const char * stringFromUnit(int unit)
{
- if (unit < 0 || unit >= num_units)
+ if (unit < 0 || unit > num_units)
return 0;
return unit_name[unit];
}
//
VSpace::VSpace()
- : kind_(NONE), len_(), keep_(false)
+ : kind_(DEFSKIP), len_(), keep_(false)
{}
VSpace::VSpace(string const & data)
- : kind_(NONE), len_(), keep_(false)
+ : kind_(DEFSKIP), len_(), keep_(false)
{
if (data.empty())
return;
// without units in added_space_top/bottom.
// Let unit default to centimeters here.
kind_ = LENGTH;
- len_ = LyXGlueLength(LyXLength(strToDbl(input), LyXLength::CM));
+ len_ = LyXGlueLength(LyXLength(convert<double>(input), LyXLength::CM));
}
}
{
string result;
switch (kind_) {
- case NONE: break;
case DEFSKIP: result = "defskip"; break;
case SMALLSKIP: result = "smallskip"; break;
case MEDSKIP: result = "medskip"; break;
case VFILL: result = "vfill"; break;
case LENGTH: result = len_.asString(); break;
}
- if (keep_ && kind_ != NONE && kind_ != DEFSKIP)
+ if (keep_)
result += '*';
return result;
}
case VFILL:
return keep_ ? "\\vspace*{\\fill}" : "\\vfill{}";
- case LENGTH:
+ case LENGTH:
return keep_ ? "\\vspace*{" + len_.asLatexString() + '}'
: "\\vspace{" + len_.asLatexString() + '}';
- case NONE:
- return string();
-
default:
BOOST_ASSERT(false);
return string();
}
+docstring const VSpace::asGUIName() const
+{
+ docstring result;
+ switch (kind_) {
+ case DEFSKIP:
+ result = _("Default skip");
+ break;
+ case SMALLSKIP:
+ result = _("Small skip");
+ break;
+ case MEDSKIP:
+ result = _("Medium skip");
+ break;
+ case BIGSKIP:
+ result = _("Big skip");
+ break;
+ case VFILL:
+ result = _("Vertical fill");
+ break;
+ case LENGTH:
+ result = from_ascii(len_.asString());
+ break;
+ }
+ if (keep_)
+ result += ", " + _("protected");
+ return result;
+}
+
int VSpace::inPixels(BufferView const & bv) const
{
// Height of a normal line in pixels (zoom factor considered)
- int const default_height = defaultRowHeight();
+ int const default_height = defaultRowHeight();
switch (kind_) {
case LENGTH:
return len_.len().inPixels(bv.workWidth());
- case NONE:
- return 0;
-
default:
BOOST_ASSERT(false);
return 0;
}
}
+
+
+} // namespace lyx