X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBullet.h;h=bc9f837343f0e455994efd902b12b3d9afc70563;hb=31059d1741933d95403e7f07ed033cae482f778b;hp=8aa09dd84fa7ddf8e4c3077f4780b36452b29929;hpb=abb623f7872ba960a92a6d069dcb6aa5add0d8b0;p=lyx.git diff --git a/src/Bullet.h b/src/Bullet.h index 8aa09dd84f..bc9f837343 100644 --- a/src/Bullet.h +++ b/src/Bullet.h @@ -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(); - /// - char const * c_str() const; + docstring const & getText() const; /// - 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,166 +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) -{ - font = character = size = MIN; - user_text = 1; - text = t; -#ifdef ENABLE_ASSERTIONS - testInvariant(); -#endif -} - - -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 +bool operator!=(Bullet const & b1, Bullet const & b2) { - return text; + return !(b1 == b2); } - -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() const -{ - return this->getText().c_str(); -} - - -/*-----------------End Bullet Member Functions-----------------*/ - +/// extern Bullet const ITEMIZE_DEFAULTS[]; + +} // namespace lyx + #endif /* BULLET_H_ */