X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Ftypes.h;h=cb1de177ac3d12c29b1b85ee2b2d61ebb4619695;hb=342cdf432246110db37bee4e0aebb4b72c933ddb;hp=f7dfad62feb78675b802b4a8dbb7fffcfbd16645;hpb=af7109795725294e87e7c2fd29d13eddb837c769;p=lyx.git diff --git a/src/support/types.h b/src/support/types.h index f7dfad62fe..cb1de177ac 100644 --- a/src/support/types.h +++ b/src/support/types.h @@ -1,35 +1,46 @@ +// -*- C++ -*- +/** + * \file types.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * Provide a set of typedefs for commonly used things like sizes and + * indices wile trying to stay compatible with types used + * by the standard containers. + * + * \author André Pönitz + * + * Full author contact details are available in file CREDITS. + */ + #ifndef LYX_TYPES_H #define LYX_TYPES_H -// provide a set of typedefs for commonly used things like sizes and -// indices while trying to stay compatible with types used by the standard -// containers. - +#include -// this probably could be improved by using ... -#include +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::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::size_type size_type; - - /// a type used for numbering layouts within a text class - // used to be LyXTextClass::size_type - typedef std::vector::size_type layout_type; + typedef size_t size_type; /// a type used for numbering text classes - // used to be LyXTextClassList::size_type - typedef std::vector::size_type textclass_type; + typedef size_t textclass_type; #else @@ -39,7 +50,7 @@ namespace lyx struct size_type { /// - typedef std::vector::size_type base_type; + typedef size_t base_type; /// size_type(base_type t) { data_ = t; } /// @@ -48,26 +59,10 @@ namespace lyx private: base_type data_; }; - - - struct layout_type { - /// - typedef std::vector::size_type base_type; - /// - layout_type(base_type t) { data_ = t; } - /// - operator base_type() const { return data_; } - /// - void operator++() { ++data_; } - /// - private: - base_type data_; - }; - struct textclass_type { /// - typedef std::vector::size_type base_type; + typedef size_t base_type; /// textclass_type(base_type t) { data_ = t; } /// @@ -76,10 +71,25 @@ namespace lyx private: base_type data_; }; - + #endif -} + /// + enum word_location { + // the word around the cursor, only if the cursor is + //not at a boundary + WHOLE_WORD_STRICT, + // the word around the cursor + WHOLE_WORD, + /// the word begining from the cursor position + PARTIAL_WORD, + /// the word around the cursor or before the cursor + PREVIOUS_WORD, + /// the next word (not yet used) + NEXT_WORD + }; + +} // namespace lyx -#endif +#endif // LYX_TYPES_H