Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIScrollingText.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#if !defined(SCROLLING_TEXT)
11#define SCROLLING_TEXT
12
13#include "GUIText.h"
14#include "GUIAnimatable.h"
15
16class CGUIObject;
17
30// @guiliani_doxygen limitations CGUIScrollingText
34// @endguiliani_doxygen
40{
41public:
53 const CGUIObject* const pkParentObject,
54 const eC_String &kText,
55 const eC_Value& vXPos=eC_FromInt(0),
56 const eC_Value& vYPos=eC_FromInt(0),
57 const eC_Bool &bSingleLine = true);
58
70 const CGUIObject* const pkParentObject,
71 const eC_String* const pkText,
72 const eC_Value& vXPos=eC_FromInt(0),
73 const eC_Value& vYPos=eC_FromInt(0),
74 const eC_Bool &bSingleLine = true);
75
87 const CGUIObject* const pkParentObject,
88 const TextResource_t &eTextID,
89 const eC_Value& vXPos=eC_FromInt(0),
90 const eC_Value& vYPos=eC_FromInt(0),
91 const eC_Bool &bSingleLine = true);
92
98
103 CGUIScrollingText(const CGUIScrollingText& rkScrollingText);
104
107
110 {
116 };
117
123 void SetAnimationMode(const ScrollingCondition_t eScrollingCondition);
124
128 virtual void DoAnimate(const eC_Value& vTimes = eC_FromInt(1));
129
133 void SetScrollVertical(const eC_Bool bScrollVertical);
134
138 void SetAnimationInterval(const eC_UInt uiAnimationInterval);
139
143 void SetAnimationStepSize(const eC_Int iAnimationStepSize);
144
150 void SetAnimationActive(const eC_Bool bAnimationActive);
151
158 void SetTextWidth(const eC_Value& vTextWidth);
159
166 void SetTextHeight(const eC_Value& vTextHeight);
167
171 eC_Value GetTextWidth() const;
172
176 eC_Value GetTextHeight() const;
177
178
184 void SetRelXPos(const eC_Value& vRelXPos);
185
191 void SetRelYPos(const eC_Value& vRelYPos);
192
196 eC_Value GetRelXPos() const;
197
201 eC_Value GetRelYPos() const;
202
207 void AdaptText();
208
214
217 virtual CGUIScrollingText* Clone() const;
218
219#if defined(GUILIANI_STREAM_GUI)
220 virtual void ReadFromStream();
221#endif
222
223#if defined(GUILIANI_WRITE_GUI)
224
225 virtual void WriteToStream(const eC_Bool bWriteTextType=false);
226#endif
227
228protected:
233
235 void PrintText();
236
241
244
246 eC_Bool IsScrollingTextCut() const { return m_bIsTextCut; }
247
248private:
250 void SetAnimationActiveInternal(const eC_Bool bAnimationActive);
251
252 void Init();
253
254private:
256 eC_Value m_vNonAnimatedTextSize;
257
259 eC_Value m_vNonAnimatedTextPos;
260
262 ScrollingCondition_t m_eScrollingCondition;
263
265 eC_Bool m_bScrollVertical;
266
268 eC_UInt m_uiAnimationInterval;
269
271 eC_Int m_iAnimationStepSize;
272
274 eC_Bool m_bIsTextCut;
275
277 eC_Bool m_bTextAttributesUpdated;
278};
279
280#endif // SCROLLING_TEXT
TextResource_t
List of text resource ids.
Definition: GUITextResource.h:40
Base interface for animation callbacks.
Definition: GUIAnimatable.h:51
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:79
A specialization of the GUIText which implements text scrolling.
Definition: GUIScrollingText.h:40
void SetTextWidth(const eC_Value &vTextWidth)
ScrollingCondition_t
Possible animation conditions.
Definition: GUIScrollingText.h:110
@ SCROLL_MANUALLY
The Animation can be started or stopped manually by calling SetAnimationActive().
Definition: GUIScrollingText.h:115
@ SCROLL_CUT_TEXT_FOCUSED
The text will be scrolled when the text is truncated and the parent object is focused.
Definition: GUIScrollingText.h:114
@ SCROLL_CUT_TEXT_ALWAYS
The text will be scrolled when the text is truncated.
Definition: GUIScrollingText.h:113
@ SCROLL_FOCUSED
The text will be scrolled when its parent object is focused.
Definition: GUIScrollingText.h:112
@ SCROLL_ALWAYS
The text will always be scrolled.
Definition: GUIScrollingText.h:111
void SetScrollVertical(const eC_Bool bScrollVertical)
eC_Value GetRelXPos() const
void UpdateIsTextCut()
Helper function for AdaptText() that updates m_bIsTextCut.
CGUIScrollingText(const CGUIText &rkText)
void SetAnimationInterval(const eC_UInt uiAnimationInterval)
CGUIScrollingText(const CGUIObject *const pkParentObject, const TextResource_t &eTextID, const eC_Value &vXPos=eC_FromInt(0), const eC_Value &vYPos=eC_FromInt(0), const eC_Bool &bSingleLine=true)
virtual void DoAnimate(const eC_Value &vTimes=eC_FromInt(1))
CGUIScrollingText(const CGUIObject *const pkParentObject, const eC_String *const pkText, const eC_Value &vXPos=eC_FromInt(0), const eC_Value &vYPos=eC_FromInt(0), const eC_Bool &bSingleLine=true)
void SetAnimationStepSize(const eC_Int iAnimationStepSize)
CGUIScrollingText(const CGUIObject *const pkParentObject, const eC_String &kText, const eC_Value &vXPos=eC_FromInt(0), const eC_Value &vYPos=eC_FromInt(0), const eC_Bool &bSingleLine=true)
void PrintText()
Calls the base implementation and resets the cliprect that is manipulated in PreparePrint().
void SetAnimationActive(const eC_Bool bAnimationActive)
void SetRelYPos(const eC_Value &vRelYPos)
void SetAnimationMode(const ScrollingCondition_t eScrollingCondition)
void ResetTextPosition()
eC_Value GetRelYPos() const
eC_Bool IsScrollingTextCut() const
Definition: GUIScrollingText.h:246
CGUIScrollingText(const CGUIScrollingText &rkScrollingText)
void SetTextHeight(const eC_Value &vTextHeight)
virtual void ReadFromStream()
eC_Value GetTextWidth() const
void SetRelXPos(const eC_Value &vRelXPos)
void CheckScrollingCondition()
virtual void WriteToStream(const eC_Bool bWriteTextType=false)
eC_Value GetTextHeight() const
virtual CGUIScrollingText * Clone() const
Class for handling a text.
Definition: GUIText.h:103