mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
132 lines
2.4 KiB
C++
132 lines
2.4 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file Bullet.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Lars Gullik Bjønnes
|
|
* \author Allan Rae
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef BULLET_H
|
|
#define BULLET_H
|
|
|
|
#include "FontEnums.h"
|
|
|
|
#include "support/docstring.h"
|
|
|
|
|
|
namespace lyx {
|
|
|
|
///
|
|
class Bullet {
|
|
public:
|
|
///
|
|
Bullet(int f = -1, int c = -1, int s = -1);
|
|
|
|
///
|
|
explicit Bullet(docstring const &);
|
|
|
|
///
|
|
void setCharacter(int);
|
|
///
|
|
void setFont(int);
|
|
///
|
|
void setSize(int);
|
|
///
|
|
void setText(docstring const &);
|
|
///
|
|
int getCharacter() const;
|
|
///
|
|
int getFont() const;
|
|
///
|
|
int getSize() const;
|
|
///
|
|
FontSize getFontSize() const;
|
|
/// The text to be output
|
|
docstring const & getText() const;
|
|
/// The label displayed in the workarea
|
|
docstring const & getLabel() const;
|
|
///
|
|
Bullet & operator=(Bullet const &);
|
|
///
|
|
friend bool operator==(Bullet const &, Bullet const &);
|
|
///
|
|
static docstring const bulletEntry(int, int);
|
|
protected:
|
|
///
|
|
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)
|
|
*/
|
|
enum {
|
|
///
|
|
MIN = -1,
|
|
///
|
|
FONTMAX = 6,
|
|
///
|
|
CHARMAX = 36,
|
|
///
|
|
SIZEMAX = 10
|
|
};
|
|
|
|
///
|
|
void generateText() const;
|
|
///
|
|
static docstring const bulletSize(int);
|
|
///
|
|
static FontSize bulletFontSize(int);
|
|
///
|
|
static docstring const bulletLabel(int, int);
|
|
|
|
///
|
|
int font;
|
|
///
|
|
int character;
|
|
///
|
|
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)
|
|
*/
|
|
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.
|
|
*/
|
|
mutable docstring text;
|
|
mutable docstring label;
|
|
};
|
|
|
|
|
|
inline
|
|
bool operator!=(Bullet const & b1, Bullet const & b2)
|
|
{
|
|
return !(b1 == b2);
|
|
}
|
|
|
|
///
|
|
extern
|
|
Bullet const ITEMIZE_DEFAULTS[];
|
|
|
|
|
|
} // namespace lyx
|
|
|
|
#endif /* BULLET_H_ */
|