X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBullet.h;h=6a4f997acbc5c2523e0331b622a107839fda864f;hb=f16b2cab75752e7b0fbec5520e231b068eb29072;hp=2e4a73a48aec70da6d79d722b3e1a5a1c5d59b2d;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/Bullet.h b/src/Bullet.h index 2e4a73a48a..6a4f997acb 100644 --- a/src/Bullet.h +++ b/src/Bullet.h @@ -1,50 +1,40 @@ // -*- 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 (C) 1997-1998 Allan Rae - * and the LyX Team - * - *======================================================*/ - -// $Id: Bullet.h,v 1.1 1999/09/27 18:44:36 larsbj Exp $ + * Full author contact details are available in file CREDITS. + */ -#ifndef BULLET_H_ -#define BULLET_H_ +#ifndef BULLET_H +#define BULLET_H -#ifdef __GNUG__ -#pragma interface -#endif +#include "support/docstring.h" -#include "LString.h" -#ifdef DEBUG_AS_DEFAULT -#include -#endif +namespace lyx { /// class Bullet { public: /// - Bullet(const int f = -1, const int c = -1, const int s = -1); - - /// - Bullet(const LString &); + Bullet(int f = -1, int c = -1, int s = -1); /// - ~Bullet(); + explicit Bullet(docstring const &); /// - void setCharacter(const int); + void setCharacter(int); /// - void setFont(const int); + void setFont(int); /// - void setSize(const int); + void setSize(int); /// - void setText(const LString &); + void setText(docstring const &); /// int getCharacter() const; /// @@ -52,58 +42,23 @@ public: /// int getSize() const; /// - LString getText() const; - /// - LString getText(); - /// - char const * c_str(); - /// - Bullet & operator = (const Bullet &); + docstring const & getText() const; /// - friend bool operator == (const Bullet &, const Bullet &); + Bullet & operator=(Bullet const &); /// - friend bool operator != (const Bullet & b1, const Bullet & b2) - { - return !(b1 == b2); - } - - + friend bool operator==(Bullet const &, Bullet const &); protected: -#ifdef DEBUG_AS_DEFAULT - 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) - */ + 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) + */ enum { /// MIN = -1, @@ -116,163 +71,50 @@ private: }; /// - void generateText(); + void generateText() const; /// - static const LString & bulletSize(const short &); + static docstring const bulletSize(int); /// - static const LString & bulletEntry(const short &, const short &); + 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 LStrings (0) - or have already (-1) - */ - short user_text; + or if I can use it to generate strings (0) + or have already (-1) + */ + 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. - */ - LString text; + or one generated internally from the font, character + and size settings. + */ + mutable docstring text; }; -/*----------------Inline Bullet Member Functions------------------*/ - -inline Bullet::Bullet(const LString & t) - : font(MIN), character(MIN), size(MIN), user_text(1), text(t) -{ -#ifdef DEBUG_AS_DEFAULT - testInvariant(); -#endif -} - - -inline Bullet::~Bullet() -{} - - -inline void Bullet::setCharacter(const int c) -{ - if (c < MIN || c >= CHARMAX) { - character = MIN; - } - else { - character = c; - } - user_text = 0; -#ifdef DEBUG_AS_DEFAULT - testInvariant(); -#endif -} - - -inline void Bullet::setFont(const int f) -{ - if (f < MIN || f >= FONTMAX) { - font = MIN; - } - else { - font = f; - } - user_text = 0; -#ifdef DEBUG_AS_DEFAULT - testInvariant(); -#endif -} - - -inline void Bullet::setSize(const int s) +inline +bool operator!=(Bullet const & b1, Bullet const & b2) { - if (s < MIN || s >= SIZEMAX) { - size = MIN; - } - else { - size = s; - } - user_text = 0; -#ifdef DEBUG_AS_DEFAULT - testInvariant(); -#endif + return !(b1 == b2); } - -inline void Bullet::setText(const LString & t) -{ - font = character = size = MIN; - user_text = 1; - text = t; -#ifdef DEBUG_AS_DEFAULT - testInvariant(); -#endif -} - - -inline int Bullet::getCharacter() const -{ - return character; -} - - -inline int Bullet::getFont() const -{ - return font; -} - - -inline int Bullet::getSize() const -{ - return size; -} - - -inline LString Bullet::getText() const -{ - return text; -} - - -inline Bullet & Bullet::operator = (const Bullet & b) -{ -#ifdef DEBUG_AS_DEFAULT - b.testInvariant(); -#endif - font = b.font; - character = b.character; - size = b.size; - user_text = b.user_text; - text = b.text; -#ifdef DEBUG_AS_DEFAULT - this->testInvariant(); -#endif - return *this; -} - - -inline const char * Bullet::c_str() -{ - return this->getText().c_str(); -} +/// +extern +Bullet const ITEMIZE_DEFAULTS[]; -/*-----------------End Bullet Member Functions-----------------*/ +} // namespace lyx -/** The four LaTeX itemize environment default bullets - */ -static Bullet const ITEMIZE_DEFAULTS[4] = { Bullet( 0, 8 ),//"\\(\\bullet\\)" - Bullet( 0, 0 ),//"\\normalfont\\bfseries{--}" - Bullet( 0, 6 ),//"\\(\\ast\\)" - Bullet( 0,10 ) };//"\\(\\cdot\\)" #endif /* BULLET_H_ */