Otclient  14/8/2020
cachedtext.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010-2020 OTClient <https://github.com/edubart/otclient>
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  * THE SOFTWARE.
21  */
22 
23 #ifndef CACHEDTEXT_H
24 #define CACHEDTEXT_H
25 
26 #include "declarations.h"
27 #include "coordsbuffer.h"
28 
30 {
31 public:
32  CachedText();
33 
34  void draw(const Rect& rect);
35 
36  void wrapText(int maxWidth);
37  void setFont(const BitmapFontPtr& font) { m_font = font; update(); }
38  void setText(const std::string& text) { m_text = text; update(); }
39  void setAlign(Fw::AlignmentFlag align) { m_align = align; update(); }
40 
41  Size getTextSize() { return m_textSize; }
42  std::string getText() const { return m_text; }
43  BitmapFontPtr getFont() const { return m_font; }
44  Fw::AlignmentFlag getAlign() { return m_align; }
45 
46 private:
47  void update();
48 
49  std::string m_text;
50  Size m_textSize;
51  stdext::boolean<true> m_textMustRecache;
52  CoordsBuffer m_textCoordsBuffer;
53  Rect m_textCachedScreenCoords;
54  BitmapFontPtr m_font;
55  Fw::AlignmentFlag m_align;
56 };
57 
58 #endif
CachedText::getTextSize
Size getTextSize()
Definition: cachedtext.h:41
TRect< int >
CachedText
Definition: cachedtext.h:29
coordsbuffer.h
CachedText::wrapText
void wrapText(int maxWidth)
Definition: cachedtext.cpp:58
CachedText::getFont
BitmapFontPtr getFont() const
Definition: cachedtext.h:43
CachedText::setFont
void setFont(const BitmapFontPtr &font)
Definition: cachedtext.h:37
stdext::boolean< true >
CachedText::setText
void setText(const std::string &text)
Definition: cachedtext.h:38
CachedText::getText
std::string getText() const
Definition: cachedtext.h:42
CachedText::setAlign
void setAlign(Fw::AlignmentFlag align)
Definition: cachedtext.h:39
Fw::AlignmentFlag
AlignmentFlag
Definition: const.h:192
CachedText::draw
void draw(const Rect &rect)
Definition: cachedtext.cpp:34
declarations.h
CachedText::CachedText
CachedText()
Definition: cachedtext.cpp:28
stdext::shared_object_ptr< BitmapFont >
CachedText::getAlign
Fw::AlignmentFlag getAlign()
Definition: cachedtext.h:44
CoordsBuffer
Definition: coordsbuffer.h:29
TSize< int >