X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlength.h;h=1fc9e6f79cfa594d2a9fa6a2f07b043528399a94;hb=ba62665f966508db5a4de6864f4aa7374c5a5356;hp=01b6d3286f2d1ea559f0f17a30bfde2adb82cd32;hpb=236ea81bc5c0ce7101c9460d1ee97b8f3c9be9df;p=lyx.git diff --git a/src/lyxlength.h b/src/lyxlength.h index 01b6d3286f..1fc9e6f79c 100644 --- a/src/lyxlength.h +++ b/src/lyxlength.h @@ -15,7 +15,15 @@ #ifndef LYX_LENGTH_H #define LYX_LENGTH_H -#include "support/std_string.h" +#include "support/docstring.h" + + +namespace lyx { + +// Solaris/x86 version 9 and earlier define these +#undef PC +#undef SP + /** * LyXLength - Represents latex length measurement @@ -51,7 +59,13 @@ public: LyXLength(double v, LyXLength::UNIT u); /// "data" must be a decimal number, followed by a unit - explicit LyXLength(string const & data); + explicit LyXLength(std::string const & data); + + void swap(LyXLength & rhs) + { + std::swap(val_, rhs.val_); + std::swap(unit_, rhs.unit_); + } /// double value() const; @@ -66,15 +80,17 @@ public: /// bool empty() const; /// return string representation - string const asString() const; + std::string const asString() const; + /// return string representation + docstring const asDocstring() const; /// return string representation for LaTeX - string const asLatexString() const; + std::string const asLatexString() const; /// return the on-screen size of this length int inPixels(int text_width, int em_width = 0) const; /// return the on-screen size of this length of an image int inBP() const; - friend bool isValidLength(string const & data, LyXLength * result); + friend bool isValidLength(std::string const & data, LyXLength * result); private: /// @@ -87,10 +103,21 @@ private: bool operator==(LyXLength const & l1, LyXLength const & l2); /// bool operator!=(LyXLength const & l1, LyXLength const & l2); -/** If "data" is valid, the length represented by it is - stored into "result", if that is not 0. */ -bool isValidLength(string const & data, LyXLength * result = 0); -/// return the name of the given unit number +/** Test whether \p data represents a valid length. + * + * \returns whether \p data is a valid length + * \param data Length in LyX format. Since the only difference between LyX + * and LaTeX format is the representation of length variables as units (e.g. + * \c text% vs. \c \\textwidth) you can actually use this function as well + * for testing LaTeX lengths as long as they only contain real units like pt. + * \param result Pointer to a LyXLength variable. If \p result is not 0 and + * \p data is valid, the length represented by it is stored into \p result. + */ +bool isValidLength(std::string const & data, LyXLength * result = 0); +/// return the LyX name of the given unit number char const * stringFromUnit(int unit); + +} // namespace lyx + #endif // LYXLENGTH_H