Changed indicator bg color.
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrl_ButtonItemImpl.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0/
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_ButtonItemImpl.cpp
19 * @brief                This is the implementation file for _ButtonItemImpl class.
20 */
21
22 #include <FBaseSysLog.h>
23 #include "FUiCtrl_ButtonItemImpl.h"
24
25 namespace Tizen { namespace Ui { namespace Controls
26 {
27
28 _ButtonItemImpl::_ButtonItemImpl(ButtonItem* pPublic)
29         : __actionId(-1)
30         , __itemStyle(BUTTON_ITEM_STYLE_TEXT)
31         , __itemText(L"")
32         , __accessibilityHint(L"")
33 {
34         for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
35         {
36                 __pIconBitmap[i] = null;
37                 __pButtonItemBackgroundBitmap[i] = null;
38         }
39 }
40
41 _ButtonItemImpl::~_ButtonItemImpl(void)
42 {
43         for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
44         {
45                 __pIconBitmap[i] = null;
46                 __pButtonItemBackgroundBitmap[i] = null;
47         }
48 }
49
50 const _ButtonItemImpl*
51 _ButtonItemImpl::GetInstance(const ButtonItem& buttonItem)
52 {
53         return static_cast<const _ButtonItemImpl*> (buttonItem.__pImpl);
54 }
55
56 _ButtonItemImpl*
57 _ButtonItemImpl::GetInstance(ButtonItem& buttonItem)
58 {
59         return static_cast<_ButtonItemImpl*> (buttonItem.__pImpl);
60 }
61
62 result
63 _ButtonItemImpl::Construct(ButtonItemStyle style, int actionId)
64 {
65         SysTryReturnResult(NID_UI_CTRL, (actionId >= BUTTON_ITEM_ACTION_ID_MIN && actionId <= BUTTON_ITEM_ACTION_ID_MAX),
66                                 E_INVALID_ARG, "[E_INVALID_ARG] The actionId is invalid.");
67
68         __actionId = actionId;
69         __itemText = Tizen::Base::String(L"");
70
71         __itemStyle = style;
72
73         for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
74         {
75                 __pIconBitmap[i] = null;
76                 __pButtonItemBackgroundBitmap[i] = null;
77         }
78
79         return E_SUCCESS;
80 }
81
82 int
83 _ButtonItemImpl::GetActionId(void) const
84 {
85         ClearLastResult();
86
87         return __actionId;
88 }
89
90 const Tizen::Graphics::Bitmap*
91 _ButtonItemImpl::GetBackgroundBitmap(ButtonItemStatus status) const
92 {
93         ClearLastResult();
94
95         SysTryReturn(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), null, E_INVALID_ARG,
96                                 "[E_INVALID_ARG] status is invalid.");
97
98         return __pButtonItemBackgroundBitmap[status];
99 }
100
101 const Tizen::Graphics::Bitmap*
102 _ButtonItemImpl::GetIcon(ButtonItemStatus status) const
103 {
104         ClearLastResult();
105
106         SysTryReturn(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), null, E_INVALID_ARG,
107                                 "[E_INVALID_ARG] status is invalid.");
108
109         return __pIconBitmap[status];
110 }
111
112 Tizen::Base::String
113 _ButtonItemImpl::GetText(void) const
114 {
115         ClearLastResult();
116
117         return __itemText;
118 }
119
120 result
121 _ButtonItemImpl::SetActionId(int actionId)
122 {
123         SysTryReturnResult(NID_UI_CTRL, (actionId > BUTTON_ITEM_ACTION_ID_MIN && actionId < BUTTON_ITEM_ACTION_ID_MAX),
124                                 E_INVALID_ARG, "[E_INVALID_ARG] The actionId is invalid.");
125
126         __actionId = actionId;
127
128         return E_SUCCESS;
129 }
130
131 result
132 _ButtonItemImpl::SetBackgroundBitmap(ButtonItemStatus status, const Tizen::Graphics::Bitmap* pBitmap)
133 {
134         SysTryReturnResult(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), E_INVALID_ARG,
135                                 "[E_INVALID_ARG] status is invalid.");
136
137         __pButtonItemBackgroundBitmap[status] = pBitmap;
138
139         return E_SUCCESS;
140 }
141
142 result
143 _ButtonItemImpl::SetIcon(ButtonItemStatus status, const Tizen::Graphics::Bitmap* pIcon)
144 {
145         SysTryReturnResult(NID_UI_CTRL, __itemStyle == BUTTON_ITEM_STYLE_ICON, E_INVALID_OPERATION,
146                         "[E_INVALID_OPERATION] Unable to set the icon because the BUTTON_ITEM_STYLE_TEXT style does not support it.");
147
148         SysTryReturnResult(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), E_INVALID_ARG,
149                                 "[E_INVALID_ARG] status is invalid.");
150
151         __pIconBitmap[status] = pIcon;
152
153         return E_SUCCESS;
154 }
155
156 result
157 _ButtonItemImpl::SetText(const Tizen::Base::String& text)
158 {
159         SysTryReturnResult(NID_UI_CTRL, __itemStyle == BUTTON_ITEM_STYLE_TEXT, E_INVALID_OPERATION,
160                         "[E_INVALID_OPERATION] Unable to set the text because the BUTTON_ITEM_STYLE_ICON style does not support it.");
161
162         __itemText = text;
163
164         return E_SUCCESS;
165 }
166
167 void
168 _ButtonItemImpl::SetAccessibilityHint(const Tizen::Base::String& hint)
169 {
170         __accessibilityHint = hint;
171 }
172
173 }}} // Tizen::Ui::Controls