2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiCtrl_SliderPresenter.h
20 * @brief This is the header file for the _SliderPresenter class.
22 * This header file contains the declarations of the %_SliderPresenter class.
24 #ifndef _FUI_CTRL_INTERNAL_SLIDER_PRESENTER_H_
25 #define _FUI_CTRL_INTERNAL_SLIDER_PRESENTER_H_
27 #include <FBaseObject.h>
28 #include <FUiCtrlSlider.h>
29 #include <FGrp_TextTextObject.h>
30 #include "FUi_Control.h"
32 namespace Tizen { namespace Ui { namespace Controls
39 class _SliderPresenter
40 : public Tizen::Base::Object
41 , public Tizen::Base::Runtime::ITimerEventListener
44 virtual ~_SliderPresenter(void);
47 void SetMinValue(int minValue);
48 void SetMaxValue(int maxValue);
49 int GetMinValue(void) const;
50 int GetMaxValue(void) const;
51 void SetValue(int value);
52 int GetValue(void) const;
53 void SetNeedUpdate(void);
54 void SetGroupStyle(GroupStyle groupStyle);
56 Tizen::Graphics::FloatRectangle GetTitleTextBounds(void) const;
57 Tizen::Graphics::FloatRectangle GetIconBounds(IconPosition iconPosition) const;
58 Tizen::Graphics::FloatRectangle GetTouchBounds(void) const;
60 _SliderOverlay* GetSliderOverlay(void) const;
61 bool IsTouchPressed(void) const;
63 virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
64 virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
65 virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
66 virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
67 virtual void OnBoundsChanged(void);
68 virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
70 void OnFontChanged(Tizen::Graphics::Font* pFont);
71 void OnFontInfoRequested(unsigned long& style, float& size);
72 virtual void OnAncestorEnableStateChanged(const _Control& control);
73 virtual void OnAncestorVisibleStateChanged(const _Control& control);
75 static _SliderPresenter* CreateInstanceN(const _Slider& slider);
76 result SetThumbBitmap(SliderThumbStatus status, const Tizen::Graphics::Bitmap& bitmap);
77 void SetThumbTextColor(SliderThumbStatus status, const Tizen::Graphics::Color& color);
78 void SetFocusMode(bool focusmode);
79 bool GetFocusMode(void);
80 virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
83 int CalculateSliderValue(float positionX, float offsetX);
85 result LoadBitmap(void);
86 result DrawSlider(void);
87 result DrawBackground(Tizen::Graphics::Canvas& canvas);
88 result DrawSliderBar(Tizen::Graphics::Canvas& canvas);
89 result DrawTitleText(Tizen::Graphics::Canvas& canvas);
90 result DrawIcon(Tizen::Graphics::Canvas& canvas);
91 result DrawSliderOverlay(int value);
92 result DrawSliderBarNumber(int value);
93 result DrawBitmap(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::FloatRectangle& bounds, Tizen::Graphics::Bitmap* pBitmap);
95 _SliderPresenter(void);
96 _SliderPresenter(const _SliderPresenter&);
97 _SliderPresenter& operator =(const _SliderPresenter&);
101 static const int SLIDER_HANDLE_THREE_DIGIT = 3;
102 static const int SLIDER_HANDLE_TWO_DIGIT = 2;
105 _SliderModel* __pSliderModel;
106 _SliderOverlay* __pSliderOverlay;
107 Tizen::Graphics::FloatRectangle __rect;
108 Tizen::Graphics::FloatRectangle __touchRect;
109 Tizen::Graphics::FloatRectangle __barBgRect;
110 Tizen::Graphics::FloatRectangle __barRect;
111 Tizen::Graphics::FloatRectangle __handleRect;
113 Tizen::Base::Runtime::Timer* __pSlideTimer;
115 Tizen::Graphics::Bitmap* __pResourceBgTopBitmap;
116 Tizen::Graphics::Bitmap* __pResourceBgMiddleBitmap;
117 Tizen::Graphics::Bitmap* __pResourceBgBottomBitmap;
118 Tizen::Graphics::Bitmap* __pResourceBgSingleBitmap;
121 Tizen::Graphics::Bitmap* __pBgTopBitmap;
122 Tizen::Graphics::Bitmap* __pBgMiddleBitmap;
123 Tizen::Graphics::Bitmap* __pBgBottomBitmap;
124 Tizen::Graphics::Bitmap* __pBgSingleBitmap;
125 Tizen::Graphics::Bitmap* __pBgGrpStyleNoneBitmap;
127 Tizen::Graphics::Bitmap* __pBgTopEffectBitmap;
128 Tizen::Graphics::Bitmap* __pBgMiddleEffectBitmap;
129 Tizen::Graphics::Bitmap* __pBgBottomEffectBitmap;
130 Tizen::Graphics::Bitmap* __pBgSingleEffectBitmap;
132 Tizen::Graphics::Bitmap* __pResourceBarBitmap;
133 Tizen::Graphics::Bitmap* __pResourceBarBgBitmap;
134 Tizen::Graphics::Bitmap* __pBarResourceEffectBitmap;
135 Tizen::Graphics::Bitmap* __pBarBgResourceEffectBitmap;
136 Tizen::Graphics::Bitmap* __pBarColorReplacementBitmap;
137 Tizen::Graphics::Bitmap* __pBarBgColorReplacementBitmap;
139 Tizen::Graphics::Bitmap* __pHandleNormalBitmap;
140 Tizen::Graphics::Bitmap* __pHandlePressedBitmap;
141 Tizen::Graphics::Bitmap* __pHandleDisabledBitmap;
142 Tizen::Graphics::Bitmap* __pHandleHighlightedBitmap;
144 Tizen::Graphics::Bitmap* __pHandleNormalEffectBitmap;
145 Tizen::Graphics::Bitmap* __pHandlePressedEffectBitmap;
146 Tizen::Graphics::Bitmap* __pHandleDisabledEffectBitmap;
147 Tizen::Graphics::Bitmap* __pHandleHighlightedEffectBitmap;
149 Tizen::Graphics::Color __currentBarColor;
150 Tizen::Graphics::Color __currentBarBgColor;
151 Tizen::Graphics::Color __currentBgColor;
152 Tizen::Graphics::Color __currentGrpStyleNoneColor;
154 Tizen::Graphics::Color __handleTextColor;
155 Tizen::Graphics::Color __handleTextPressedColor;
156 Tizen::Graphics::Color __handleTextDisabledColor;
157 Tizen::Graphics::Color __handleTextHighlightedColor;
159 Tizen::Graphics::Font* __pFont;
160 Tizen::Graphics::_Text::TextObject* __pTitleTextObject;
163 int __prevSliderValue;
165 bool __isSliderPressed;
167 bool __isFocusModeStateChanged;
169 bool __isNeedToBeUpdated;
170 bool __isResourceLoaded;
171 bool __isCustomHandle;
172 bool __isCustomPressedTextColor;
173 bool __isTouchCanceled;
174 GroupStyle __groupStyle;
178 bool __isTimerRunning;
180 Tizen::Graphics::FloatPoint __currentPosition;
181 static const int __timerValue = 5;
182 }; // _SliderPresenter
184 }}} // Tizen::Ui::Controls
186 #endif // _FUI_CTRL_INTERNAL_SLIDER_PRESENTER_H_