* qt_helpers.cpp:
[lyx.git] / src / Bullet.h
blob6a4f997acbc5c2523e0331b622a107839fda864f
1 // -*- C++ -*-
2 /**
3 * \file Bullet.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
8 * \author Allan Rae
10 * Full author contact details are available in file CREDITS.
13 #ifndef BULLET_H
14 #define BULLET_H
16 #include "support/docstring.h"
19 namespace lyx {
21 ///
22 class Bullet {
23 public:
24 ///
25 Bullet(int f = -1, int c = -1, int s = -1);
27 ///
28 explicit Bullet(docstring const &);
30 ///
31 void setCharacter(int);
32 ///
33 void setFont(int);
34 ///
35 void setSize(int);
36 ///
37 void setText(docstring const &);
38 ///
39 int getCharacter() const;
40 ///
41 int getFont() const;
42 ///
43 int getSize() const;
44 ///
45 docstring const & getText() const;
46 ///
47 Bullet & operator=(Bullet const &);
48 ///
49 friend bool operator==(Bullet const &, Bullet const &);
50 protected:
51 ///
52 void testInvariant() const;
53 private:
54 /**
55 This enum makes adding additional panels or changing panel sizes
56 easier. Since you only need change these values for all tests to
57 be correct for the new values.
59 Note: MAX means the size of the array so to test you need:
60 (x < MAX) *not* (x <= MAX)
62 enum {
63 ///
64 MIN = -1,
65 ///
66 FONTMAX = 6,
67 ///
68 CHARMAX = 36,
69 ///
70 SIZEMAX = 10
73 ///
74 void generateText() const;
75 ///
76 static docstring const bulletSize(int);
77 ///
78 static docstring const bulletEntry(int, int);
80 ///
81 int font;
82 ///
83 int character;
84 ///
85 int size;
87 // size, character and font are array indices to access
88 // the predefined arrays of LaTeX equivalent strings.
90 /** flag indicates if user has control of text (1)
91 or if I can use it to generate strings (0)
92 or have already (-1)
94 mutable short user_text;
96 //NOTE: Arranging these four shorts above to be together
97 // like this should ensure they are in a single cache line
99 /** text may contain a user-defined LaTeX symbol command
100 or one generated internally from the font, character
101 and size settings.
103 mutable docstring text;
107 inline
108 bool operator!=(Bullet const & b1, Bullet const & b2)
110 return !(b1 == b2);
114 extern
115 Bullet const ITEMIZE_DEFAULTS[];
118 } // namespace lyx
120 #endif /* BULLET_H_ */