Guiliani  Version 2.6 revision 7293 (documentation build 12)
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#ifndef GUIRANGESLIDER_H
11#define GUIRANGESLIDER_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
81 void SetBackgroundMargin(const eC_Value& vBackgroundMargin);
82
83 eC_Value GetBackgroundMargin() const;
84
88 const CGUIRange& GetRange2() const;
89
90 virtual eC_Bool DoButtonDown(const eC_Value& vAbsX, const eC_Value& vAbsY);
91
92 virtual eC_Bool DoDrag(const eC_Value& vDeltaX, const eC_Value& vDeltaY, const eC_Value& vAbsX, const eC_Value& vAbsY);
93
94 virtual eC_Bool DoDragEnd(const eC_Value& vAbsX, const eC_Value& vAbsY);
95
96 virtual eC_Bool DoClick(const eC_Value& vAbsX, const eC_Value& vAbsY);
97
98 virtual eC_Bool SetValue(const CGUIValue& rkValue);
99
104 virtual eC_Bool SetValue2(const CGUIValue& rkValue);
105
106 virtual void SetWidth(const eC_Value& vWidth);
107 virtual void SetHeight(const eC_Value& vHeight);
108
109#if defined(GUILIANI_STREAM_GUI)
114 virtual void ReadFromStream();
115#endif
116
117#if defined(GUILIANI_WRITE_GUI)
123 virtual void WriteToStream(const eC_Bool bWriteClassID = false);
124#endif
125
126 virtual eC_Bool IsHighlightable() const { return false; }
127
128protected:
129 virtual eC_Bool DoDraw();
130
131private:
132 enum MovingPart_t
133 {
134 MP_NONE,
135 MP_HANDLE1,
136 MP_HANDLE2,
137 MP_MIDDLE
138 };
139
140 void Init();
141
142 void DeInit();
143
144 void CalculateImageSizes();
145 void CalculateValues();
146 void CalculateHandle();
147
148 void MoveHandle(const eC_Value& vDeltaX, const eC_Value& vDeltaY, const eC_Value& vAbsX, const eC_Value& vAbsY);
149
150private:
151 // streamed members
152 CGUICommonEnums::Orientation_t m_eOrientation;
153 ImageResource_t m_eBackground;
154 ImageResource_t m_eRange;
155 ImageResource_t m_eHandle;
156
157 eC_Value m_vBackgroundMargin;
158
159 // internal members
160 MovingPart_t m_eMovingHandle;
161
162 CGUIRect m_kHandle1;
163 CGUIRect m_kHandle2;
164
165 eC_Value m_vHandleWidth;
166 eC_Value m_vHandleHeight;
167 eC_Value m_vRangeWidth;
168 eC_Value m_vRangeHeight;
169
170 eC_Value m_vBackgroundWidth;
171 eC_Value m_vBackgroundHeight;
172 eC_Value m_vBackgroundPosX;
173 eC_Value m_vBackgroundPosY;
174
175 CGUIRect m_kRangeRect;
176
177 CGUIRange m_kRange2;
178
179 eC_Bool m_bSelfUpdate;
180};
181
182#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 SetBackgroundMargin(const eC_Value &vBackgroundMargin)
void GetImages(ImageResource_t &eBackgroundImage, ImageResource_t &eHandle, ImageResource_t &eRange) const
CGUICommonEnums::Orientation_t GetOrientation() const
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:126
virtual eC_Bool SetValue(const CGUIValue &rkValue)
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