Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUICenterFocusContainer.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 GUICENTERFOCUSCONTAINER__H_
11#define GUICENTERFOCUSCONTAINER__H_
12
13#include "GUICompositeObject.h"
14#include "SafeGUIObjectPtr.h"
15
17
18// @guiliani_doxygen toplevel_control Center Focus Container
31// @endguiliani_doxygen
65 : public CGUICompositeObject
66{
67public:
79 CGUICompositeObject* const pkParent,
80 const eC_Value& vX, const eC_Value& vY,
81 const eC_Value& vWidth, const eC_Value& vHeight,
82 const eC_Value& vCenterX, const eC_Value& vCenterY,
83 const ObjectHandle_t &eID = NO_HANDLE);
84
89
91
93 void Init();
94
101 void GetFocus();
102
107 virtual void DoAnimate(const eC_Value& vTimes = eC_FromInt(1));
108
112 void SetCenterObject(CGUIObject* const pkObject);
113
116 CGUIObject* GetCenterObject() const { return m_pkCenterObject; }
117
122 void SetInertia(eC_Value vInertiaX, eC_Value vInertiaY) { m_vInertiaX = vInertiaX; m_vInertiaY = vInertiaY; }
123
134
139 eC_Value GetFocusCenterRelY() const;
140
145 eC_Value GetFocusCenterRelX() const;
146
151 void SetFocusCenter(eC_Value vCenterX, eC_Value vCenterY);
152
157 void SetCenterOnImmediateChildrenOnly(eC_Bool bCenterOnImmediateChildrenOnly);
158
159 virtual eC_Bool DoDrag(
160 const eC_Value& vDeltaX,
161 const eC_Value& vDeltaY,
162 const eC_Value& vAbsX,
163 const eC_Value& vAbsY);
164
165 virtual eC_Bool DoDragEnd(
166 const eC_Value& vAbsX,
167 const eC_Value& vAbsY);
168
169#ifdef GUILIANI_STREAM_GUI
170 virtual void ReadFromStream();
171#endif
172#ifdef GUILIANI_WRITE_GUI
173 virtual void WriteToStream(const eC_Bool bWriteClassID = false);
174#endif
175
180
185
195 void SetDragSensitivity(eC_UInt uiHorizontalSensitivity, eC_UInt uiVerticalSensitivity)
196 {
197 m_uiHorDragSensitivity=uiHorizontalSensitivity;
198 m_uiVertDragSensitivity=uiVerticalSensitivity;
199 }
200
201private:
202 void StartDrag(eC_Value vAbsX, eC_Value vAbsY);
203
204 CSafeGUIObjectPtr m_pkCenterObject;
205 eC_Bool m_bCenterOnImmediateChildrenOnly;
206 eC_Value m_vInertiaX;
207 eC_Value m_vInertiaY;
208 eC_Value m_vFocusCenterX;
209 eC_Value m_vFocusCenterY;
210 eC_Value m_vTotalDragX;
211 eC_Value m_vTotalDragY;
212 eC_UInt m_uiVertDragSensitivity;
213 eC_UInt m_uiHorDragSensitivity;
214 eC_Bool m_bStopFocusState;
215 eC_Bool m_bDragging;
216};
217#endif
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
Container object which automatically centers on the currently focused child object.
Definition: GUICenterFocusContainer.h:66
void SetFocusCenter(eC_Value vCenterX, eC_Value vCenterY)
void Init()
Helper function for initialization.
eC_Value GetFocusCenterCurrentAbsY() const
virtual void WriteToStream(const eC_Bool bWriteClassID=false)
virtual eC_Bool DoDrag(const eC_Value &vDeltaX, const eC_Value &vDeltaY, const eC_Value &vAbsX, const eC_Value &vAbsY)
void SetDragSensitivity(eC_UInt uiHorizontalSensitivity, eC_UInt uiVerticalSensitivity)
Definition: GUICenterFocusContainer.h:195
eC_Value GetFocusCenterRelY() const
eC_Value GetFocusCenterRelX() const
void SetCenterObject(CGUIObject *const pkObject)
void SetCenterOnImmediateChildrenOnly(eC_Bool bCenterOnImmediateChildrenOnly)
virtual void ReadFromStream()
virtual eC_Bool DoDragEnd(const eC_Value &vAbsX, const eC_Value &vAbsY)
CGUIObject * GetCenterObject() const
Definition: GUICenterFocusContainer.h:116
CGUICenterFocusContainer(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_Value &vCenterX, const eC_Value &vCenterY, const ObjectHandle_t &eID=NO_HANDLE)
eC_Value GetFocusCenterCurrentAbsX() const
void SetInertia(eC_Value vInertiaX, eC_Value vInertiaY)
Definition: GUICenterFocusContainer.h:122
virtual void DoAnimate(const eC_Value &vTimes=eC_FromInt(1))
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:81
Smart pointer to a CGUIObject which will automatically be set to NULL if the corresponding GUIObject ...
Definition: SafeGUIObjectPtr.h:44