Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIRangeSlider.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(EXAMPLE_CONTROL_H)
11#define EXAMPLE_CONTROL_H
12
13#include "GUIAbstractBar.h"
14#include "GUIRange.h"
15#include "GUINinePatch.h"
16#include "GUICommonEnums.h"
17
18#include "GUIImageResource.h"
19
24{
25public:
35 CGUICompositeObject* const pkParent,
36 const eC_Value& vX, const eC_Value& vY,
37 const eC_Value& vWidth, const eC_Value& vHeight,
38 const ObjectHandle_t &eID = NO_HANDLE);
39
41
42 virtual ~CGUIRangeSlider();
43
50 const ImageResource_t& eBackgroundImage,
51 const ImageResource_t& eHandle,
52 const ImageResource_t& eRange);
53
60 ImageResource_t& eBackgroundImage,
61 ImageResource_t& eHandle,
62 ImageResource_t& eRange) const;
63
68
73
78 void SetMargin(const eC_Value& vMarginX, const eC_Value& vMarginY);
79
84 void GetMargin(eC_Value& vMarginX, eC_Value& vMarginY);
85
89 const CGUIRange& GetRange2() const;
90
91 virtual eC_Bool DoButtonDown(const eC_Value& vAbsX, const eC_Value& vAbsY);
92
93 virtual eC_Bool DoDrag(const eC_Value& vDeltaX, const eC_Value& vDeltaY, const eC_Value& vAbsX, const eC_Value& vAbsY);
94
95 virtual eC_Bool DoDragEnd(const eC_Value& vAbsX, const eC_Value& vAbsY);
96
97 virtual eC_Bool DoClick(const eC_Value& vAbsX, const eC_Value& vAbsY);
98
99 virtual eC_Bool SetValue(const CGUIValue& rkValue);
100
105 virtual eC_Bool SetValue2(const CGUIValue& rkValue);
106
107 virtual void SetWidth(const eC_Value& vWidth);
108 virtual void SetHeight(const eC_Value& vHeight);
109
110#if defined(GUILIANI_STREAM_GUI)
115 virtual void ReadFromStream();
116#endif
117
118#if defined(GUILIANI_WRITE_GUI)
124 virtual void WriteToStream(const eC_Bool bWriteClassID=false);
125#endif
126
127 virtual eC_Bool IsHighlightable() const { return false; }
128
129protected:
130 virtual eC_Bool DoDraw();
131
132private:
133 enum MovingPart_t
134 {
135 MP_NONE,
136 MP_HANDLE1,
137 MP_HANDLE2,
138 MP_MIDDLE
139 };
140
141 void Init();
142
143 void DeInit();
144
145 void CalculateImageSizes();
146 void CalculateValues();
147 void CalculateHandle();
148
149 void MoveHandle(const eC_Value& vDeltaX, const eC_Value& vDeltaY, const eC_Value& vAbsX, const eC_Value& vAbsY);
150
151private:
152 // streamed members
153 CGUICommonEnums::Orientation_t m_eOrientation;
154 ImageResource_t m_eBackground;
155 ImageResource_t m_eRange;
156 ImageResource_t m_eHandle;
157
158 eC_Value m_vMarginX;
159 eC_Value m_vMarginY;
160
161 // internal members
162 MovingPart_t m_eMovingHandle;
163
164 CGUIRect m_kHandle1;
165 CGUIRect m_kHandle2;
166
167 eC_Value m_vHandleWidth;
168 eC_Value m_vHandleHeight;
169 eC_Value m_vRangeWidth;
170 eC_Value m_vRangeHeight;
171
172 eC_Value m_vBackgroundWidth;
173 eC_Value m_vBackgroundHeight;
174 eC_Value m_vBackgroundPosX;
175 eC_Value m_vBackgroundPosY;
176
177 CGUIRect m_kRangeRect;
178
179 CGUIRange m_kRange2;
180
181 eC_Bool m_bSelfUpdate;
182};
183
184#endif
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
Base class for bars.
Definition: GUIAbstractBar.h:33
Orientation_t
orientation of controls
Definition: GUICommonEnums.h:57
This is the Guiliani base class for all composite objects.
Definition: GUICompositeObject.h:70
Helper class to supply a platform independent range implementation.
Definition: GUIRange.h:67
Definition: GUIRangeSlider.h:24
virtual eC_Bool DoButtonDown(const eC_Value &vAbsX, const eC_Value &vAbsY)
CGUIRangeSlider(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)
virtual void ReadFromStream()
virtual eC_Bool DoDraw()
virtual void WriteToStream(const eC_Bool bWriteClassID=false)
virtual eC_Bool DoClick(const eC_Value &vAbsX, const eC_Value &vAbsY)
virtual void SetHeight(const eC_Value &vHeight)
const CGUIRange & GetRange2() const
void GetImages(ImageResource_t &eBackgroundImage, ImageResource_t &eHandle, ImageResource_t &eRange) const
CGUICommonEnums::Orientation_t GetOrientation() const
void SetMargin(const eC_Value &vMarginX, const eC_Value &vMarginY)
virtual void SetWidth(const eC_Value &vWidth)
virtual eC_Bool SetValue2(const CGUIValue &rkValue)
virtual eC_Bool DoDrag(const eC_Value &vDeltaX, const eC_Value &vDeltaY, const eC_Value &vAbsX, const eC_Value &vAbsY)
void SetImages(const ImageResource_t &eBackgroundImage, const ImageResource_t &eHandle, const ImageResource_t &eRange)
virtual eC_Bool DoDragEnd(const eC_Value &vAbsX, const eC_Value &vAbsY)
virtual eC_Bool IsHighlightable() const
Definition: GUIRangeSlider.h:127
virtual eC_Bool SetValue(const CGUIValue &rkValue)
void GetMargin(eC_Value &vMarginX, eC_Value &vMarginY)
void SetOrientation(const CGUICommonEnums::Orientation_t &eOrientation)
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