Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIClock.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#ifndef _GUICLOCK_H_
11#define _GUICLOCK_H_
12
13#include "GUIObject.h"
14#include "GUIColorPropertyObserver.h"
15#include "GUIImageResource.h"
16
21{
22public:
23
34 CGUICompositeObject* const pkParent,
35 const eC_Value& vX,
36 const eC_Value& vY,
37 const eC_Value& vWidth,
38 const eC_Value& vHeight,
39 const ObjectHandle_t& eID = NO_HANDLE);
40
54 CGUICompositeObject* const pkParent,
55 const eC_Value& vX,
56 const eC_Value& vY,
57 const eC_Value& vWidth,
58 const eC_Value& vHeight,
59 const eC_UByte& ubHours,
60 const eC_UByte& ubMinutes,
61 const eC_UByte& ubSeconds,
62 const ObjectHandle_t& eID = NO_HANDLE);
63
80 CGUICompositeObject* const pkParent,
81 const eC_Value& vX,
82 const eC_Value& vY,
83 const eC_Value& vWidth,
84 const eC_Value& vHeight,
85 const eC_UByte& ubHours,
86 const eC_UByte& ubMinutes,
87 const eC_UByte& ubSeconds,
88 const eC_UInt& uiHourHandleColor,
89 const eC_UInt& uiMinuteHandleColor,
90 const eC_UInt& uiSecondHandleColor,
91 const ObjectHandle_t& eID = NO_HANDLE);
92
112 CGUICompositeObject* const pkParent,
113 const eC_Value& vX,
114 const eC_Value& vY,
115 const eC_Value& vWidth,
116 const eC_Value& vHeight,
117 const eC_UByte& ubHours,
118 const eC_UByte& ubMinutes,
119 const eC_UByte& ubSeconds,
120 const eC_UInt& uiHourHandleColor,
121 const eC_UInt& uiMinuteHandleColor,
122 const eC_UInt& uiSecondHandleColor,
123 const eC_Value& vHourNeedleLength,
124 const eC_Value& vMinuteNeedleLength,
125 const eC_Value& vSecondNeedleLength,
126 const ObjectHandle_t& eID = NO_HANDLE);
127
150 CGUICompositeObject* const pkParent,
151 const eC_Value& vX,
152 const eC_Value& vY,
153 const eC_Value& vWidth,
154 const eC_Value& vHeight,
155 const eC_UByte& ubHours,
156 const eC_UByte& ubMinutes,
157 const eC_UByte& ubSeconds,
158 const eC_UInt& uiHourHandleColor,
159 const eC_UInt& uiMinuteHandleColor,
160 const eC_UInt& uiSecondHandleColor,
161 const eC_Value& vHourNeedleLength,
162 const eC_Value& vMinuteNeedleLength,
163 const eC_Value& vSecondNeedleLength,
164 const eC_Value& vHourNeedleWidth,
165 const eC_Value& vMinuteNeedleWidth,
166 const eC_Value& vSecondNeedleWidth,
167 const ObjectHandle_t& eID = NO_HANDLE);
168
170 virtual ~CGUIClock();
171
172 virtual eC_Bool DoDraw();
173
174 virtual void DoAnimate(const eC_Value& vTimes);
175
176 virtual eC_Bool IsHighlightable() const { return false; }
177
192 const ImageResource_t& eImageBG,
193 const ImageResource_t& eImageHour,
194 const ImageResource_t& eImageMinute,
195 const ImageResource_t& eImageSecond);
196
204 ImageResource_t& eImageBG,
205 ImageResource_t& eImageHour,
206 ImageResource_t& eImageMinute,
207 ImageResource_t& eImageSecond) const;
208
213
214 // needle color
219 void SetHourNeedleColor(const eC_UInt& uiNeedleColor);
220
225 void SetHourNeedleColor(const GlobalProperty_t& eNeedleColor);
226
230 eC_UInt GetHourNeedleColor() const;
231
236 void SetMinuteNeedleColor(const eC_UInt& uiNeedleColor);
237
242 void SetMinuteNeedleColor(const GlobalProperty_t& eNeedleColor);
243
247 eC_UInt GetMinuteNeedleColor() const;
248
253 void SetSecondNeedleColor(const eC_UInt& uiNeedleColor);
254
259 void SetSecondNeedleColor(const GlobalProperty_t& eNeedleColor);
260
264 eC_UInt GetSecondNeedleColor() const;
265
269 void SetHourNeedleLength(const eC_Value& vNeedleLength);
270
274 eC_Value GetHourNeedleLength() const;
275
279 void SetMinuteNeedleLength(const eC_Value& vNeedleLength);
280
284 eC_Value GetMinuteNeedleLength() const;
285
290 void SetSecondNeedleLength(const eC_Value& vNeedleLength);
291
295 eC_Value GetSecondNeedleLength() const;
296
300 void SetHourNeedleWidth(const eC_Value& vNeedleWidth);
301
305 eC_Value GetHourNeedleWidth() const;
306
310 void SetMinuteNeedleWidth(const eC_Value& vNeedleWidth);
311
315 eC_Value GetMinuteNeedleWidth() const;
316
320 void SetSecondNeedleWidth(const eC_Value& vNeedleWidth);
321
325 eC_Value GetSecondNeedleWidth() const;
326
331 void ShowShadows(const eC_Bool& bShowShadow);
332
336 eC_Bool ShowShadows() const;
337
341 void SetShadowColor(const eC_UInt& uiShadowColor);
342
346 void SetShadowColor(const GlobalProperty_t& eShadowColor);
347
351 eC_UInt GetShadowColor() const;
352
356 void ShowSecondHandle(const eC_Bool& bShowSecondHandle);
357
361 eC_Bool ShowSecondHandle() const;
362
366 void SetAutoStart(const eC_Bool& bAutoStart);
367
371 eC_Bool GetAutoStart() const;
372
378 virtual eC_Bool SetValue(const CGUIValue& rkValue);
379
383 void SetTimeInSeconds(const eC_UInt& uiTimeInSeconds);
384
388 eC_UInt GetTimeInSeconds() const;
389
396 void SetTime(const eC_UByte& ubHours, const eC_UByte& ubMinutes, const eC_UByte& ubSeconds);
397
404 void GetTime(eC_UByte& ubHours, eC_UByte& ubMinutes, eC_UByte& ubSeconds) const;
405
410 void SetHour(const eC_UByte& uiHour);
411
416 eC_UByte GetHour() const;
417
422 void SetMinute(const eC_UByte& uiMinute);
423
428 eC_UByte GetMinute() const;
429
434 void SetSecond(const eC_UByte& uiSecond);
435
440 eC_UByte GetSecond() const;
441
442#ifdef GUILIANI_STREAM_GUI
448
449 virtual void ReadFromStream();
450#endif
451
452#ifdef GUILIANI_WRITE_GUI
453 virtual void WriteToStream(const eC_Bool bWriteClassID = false);
454#endif
455
456protected:
457#ifndef GUILIANI_STREAM_GUI
460 CGUIClock();
461#endif
462
463private:
464 void Init(
465 const eC_UByte& ubHours, const eC_UByte& ubMinutes, const eC_UByte& ubSeconds,
466 const eC_UInt& uiHourHandleColor, const eC_UInt& uiMinuteHandleColor, const eC_UInt& uiSecondHandleColor,
467 const eC_Value& vHourNeedlelength, const eC_Value& vMinuteNeedlelength, const eC_Value& vSecondNeedlelength,
468 const eC_Value& vHourNeedleWidth, const eC_Value& vMinuteNeedleWidth, const eC_Value& vSecondNeedleWidth
469 );
470
471 void DeInit();
472
473 eC_Value GetHourAngle() const;
474 eC_Value GetMinuteAngle() const;
475 eC_Value GetSecondAngle() const;
476
477 void DrawNeedle(eC_Value vAngle, eC_Value vWidth, eC_Value vlength, eC_UInt uiColor, eC_UInt uiShadowColor, ImageResource_t m_eImage);
478
479 void CalculateEndpoint(eC_Value vAngle, eC_Value vlength);
480 void RecalculateAngles();
481
482private:
483 static const eC_UInt INDEX_COLOR_HOUR;
484 static const eC_UInt INDEX_COLOR_MINUTE;
485 static const eC_UInt INDEX_COLOR_SECOND;
486 static const eC_UInt INDEX_COLOR_SHADOW;
487
488 //Clock backgroung
489 ImageResource_t m_eImageBackground;
490 //Handle Images
491 ImageResource_t m_eImageHourHandle;
492 ImageResource_t m_eImageMinuteHandle;
493 ImageResource_t m_eImageSecondHandle;
494
495 //time
496 eC_UByte m_ubHour;
497 eC_UByte m_ubMinute;
498 eC_UByte m_ubSecond;
499
500 eC_UByte m_ubStartHours;
501 eC_UByte m_ubStartMinutes;
502 eC_UByte m_ubStartSeconds;
503
504 //angles
505 eC_Value m_vHourAngle;
506 eC_Value m_vMinuteAngle;
507 eC_Value m_vSecondAngle;
508
509 eC_Value m_vExactSeconds;
510
511 // ------------NEEDLES------------
512 // End of the needle to be drawn
513 eC_Value m_vEndX;
514 eC_Value m_vEndY;
515
516 // Shadows
517 eC_Bool m_bShowShadows;
518
519 // lengths
520 eC_Value m_vHourNeedleLength;
521 eC_Value m_vMinuteNeedleLength;
522 eC_Value m_vSecondNeedleLength;
523
524 // Widths
525 eC_Value m_vHourNeedleWidth;
526 eC_Value m_vMinuteNeedleWidth;
527 eC_Value m_vSecondNeedleWidth;
528
529 eC_Bool m_bShowSecondHandle;
530
531 eC_Bool m_bAutoStart;
532};
533#endif // _GUICLOCK_H_
Helper Macros in Guiliani
ImageResource_t
Enumeration of image resource ids.
Definition: GUIImageResource.h:126
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
GlobalProperty_t
List of property resource ids.
Definition: GUIPropertyResource.h:67
This control can be used to display an analog clock.
Definition: GUIClock.h:21
void SetHourNeedleColor(const eC_UInt &uiNeedleColor)
void SetSecondNeedleLength(const eC_Value &vNeedleLength)
void SetMinuteNeedleLength(const eC_Value &vNeedleLength)
void SetImages(const ImageResource_t &eImageBG, const ImageResource_t &eImageHour, const ImageResource_t &eImageMinute, const ImageResource_t &eImageSecond)
virtual eC_Bool SetValue(const CGUIValue &rkValue)
void SetMinute(const eC_UByte &uiMinute)
void SetMinuteNeedleWidth(const eC_Value &vNeedleWidth)
eC_Value GetMinuteNeedleLength() const
void SetSecondNeedleWidth(const eC_Value &vNeedleWidth)
void SetShadowColor(const GlobalProperty_t &eShadowColor)
eC_UInt GetSecondNeedleColor() const
void SetShadowColor(const eC_UInt &uiShadowColor)
void GetTime(eC_UByte &ubHours, eC_UByte &ubMinutes, eC_UByte &ubSeconds) const
void SetSecondNeedleColor(const GlobalProperty_t &eNeedleColor)
void ShowShadows(const eC_Bool &bShowShadow)
CGUIClock(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
void SetAutoStart(const eC_Bool &bAutoStart)
eC_UInt GetShadowColor() const
eC_UInt GetMinuteNeedleColor() const
void SetHourNeedleColor(const GlobalProperty_t &eNeedleColor)
eC_UInt GetTimeInSeconds() const
CGUIClock(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_UByte &ubHours, const eC_UByte &ubMinutes, const eC_UByte &ubSeconds, const eC_UInt &uiHourHandleColor, const eC_UInt &uiMinuteHandleColor, const eC_UInt &uiSecondHandleColor, const eC_Value &vHourNeedleLength, const eC_Value &vMinuteNeedleLength, const eC_Value &vSecondNeedleLength, const eC_Value &vHourNeedleWidth, const eC_Value &vMinuteNeedleWidth, const eC_Value &vSecondNeedleWidth, const ObjectHandle_t &eID=NO_HANDLE)
CGUIClock(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_UByte &ubHours, const eC_UByte &ubMinutes, const eC_UByte &ubSeconds, const eC_UInt &uiHourHandleColor, const eC_UInt &uiMinuteHandleColor, const eC_UInt &uiSecondHandleColor, const eC_Value &vHourNeedleLength, const eC_Value &vMinuteNeedleLength, const eC_Value &vSecondNeedleLength, const ObjectHandle_t &eID=NO_HANDLE)
void SetMinuteNeedleColor(const eC_UInt &uiNeedleColor)
eC_UInt GetHourNeedleColor() const
virtual ~CGUIClock()
Destructor.
eC_Value GetHourNeedleLength() const
eC_Value GetSecondNeedleLength() const
eC_Bool ShowShadows() const
void SetMinuteNeedleColor(const GlobalProperty_t &eNeedleColor)
eC_UByte GetMinute() const
void SetStandardImages()
virtual eC_Bool DoDraw()
void GetImages(ImageResource_t &eImageBG, ImageResource_t &eImageHour, ImageResource_t &eImageMinute, ImageResource_t &eImageSecond) const
void SetHour(const eC_UByte &uiHour)
void ShowSecondHandle(const eC_Bool &bShowSecondHandle)
void SetHourNeedleLength(const eC_Value &vNeedleLength)
eC_Bool ShowSecondHandle() const
CGUIClock(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_UByte &ubHours, const eC_UByte &ubMinutes, const eC_UByte &ubSeconds, const eC_UInt &uiHourHandleColor, const eC_UInt &uiMinuteHandleColor, const eC_UInt &uiSecondHandleColor, const ObjectHandle_t &eID=NO_HANDLE)
eC_UByte GetSecond() const
virtual void WriteToStream(const eC_Bool bWriteClassID=false)
eC_Value GetMinuteNeedleWidth() const
CGUIClock(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_UByte &ubHours, const eC_UByte &ubMinutes, const eC_UByte &ubSeconds, const ObjectHandle_t &eID=NO_HANDLE)
void SetTimeInSeconds(const eC_UInt &uiTimeInSeconds)
void SetSecondNeedleColor(const eC_UInt &uiNeedleColor)
eC_Value GetHourNeedleWidth() const
eC_Bool GetAutoStart() const
virtual void DoAnimate(const eC_Value &vTimes)
virtual void ReadFromStream()
void SetSecond(const eC_UByte &uiSecond)
void SetTime(const eC_UByte &ubHours, const eC_UByte &ubMinutes, const eC_UByte &ubSeconds)
eC_UByte GetHour() const
void SetHourNeedleWidth(const eC_Value &vNeedleWidth)
eC_Value GetSecondNeedleWidth() const
virtual eC_Bool IsHighlightable() const
Definition: GUIClock.h:176
This observer provides the base-interface for controls when using color-properties.
Definition: GUIColorPropertyObserver.h:23
This is the Guiliani base class for all composite objects.
Definition: GUICompositeObject.h:70
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:79
CGUIValue stores a single value in one specific type.
Definition: GUIValue.h:25