Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_SliderImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17 /**
18  * @file                FUiCtrl_SliderImpl.h
19  * @brief       This is the header file for the _SliderImpl class.
20  *
21  * This header file contains the declarations of the %_SliderImpl class.
22  */
23 #ifndef _FUI_CTRL_INTERNAL_SLIDER_IMPL_H_
24 #define _FUI_CTRL_INTERNAL_SLIDER_IMPL_H_
25
26 #include <FUiCtrlSlider.h>
27 #include "FUi_ControlImpl.h"
28 #include "FUiCtrl_Slider.h"
29 #include "FUiCtrl_IAdjustmentEventListener.h"
30 #include "FUiCtrl_ISliderEventListener.h"
31
32 namespace Tizen { namespace Graphics
33 {
34 class Dimension;
35 }} // Tizen::Graphics
36
37 namespace Tizen { namespace Ui { namespace Controls
38 {
39 class _PublicAdjustmentEvent;
40 class _PublicSliderEvent;
41
42 class _SliderImpl
43         : public _ControlImpl
44         , public _IAdjustmentEventListener
45         , public _ISliderEventListener
46         , virtual public Tizen::Base::Runtime::IEventListener
47 {
48 public:
49         virtual ~_SliderImpl(void);
50
51         result Initialize(int minValue, int maxValue, BackgroundStyle bgStyle, int sliderStyle, GroupStyle groupStyle);
52         result SetRange(int minValue, int maxValue);
53         result GetRange(int& minValue, int& maxValue) const;
54         result SetValue(int value);
55         int GetValue(void) const;
56         result SetIcon(IconPosition position, const Tizen::Graphics::Bitmap& icon);
57         result SetTitleText(const Tizen::Base::String& title);
58         Tizen::Base::String GetTitleText(void) const;
59         result SetTitleTextColor(const Tizen::Graphics::Color& color);
60         Tizen::Graphics::Color GetTitleTextColor(void) const;
61         result AddAdjustmentEventListener(Tizen::Ui::IAdjustmentEventListener& listener);
62         result RemoveAdjustmentEventListener(Tizen::Ui::IAdjustmentEventListener& listener);
63         result AddSliderEventListener(const ISliderEventListener& listener);
64         result RemoveSliderEventListener(const ISliderEventListener& listener);
65         result SetBarColor(const Tizen::Graphics::Color& color);
66         Tizen::Graphics::Color GetBarColor(void) const;
67         result SetColor(const Tizen::Graphics::Color& color);
68         Tizen::Graphics::Color GetColor(void) const;
69         result SetThumbBitmap(SliderThumbStatus status, const Tizen::Graphics::Bitmap& bitmap);
70         void SetThumbTextColor(SliderThumbStatus status, const Tizen::Graphics::Color& color);
71
72         virtual const char* GetPublicClassName(void) const;
73         virtual const Slider& GetPublic(void) const;
74         virtual Slider& GetPublic(void);
75         virtual const _Slider& GetCore(void) const;
76         virtual _Slider& GetCore(void);
77         virtual void OnAdjustmentValueChanged(const Tizen::Ui::_Control& source, int adjustment);
78         virtual void OnSliderBarMoved(_Slider& source, int value);
79
80         static _SliderImpl* CreateSliderImplN(Slider* pControl, const Tizen::Graphics::Rectangle& rect, int sliderStyle);
81         static _SliderImpl* GetInstance(Slider& slider);
82         static const _SliderImpl* GetInstance(const Slider& slider);
83
84 private:
85         _SliderImpl(Slider* pPublic, _Slider* pCore);
86         _SliderImpl(const _SliderImpl&);
87         _SliderImpl& operator =(const _SliderImpl&);
88
89         _PublicAdjustmentEvent* __pPublicAdjustmentEvent;
90         _PublicSliderEvent* __pPublicSliderEvent;
91
92 };      // _SliderImpl
93
94 }}} // Tizen::Ui::Controls
95
96 #endif  //_FUI_CTRL_INTERNAL_SLIDER_IMPL_H_