]> git.lyx.org Git - lyx.git/blobdiff - src/Bullet.h
Wininstaller, fix bug where previous installations, with emergency version greater...
[lyx.git] / src / Bullet.h
index 8e753ce14e7ce64072865e1051f6abe5f72a7133..6a4f997acbc5c2523e0331b622a107839fda864f 100644 (file)
@@ -1,36 +1,31 @@
 // -*- C++ -*-
-/* This is the bullet class definition file.
- * This file is part of
- * ====================================================== 
+/**
+ * \file Bullet.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           LyX, The Document Processor
+ * \author Lars Gullik Bjønnes
+ * \author Allan Rae
  *
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
- *
- *           This file Copyright 1997-1999
- *           Allan Rae
- * ====================================================== */
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef BULLET_H
 #define BULLET_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include "support/docstring.h"
 
-#include "LString.h"
 
-#include "support/LAssert.h"
+namespace lyx {
 
 ///
 class Bullet {
 public:
        ///
-       Bullet(const int f = -1, const int c = -1, const int s = -1);
+       Bullet(int f = -1, int c = -1, int s = -1);
 
        ///
-       Bullet(string const &);
+       explicit Bullet(docstring const &);
 
        ///
        void setCharacter(int);
@@ -39,7 +34,7 @@ public:
        ///
        void setSize(int);
        ///
-       void setText(string const &);
+       void setText(docstring const &);
        ///
        int getCharacter() const;
        ///
@@ -47,50 +42,20 @@ public:
        ///
        int getSize() const;
        ///
-       string getText() const;
-       ///
-       string getText();
+       docstring const & getText() const;
        ///
-       char const * c_str();
-       ///
-       Bullet & operator = (Bullet const &);
+       Bullet & operator=(Bullet const &);
        ///
        friend bool operator==(Bullet const &, Bullet const &);
-       ///
-       friend bool operator!=(Bullet const & b1, Bullet const & b2) {
-               return !(b1 == b2);
-       }
 protected:
-#ifdef ENABLE_ASSERTIONS
-       void testInvariant() const {
-               Assert(font >= MIN);
-               Assert(font < FONTMAX);
-               Assert(character >= MIN);
-               Assert(character < CHARMAX);
-               Assert(size >= MIN);
-               Assert(size < SIZEMAX);
-               Assert(user_text >= -1);
-               Assert(user_text <= 1);
-               // now some relational/operational tests
-               if (user_text == 1) {
-                       Assert(font == -1 && (character == -1 && size == -1));
-                       //        Assert(!text.empty()); // this isn't necessarily an error
-               }
-               //      else if (user_text == -1) {
-               //        Assert(!text.empty()); // this also isn't necessarily an error
-               //      }
-               //      else {
-               //        // user_text == 0
-               //        Assert(text.empty()); // not usually true
-               //      }
-       }
-#endif
+       ///
+       void testInvariant() const;
 private:
        /**
           This enum makes adding additional panels or changing panel sizes
           easier. Since you only need change these values for all tests to
           be correct for the new values.
-          
+
           Note: MAX means the size of the array so to test you need:
           (x < MAX)  *not* (x <= MAX)
        */
@@ -104,155 +69,52 @@ private:
                ///
                SIZEMAX = 10
        };
-       
+
        ///
-       void generateText();
+       void generateText() const;
        ///
-       static string bulletSize(short int);
+       static docstring const bulletSize(int);
        ///
-       static string bulletEntry(short int, short int);
-       
+       static docstring const bulletEntry(int, int);
+
        ///
-       short font;
+       int font;
        ///
-       short character;
+       int character;
        ///
-       short size;
-       
-       // size, character and font are array indices to access 
+       int size;
+
+       // size, character and font are array indices to access
        // the predefined arrays of LaTeX equivalent strings.
-       
+
        /** flag indicates if user has control of text (1)
            or if I can use it to generate strings (0)
            or have already (-1)
        */
-       short user_text; 
-       
+       mutable short user_text;
+
        //NOTE: Arranging these four shorts above to be together
        //      like this should ensure they are in a single cache line
-       
+
        /** text may contain a user-defined LaTeX symbol command
            or one generated internally from the font, character
            and size settings.
        */
-       string text;
+       mutable docstring text;
 };
 
 
-/*----------------Inline Bullet Member Functions------------------*/
-
-inline Bullet::Bullet(string const & t) 
-       :  font(MIN), character(MIN), size(MIN), user_text(1), text(t)
-{
-#ifdef ENABLE_ASSERTIONS
-       testInvariant();
-#endif
-}
-
-
-inline void Bullet::setCharacter(int c)
-{
-       if (c < MIN || c >= CHARMAX) {
-               character = MIN;
-       } else {
-               character = c;
-       }
-       user_text = 0;
-#ifdef ENABLE_ASSERTIONS
-       testInvariant();
-#endif
-}
-
-
-inline void Bullet::setFont(int f)
-{
-       if (f < MIN || f >= FONTMAX) {
-               font = MIN;
-       } else {
-               font = f;
-       }
-       user_text = 0;
-#ifdef ENABLE_ASSERTIONS
-       testInvariant();
-#endif
-}
-
-
-inline void Bullet::setSize(int s)
-{
-       if (s < MIN || s >= SIZEMAX) {
-               size = MIN;
-       } else {
-               size = s;
-       }
-       user_text = 0;
-#ifdef ENABLE_ASSERTIONS
-       testInvariant();
-#endif
-}
-
-
-inline void Bullet::setText(string const & t)
+inline
+bool operator!=(Bullet const & b1, Bullet const & b2)
 {
-       font = character = size = MIN;
-       user_text = 1;
-       text = t;
-#ifdef ENABLE_ASSERTIONS
-       testInvariant();
-#endif
+       return !(b1 == b2);
 }
 
-
-inline int Bullet::getCharacter() const
-{
-       return character;
-}
-
-
-inline int Bullet::getFont() const
-{
-       return font;
-}
-
-
-inline int Bullet::getSize() const
-{
-       return size;
-}
-
-
-inline string Bullet::getText() const
-{
-       return text;
-}
-
-
-inline Bullet & Bullet::operator=(Bullet const & b)
-{
-#ifdef ENABLE_ASSERTIONS
-       b.testInvariant();
-#endif
-       font = b.font;
-       character = b.character;
-       size = b.size;
-       user_text = b.user_text;
-       text = b.text;
-#ifdef ENABLE_ASSERTIONS
-       this->testInvariant();
-#endif
-       return *this;
-}
-
-
-inline char const * Bullet::c_str()
-{
-       return this->getText().c_str();
-}
-
-
-/*-----------------End Bullet Member Functions-----------------*/
-
+///
 extern
 Bullet const ITEMIZE_DEFAULTS[];
 
+
+} // namespace lyx
+
 #endif /* BULLET_H_ */