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.
18 * @file FUiCtrl_ButtonItemImpl.cpp
19 * @brief This is the implementation file for _ButtonItemImpl class.
22 #include <FBaseSysLog.h>
23 #include "FUiCtrl_ButtonItemImpl.h"
25 namespace Tizen { namespace Ui { namespace Controls
28 _ButtonItemImpl::_ButtonItemImpl(ButtonItem* pPublic)
30 , __itemStyle(BUTTON_ITEM_STYLE_TEXT)
32 , __accessibilityHint(L"")
34 for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
36 __pIconBitmap[i] = null;
37 __pButtonItemBackgroundBitmap[i] = null;
41 _ButtonItemImpl::~_ButtonItemImpl(void)
43 for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
45 __pIconBitmap[i] = null;
46 __pButtonItemBackgroundBitmap[i] = null;
50 const _ButtonItemImpl*
51 _ButtonItemImpl::GetInstance(const ButtonItem& buttonItem)
53 return static_cast<const _ButtonItemImpl*> (buttonItem.__pImpl);
57 _ButtonItemImpl::GetInstance(ButtonItem& buttonItem)
59 return static_cast<_ButtonItemImpl*> (buttonItem.__pImpl);
63 _ButtonItemImpl::Construct(ButtonItemStyle style, int actionId)
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.");
68 __actionId = actionId;
69 __itemText = Tizen::Base::String(L"");
73 for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
75 __pIconBitmap[i] = null;
76 __pButtonItemBackgroundBitmap[i] = null;
83 _ButtonItemImpl::GetActionId(void) const
90 const Tizen::Graphics::Bitmap*
91 _ButtonItemImpl::GetBackgroundBitmap(ButtonItemStatus status) const
95 SysTryReturn(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), null, E_INVALID_ARG,
96 "[E_INVALID_ARG] status is invalid.");
98 return __pButtonItemBackgroundBitmap[status];
101 const Tizen::Graphics::Bitmap*
102 _ButtonItemImpl::GetIcon(ButtonItemStatus status) const
106 SysTryReturn(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), null, E_INVALID_ARG,
107 "[E_INVALID_ARG] status is invalid.");
109 return __pIconBitmap[status];
113 _ButtonItemImpl::GetText(void) const
121 _ButtonItemImpl::SetActionId(int actionId)
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.");
126 __actionId = actionId;
132 _ButtonItemImpl::SetBackgroundBitmap(ButtonItemStatus status, const Tizen::Graphics::Bitmap* pBitmap)
134 SysTryReturnResult(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), E_INVALID_ARG,
135 "[E_INVALID_ARG] status is invalid.");
137 __pButtonItemBackgroundBitmap[status] = pBitmap;
143 _ButtonItemImpl::SetIcon(ButtonItemStatus status, const Tizen::Graphics::Bitmap* pIcon)
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.");
148 SysTryReturnResult(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), E_INVALID_ARG,
149 "[E_INVALID_ARG] status is invalid.");
151 __pIconBitmap[status] = pIcon;
157 _ButtonItemImpl::SetText(const Tizen::Base::String& text)
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.");
168 _ButtonItemImpl::SetAccessibilityHint(const Tizen::Base::String& hint)
170 __accessibilityHint = hint;
173 }}} // Tizen::Ui::Controls