Pioneer
GuiTextLayout.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _GUITEXTLAYOUT_H
5 #define _GUITEXTLAYOUT_H
6 
7 #include "text/TextureFont.h"
8 
9 namespace Graphics {
10  class Vertexbuffer;
11 }
12 
13 namespace Gui {
14  class TextLayout {
15  public:
17  ColourMarkupNone, // treats markup as normal text
18  ColourMarkupSkip, // skips markup tags
19  ColourMarkupUse // interprets markup tags
20  };
22  void Render(const float layoutWidth, const Color &color = Color::WHITE) const;
23  void Update(const float layoutWidth, const Color &color = Color::WHITE);
24  void SetText(const char *_str);
25  void MeasureSize(const float layoutWidth, float outSize[2]) const;
26  void _MeasureSizeRaw(const float layoutWidth, float outSize[2]) const;
27  void SetJustified(bool v) { m_justify = v; }
28 
29  private:
30  struct word_t {
31  const char *word;
32  const float advx;
33  word_t(const char *_word, const float _advx) :
34  word(_word),
35  advx(_advx) {}
36  };
37  std::list<word_t> words;
38  std::string str;
39  bool m_justify;
40  ColourMarkupMode m_colourMarkup;
41 
42  float prevWidth;
43  Color prevColor;
44 
47  };
48 } // namespace Gui
49 
50 #endif /* _GUITEXTLAYOUT_H */
Definition: GuiTextLayout.h:14
void MeasureSize(const float layoutWidth, float outSize[2]) const
Definition: GuiTextLayout.cpp:75
void SetJustified(bool v)
Definition: GuiTextLayout.h:27
ColourMarkupMode
Definition: GuiTextLayout.h:16
@ ColourMarkupUse
Definition: GuiTextLayout.h:19
@ ColourMarkupSkip
Definition: GuiTextLayout.h:18
@ ColourMarkupNone
Definition: GuiTextLayout.h:17
void Update(const float layoutWidth, const Color &color=Color::WHITE)
Definition: GuiTextLayout.cpp:108
void Render(const float layoutWidth, const Color &color=Color::WHITE) const
Definition: GuiTextLayout.cpp:84
TextLayout(const char *_str, RefCountedPtr< Text::TextureFont > font=RefCountedPtr< Text::TextureFont >(0), ColourMarkupMode markup=ColourMarkupUse)
Definition: GuiTextLayout.cpp:14
void _MeasureSizeRaw(const float layoutWidth, float outSize[2]) const
Definition: GuiTextLayout.cpp:228
void SetText(const char *_str)
Definition: GuiTextLayout.cpp:28
Definition: Background.h:13
Definition: Gui.cpp:10
Definition: Color.h:66
static const Color4ub WHITE
Definition: Color.h:141