]> git.lyx.org Git - lyx.git/blobdiff - src/support/types.h
Now that exceptions are allowed, handle gracefully the case where a Buffer temp direc...
[lyx.git] / src / support / types.h
index c7711d87b82a4dc15631091747c042ffd51aecd6..206d2818b15672ca82067794227c4cf2fbde2ed4 100644 (file)
  *
  * \author André Pönitz
  *
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef LYX_TYPES_H
 #define LYX_TYPES_H
 
-// this probably could be improved by using <cstddef>...
-#include <vector>
+#include <cstddef>
+
+namespace lyx {
 
-namespace lyx
-{
        /// a type for positions used in paragraphs
        // needs to be signed for a while to hold the special value -1 that is
-       // used there...
-       typedef std::vector<char>::difference_type   pos_type;
+       // used there
+       typedef ptrdiff_t  pos_type;
+
+       /// a type for paragraph offsets
+       // FIXME: should be unsigned as well.
+       // however, simply changing it breaks a downward loop somewhere...
+       typedef ptrdiff_t  pit_type;
 
+       /// a type for the nesting depth of a paragraph
+       typedef size_t     depth_type;
 
 // set this to '0' if you want to have really safe types
 #if 1
 
        /// a type for sizes
-       typedef std::vector<char>::size_type         size_type;
+       typedef size_t     size_type;
 
        /// a type used for numbering text classes
-       // used to be LyXTextClassList::size_type
-       typedef std::vector<char>::size_type         textclass_type;
+       typedef size_t     textclass_type;
 
 #else
 
@@ -45,7 +50,7 @@ namespace lyx
 
        struct size_type {
                ///
-               typedef std::vector<char>::size_type  base_type;
+               typedef size_t  base_type;
                ///
                size_type(base_type t) { data_ = t; }
                ///
@@ -57,7 +62,7 @@ namespace lyx
 
        struct textclass_type {
                ///
-               typedef std::vector<char>::size_type  base_type;
+               typedef size_t   base_type;
                ///
                textclass_type(base_type t) { data_ = t; }
                ///
@@ -85,6 +90,14 @@ namespace lyx
                NEXT_WORD
        };
 
-}
+       ///
+       enum PageSides {
+               ///
+               OneSide,
+               ///
+               TwoSides
+       };
+
+} // namespace lyx
 
 #endif // LYX_TYPES_H