2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
18 * @file FUiCtrl_SliderPresenter.h
19 * @brief This is the header file for the _SliderPresenter class.
21 * This header file contains the declarations of the %_SliderPresenter class.
23 #ifndef _FUI_CTRL_INTERNAL_SLIDER_PRESENTER_H_
24 #define _FUI_CTRL_INTERNAL_SLIDER_PRESENTER_H_
26 #include <FBaseObject.h>
27 #include <FUiCtrlSlider.h>
28 #include <FGrp_TextTextObject.h>
29 #include "FUi_Control.h"
31 namespace Tizen { namespace Ui { namespace Controls
38 class _SliderPresenter
39 : public Tizen::Base::Object
42 virtual ~_SliderPresenter(void);
45 void SetMinValue(int minValue);
46 void SetMaxValue(int maxValue);
47 int GetMinValue(void) const;
48 int GetMaxValue(void) const;
49 void SetValue(int value);
50 int GetValue(void) const;
51 void SetNeedUpdate(void);
52 void SetGroupStyle(GroupStyle groupStyle);
54 Tizen::Graphics::Rectangle GetTitleTextBounds(void) const;
55 Tizen::Graphics::Rectangle GetIconBounds(IconPosition iconPosition) const;
56 Tizen::Graphics::Rectangle GetTouchBounds(void) const;
58 virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
59 virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
60 virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
61 virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
62 virtual void OnBoundsChanged(void);
64 void OnFontChanged(Tizen::Graphics::Font* pFont);
65 void OnFontInfoRequested(unsigned long& style, int& size);
67 static _SliderPresenter* CreateInstanceN(const _Slider& slider);
68 result SetThumbBitmap(SliderThumbStatus status, const Tizen::Graphics::Bitmap& bitmap);
69 void SetThumbTextColor(SliderThumbStatus status, const Tizen::Graphics::Color& color);
72 int CalculateSliderValue(int positionX, int offsetX);
74 result LoadBitmap(void);
75 result DrawSlider(void);
76 result DrawBackground(Tizen::Graphics::Canvas& canvas);
77 result DrawSliderBar(Tizen::Graphics::Canvas& canvas);
78 result DrawTitleText(Tizen::Graphics::Canvas& canvas);
79 result DrawIcon(Tizen::Graphics::Canvas& canvas);
80 result DrawSliderOverlay(int value);
81 result DrawSliderBarNumber(int value);
82 result DrawBitmap(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::Rectangle& bounds, Tizen::Graphics::Bitmap* pBitmap);
84 _SliderPresenter(void);
85 _SliderPresenter(const _SliderPresenter&);
86 _SliderPresenter& operator =(const _SliderPresenter&);
90 static const int SLIDER_HANDLE_THREE_DIGIT = 3;
91 static const int SLIDER_HANDLE_TWO_DIGIT = 2;
94 _SliderModel* __pSliderModel;
95 _SliderOverlay* __pSliderOverlay;
96 Tizen::Graphics::Rectangle __rect;
97 Tizen::Graphics::Rectangle __touchRect;
98 Tizen::Graphics::Rectangle __barBgRect;
99 Tizen::Graphics::Rectangle __barRect;
100 Tizen::Graphics::Rectangle __handleRect;
102 Tizen::Graphics::Bitmap* __pResourceBgTopBitmap;
103 Tizen::Graphics::Bitmap* __pResourceBgMiddleBitmap;
104 Tizen::Graphics::Bitmap* __pResourceBgBottomBitmap;
105 Tizen::Graphics::Bitmap* __pResourceBgSingleBitmap;
108 Tizen::Graphics::Bitmap* __pBgTopBitmap;
109 Tizen::Graphics::Bitmap* __pBgMiddleBitmap;
110 Tizen::Graphics::Bitmap* __pBgBottomBitmap;
111 Tizen::Graphics::Bitmap* __pBgSingleBitmap;
112 Tizen::Graphics::Bitmap* __pBgGrpStyleNoneBitmap;
114 Tizen::Graphics::Bitmap* __pBgTopEffectBitmap;
115 Tizen::Graphics::Bitmap* __pBgMiddleEffectBitmap;
116 Tizen::Graphics::Bitmap* __pBgBottomEffectBitmap;
117 Tizen::Graphics::Bitmap* __pBgSingleEffectBitmap;
120 Tizen::Graphics::Bitmap* __pResourceBarBitmap;
121 Tizen::Graphics::Bitmap* __pBarResourceEffectBitmap;
122 Tizen::Graphics::Bitmap* __pBarBgResourceEffectBitmap;
123 Tizen::Graphics::Bitmap* __pBarColorReplacementBitmap;
124 Tizen::Graphics::Bitmap* __pBarBgColorReplacementBitmap;
126 Tizen::Graphics::Bitmap* __pHandleNormalBitmap;
127 Tizen::Graphics::Bitmap* __pHandlePressedBitmap;
128 Tizen::Graphics::Bitmap* __pHandleDisabledBitmap;
129 Tizen::Graphics::Bitmap* __pHandleHighlightedBitmap;
131 Tizen::Graphics::Bitmap* __pHandleNormalEffectBitmap;
132 Tizen::Graphics::Bitmap* __pHandlePressedEffectBitmap;
133 Tizen::Graphics::Bitmap* __pHandleDisabledEffectBitmap;
134 Tizen::Graphics::Bitmap* __pHandleHighlightedEffectBitmap;
136 Tizen::Graphics::Color __currentBarColor;
137 Tizen::Graphics::Color __currentBgColor;
138 Tizen::Graphics::Color __currentGrpStyleNoneColor;
140 Tizen::Graphics::Color __handleTextColor;
141 Tizen::Graphics::Color __handleTextPressedColor;
142 Tizen::Graphics::Color __handleTextDisabledColor;
143 Tizen::Graphics::Color __handleTextHighlightedColor;
145 Tizen::Graphics::Font* __pFont;
146 Tizen::Graphics::_Text::TextObject* __pTitleTextObject;
150 bool __isSliderPressed;
152 bool __isNeedToBeUpdated;
153 bool __isBubblingBlocked;
154 bool __isResourceLoaded;
155 bool __isCustomHandle;
156 bool __isCustomPressedTextColor;
157 GroupStyle __groupStyle;
159 }; // _SliderPresenter
161 }}} // Tizen::Ui::Controls
163 #endif // _FUI_CTRL_INTERNAL_SLIDER_PRESENTER_H_