* indices wile trying to stay compatible with types used
* by the standard containers.
*
- * \author André Pönitz
+ * \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#ifndef LYX_TYPES_H
#define LYX_TYPES_H
-#include <boost/cstdint.hpp>
-
#include <cstddef>
namespace lyx {
- /// The type used to hold characters in paragraphs
-#ifdef USE_WCHAR_T
- // Prefer this if possible because GNU libstdc++ has usable
- // std::ctype<wchar_t> locale facets but not
- // std::ctype<boost::uint32_t>. gcc older than 3.4 is also missing
- // usable std::char_traits<boost::uint32_t>.
- typedef wchar_t char_type;
-#else
- typedef boost::uint32_t char_type;
-#endif
-
- /// a type for positions used in paragraphs
- // needs to be signed for a while to hold the special value -1 that is
- // used there
+ /*!
+ * A type for positions used in paragraphs.
+ * Each position is either occupied by a single character or an inset.
+ * For insets, the placeholder META_INSET is stored in the paragraph
+ * text, and the actual insets are maintained separately.
+ */
+ // FIXME: should be unsigned, but needs to be signed for a while to
+ // hold the special value -1 that is used somewhere
+ // Note that the signed property is also used in loops counting to zero.
typedef ptrdiff_t pos_type;
- /// a type for paragraph offsets
+ /*!
+ * A type for paragraph offsets.
+ * This is used to address paragraphs in ParagraphList, Text etc.
+ */
// FIXME: should be unsigned as well.
// however, simply changing it breaks a downward loop somewhere...
typedef ptrdiff_t pit_type;
/// a type for sizes
typedef size_t size_type;
- /// a type used for numbering text classes
- typedef size_t textclass_type;
-
#else
// These structs wrap simple things to make them distinguishible
struct size_type {
///
- typedef size_t base_type;
+ typedef size_t base_type;
///
size_type(base_type t) { data_ = t; }
///
operator base_type() const { return data_; }
///
- private:
+ private:
base_type data_;
};
- struct textclass_type {
- ///
- typedef size_t base_type;
- ///
- textclass_type(base_type t) { data_ = t; }
- ///
- operator base_type() const { return data_; }
- ///
- private:
- base_type data_;
- };
-
-
#endif
///
enum word_location {
- // the word around the cursor, only if the cursor is
- //not at a boundary
+ /// the word around the cursor, only if the cursor is
+ /// not at a boundary
WHOLE_WORD_STRICT,
// the word around the cursor
WHOLE_WORD,
NEXT_WORD
};
+ ///
+ enum PageSides {
+ ///
+ OneSide,
+ ///
+ TwoSides
+ };
+
} // namespace lyx
#endif // LYX_TYPES_H