Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIImageStack.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(GUI_IMAGE_STACK_H)
11#define GUI_IMAGE_STACK_H
12
13#include "GUIAnimatedImage.h"
14
15// @guiliani_doxygen toplevel_control Image Stack
26// @endguiliani_doxygen
83{
84public:
95 CGUICompositeObject* const pkParent,
96 const eC_Value& vX, const eC_Value& vY,
97 const eC_Value& vWidth, const eC_Value& vHeight,
98 const eC_UInt& uiFrameDelay,
99 const ObjectHandle_t &eID = NO_HANDLE);
100
108 CGUICompositeObject* const pkParent,
109 const CGUIRect& kRect,
110 const eC_UInt& uiFrameDelay,
111 const ObjectHandle_t &eID = NO_HANDLE);
112
115
118
122 void ShowNext();
123
128
134 virtual eC_Bool SetValue(const CGUIValue& rkValue)
135 {
136 // Show image at index given by value
137 SetAnimationIndex(rkValue.ToInt());
138 CGUIObject::SetValue(rkValue);
139 return true;
140 }
141
142 virtual eC_Bool DoDraw();
143
146
149
153 virtual void DoAnimate(const eC_Value& vTimes = eC_FromInt(1));
154
161 void SetImages(eC_TArray<ImageResource_t> &aImages);
162
166 void SetFrameDelay(const eC_UInt& uiMs);
167
172 eC_UInt GetFrameDelay() const;
173
179 void SetAnimationIndex(const eC_UInt& uiIndex);
180
185 ImageResource_t GetImage(const eC_UInt& uiIndex) const;
186
190 eC_UInt GetIndexOfVisibleImage() const;
191
195 eC_UInt GetNumberOfImages() const;
196
203 eC_Bool DoKeyDown(
204 const GUIKeyIdentifier_t& eKeyID,
205 const eC_UInt& uiModifiers);
206
215 eC_Bool DoDrag(const eC_Value& vDeltaX, const eC_Value& vDeltaY, const eC_Value& vAbsX, const eC_Value& vAbsY);
216
217 eC_Bool DoButtonDown(const eC_Value& vAbsX, const eC_Value& vAbsY);
218
225 inline void SetMaximumZoomFactor(eC_Value vMaxFactor) { m_vMaxScale = vMaxFactor; }
226
233 inline void SetMinimumZoomFactor(eC_Value vMinFactor) { m_vMinScale = vMinFactor; }
234
241 inline void SetStaticZoomFactor(eC_Value vStaticFactor) { m_vStaticScale = vStaticFactor; InvalidateArea(); }
242
246 inline eC_Value GetMaximumZoomFactor() const { return m_vMaxScale; }
247
251 inline eC_Value GetMinimumZoomFactor() const { return m_vMinScale; }
252
256 inline eC_Value GetStaticZoomFactor() const { return m_vStaticScale; }
257
258#if defined(GUILIANI_STREAM_GUI)
263 virtual void ReadFromStream();
264#endif
265
266#if defined(GUILIANI_WRITE_GUI)
272 virtual void WriteToStream(const eC_Bool bWriteClassID = false);
273#endif
274
275protected:
282 void BlitScaledImage(ImageResource_t eID, eC_Value vScale, eC_Value vYOffset, eC_UByte ubAlpha);
283
286 {
289 AD_OUT
290 };
291
294
297
299 eC_TArray<ImageResource_t> m_aImageIDs;
300
303
306
309 eC_Value m_vMaxScale;
310
313 eC_Value m_vMinScale;
314
318
321
322private:
324 void Init();
325
327 void DeInit();
328};
329
330#endif // GUI_IMAGE_STACK_H
GUIKeyIdentifier_t
Platform independent key identifiers.
Definition: GUIEventTypeResource.h:205
ImageResource_t
Enumeration of image resource ids.
Definition: GUIImageResource.h:126
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
This is the Guiliani base class for all composite objects.
Definition: GUICompositeObject.h:70
Displays a static image in the GUI.
Definition: GUIImage.h:59
A specialization of CGUIAnimatedImage that shows zooming and fading effects for image transitions.
Definition: GUIImageStack.h:83
eC_Value m_vMinScale
Definition: GUIImageStack.h:313
virtual void ReadFromStream()
eC_Value m_vMaxScale
Definition: GUIImageStack.h:309
CGUIImageStack(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_UInt &uiFrameDelay, const ObjectHandle_t &eID=NO_HANDLE)
virtual void WriteToStream(const eC_Bool bWriteClassID=false)
void ShowPrevious()
void SetImages(eC_TArray< ImageResource_t > &aImages)
eC_Value GetMinimumZoomFactor() const
Definition: GUIImageStack.h:251
eC_Bool DoButtonDown(const eC_Value &vAbsX, const eC_Value &vAbsY)
eC_UInt m_uiFrameDelay
Time in milliseconds how long a single image of the animation will be displayed.
Definition: GUIImageStack.h:302
void SetMaximumZoomFactor(eC_Value vMaxFactor)
Definition: GUIImageStack.h:225
void SetStaticZoomFactor(eC_Value vStaticFactor)
Definition: GUIImageStack.h:241
void SetFrameDelay(const eC_UInt &uiMs)
virtual eC_Bool DoDraw()
eC_Value m_vDragStartY
Starting position of last drag event in absolute coordinates.
Definition: GUIImageStack.h:320
virtual eC_Bool SetValue(const CGUIValue &rkValue)
Definition: GUIImageStack.h:134
eC_Value GetMaximumZoomFactor() const
Definition: GUIImageStack.h:246
eC_Value GetStaticZoomFactor() const
Definition: GUIImageStack.h:256
void StopAnimation()
Immediately stops the animation.
AnimationDirection
Internal animation direction types.
Definition: GUIImageStack.h:286
@ AD_IN
Animating "into the screen" (front to back).
Definition: GUIImageStack.h:288
@ AD_NONE
No current animation.
Definition: GUIImageStack.h:287
@ AD_OUT
Animating "out of the screen" (back to front).
Definition: GUIImageStack.h:289
CGUIImageStack(CGUICompositeObject *const pkParent, const CGUIRect &kRect, const eC_UInt &uiFrameDelay, const ObjectHandle_t &eID=NO_HANDLE)
void SetMinimumZoomFactor(eC_Value vMinFactor)
Definition: GUIImageStack.h:233
eC_UInt m_uiVisibleImageIndex
Index of currently displayed image in array of images.
Definition: GUIImageStack.h:305
eC_Value m_vStaticScale
Definition: GUIImageStack.h:317
eC_UInt GetFrameDelay() const
void BlitScaledImage(ImageResource_t eID, eC_Value vScale, eC_Value vYOffset, eC_UByte ubAlpha)
AnimationDirection m_eDirection
Current animation direction.
Definition: GUIImageStack.h:293
CGUIImageStack()
Default constructor for factories.
void SetAnimationIndex(const eC_UInt &uiIndex)
virtual void DoAnimate(const eC_Value &vTimes=eC_FromInt(1))
eC_TArray< ImageResource_t > m_aImageIDs
Array of image ids within animation.
Definition: GUIImageStack.h:299
virtual ~CGUIImageStack()
Destructor.
eC_UInt GetNumberOfImages() const
eC_UInt GetIndexOfVisibleImage() const
eC_Bool DoKeyDown(const GUIKeyIdentifier_t &eKeyID, const eC_UInt &uiModifiers)
eC_Bool DoDrag(const eC_Value &vDeltaX, const eC_Value &vDeltaY, const eC_Value &vAbsX, const eC_Value &vAbsY)
ImageResource_t GetImage(const eC_UInt &uiIndex) const
void StartAnimation()
Starts the animation.
eC_Value m_vAnimationPercentage
Animation progress in percent.
Definition: GUIImageStack.h:296
virtual eC_Bool SetValue(const CGUIValue &rkValue)
Definition: GUIObject.h:1059
void InvalidateArea()
Helper class to supply a platform independent rectangle implementation.
Definition: GUIRect.h:63
CGUIValue stores a single value in one specific type.
Definition: GUIValue.h:25
eC_Int ToInt() const