Tizen 2.1 base
[framework/osp/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 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_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 {
33         for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
34         {
35                 __pIconBitmap[i] = null;
36                 __pButtonItemBackgroundBitmap[i] = null;
37         }
38 }
39
40 _ButtonItemImpl::~_ButtonItemImpl(void)
41 {
42         for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
43         {
44                 __pIconBitmap[i] = null;
45                 __pButtonItemBackgroundBitmap[i] = null;
46         }
47 }
48
49 const _ButtonItemImpl*
50 _ButtonItemImpl::GetInstance(const ButtonItem& buttonItem)
51 {
52         return static_cast<const _ButtonItemImpl*> (buttonItem.__pImpl);
53 }
54
55 _ButtonItemImpl*
56 _ButtonItemImpl::GetInstance(ButtonItem& buttonItem)
57 {
58         return static_cast<_ButtonItemImpl*> (buttonItem.__pImpl);
59 }
60
61 result
62 _ButtonItemImpl::Construct(ButtonItemStyle style, int actionId)
63 {
64         SysTryReturnResult(NID_UI_CTRL, (actionId >= BUTTON_ITEM_ACTION_ID_MIN && actionId <= BUTTON_ITEM_ACTION_ID_MAX),
65                                 E_INVALID_ARG, "[E_INVALID_ARG] The actionId is invalid.");
66
67         __actionId = actionId;
68         __itemText = Tizen::Base::String(L"");
69
70         __itemStyle = style;
71
72         for (int i = 0; i < BUTTON_ITEM_MAX_STATE_COUNT; i++)
73         {
74                 __pIconBitmap[i] = null;
75                 __pButtonItemBackgroundBitmap[i] = null;
76         }
77
78         return E_SUCCESS;
79 }
80
81 int
82 _ButtonItemImpl::GetActionId(void) const
83 {
84         ClearLastResult();
85
86         return __actionId;
87 }
88
89 const Tizen::Graphics::Bitmap*
90 _ButtonItemImpl::GetBackgroundBitmap(ButtonItemStatus status) const
91 {
92         ClearLastResult();
93
94         SysTryReturn(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), null, E_INVALID_ARG,
95                                 "[E_INVALID_ARG] status is invalid.");
96
97         return __pButtonItemBackgroundBitmap[status];
98 }
99
100 const Tizen::Graphics::Bitmap*
101 _ButtonItemImpl::GetIcon(ButtonItemStatus status) const
102 {
103         ClearLastResult();
104
105         SysTryReturn(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), null, E_INVALID_ARG,
106                                 "[E_INVALID_ARG] status is invalid.");
107
108         return __pIconBitmap[status];
109 }
110
111 Tizen::Base::String
112 _ButtonItemImpl::GetText(void) const
113 {
114         ClearLastResult();
115
116         return __itemText;
117 }
118
119 result
120 _ButtonItemImpl::SetActionId(int actionId)
121 {
122         SysTryReturnResult(NID_UI_CTRL, (actionId > BUTTON_ITEM_ACTION_ID_MIN && actionId < BUTTON_ITEM_ACTION_ID_MAX),
123                                 E_INVALID_ARG, "[E_INVALID_ARG] The actionId is invalid.");
124
125         __actionId = actionId;
126
127         return E_SUCCESS;
128 }
129
130 result
131 _ButtonItemImpl::SetBackgroundBitmap(ButtonItemStatus status, const Tizen::Graphics::Bitmap* pBitmap)
132 {
133         SysTryReturnResult(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), E_INVALID_ARG,
134                                 "[E_INVALID_ARG] status is invalid.");
135
136         __pButtonItemBackgroundBitmap[status] = pBitmap;
137
138         return E_SUCCESS;
139 }
140
141 result
142 _ButtonItemImpl::SetIcon(ButtonItemStatus status, const Tizen::Graphics::Bitmap* pIcon)
143 {
144         SysTryReturnResult(NID_UI_CTRL, (status >= 0 && status < BUTTON_ITEM_MAX_STATE_COUNT), E_INVALID_ARG,
145                                 "[E_INVALID_ARG] status is invalid.");
146
147         __pIconBitmap[status] = pIcon;
148
149         return E_SUCCESS;
150 }
151
152 result
153 _ButtonItemImpl::SetText(const Tizen::Base::String& text)
154 {
155         __itemText = text;
156
157         return E_SUCCESS;
158 }
159
160 }}} // Tizen::Ui::Controls