Changed indicator bg color.
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrlFooterItem.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                 FUiCtrlFooterItem.cpp
19 * @brief                This is the implementation file for FooterItem class.
20 */
21
22 #include <new>
23 #include <FUiCtrlFooterItem.h>
24 #include <FBaseSysLog.h>
25 #include "FUiCtrl_FooterItemImpl.h"
26
27 using namespace Tizen::Base;
28 using namespace Tizen::Graphics;
29
30 namespace Tizen { namespace Ui { namespace Controls
31 {
32
33 FooterItem::FooterItem(void)
34         : __pImpl(null)
35 {
36 }
37
38 FooterItem::~FooterItem(void)
39 {
40         if (__pImpl)
41         {
42                 delete __pImpl;
43                 __pImpl = null;
44         }
45 }
46
47 result
48 FooterItem::Construct(int actionId)
49 {
50         result r = E_SUCCESS;
51
52         SysTryReturnResult(NID_UI_CTRL, (actionId >= FOOTER_ITEM_ACTION_ID_MIN && actionId <= FOOTER_ITEM_ACTION_ID_MAX), E_INVALID_ARG,
53                            "[E_INVALID_ARG] The actionId is invalid.");
54
55         _FooterItemImpl* pImpl = _FooterItemImpl::GetInstance(*this);
56
57         SysAssertf(pImpl == null,
58                                 "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
59
60         __pImpl = new (std::nothrow) _FooterItemImpl(this);
61         SysTryReturnResult(NID_UI_CTRL, __pImpl, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Impl instance is not constructed");
62
63         r = __pImpl->Construct(actionId);
64
65         if (IsFailed(r))
66         {
67                 delete __pImpl;
68                 __pImpl = null;
69                 SysLog(NID_UI_CTRL, "[%s] Propagated.", GetErrorMessage(r));
70                 return r;
71         }
72
73         return r;
74 }
75
76 int
77 FooterItem::GetActionId(void) const
78 {
79         SysAssertf(__pImpl != null,
80                         "Not yet constructed. Construct() should be called before use.");
81
82         return __pImpl->GetActionId();
83 }
84
85 String
86 FooterItem::GetText(void) const
87 {
88         SysAssertf(__pImpl != null,
89                                 "Not yet constructed. Construct() should be called before use.");
90
91         return __pImpl->GetText();
92 }
93
94 result
95 FooterItem::SetActionId(int actionId)
96 {
97         SysAssertf(__pImpl != null,
98                                 "Not yet constructed. Construct() should be called before use.");
99
100         return __pImpl->SetActionId(actionId);
101 }
102
103 result
104 FooterItem::SetBackgroundBitmap(FooterItemStatus status, const Bitmap* pBitmap)
105 {
106         SysAssertf(__pImpl != null,
107                                 "Not yet constructed. Construct() should be called before use.");
108
109         return __pImpl->SetBackgroundBitmap(status, pBitmap);
110 }
111
112 result
113 FooterItem::SetIcon(FooterItemStatus status, const Bitmap* pIcon)
114 {
115         SysTryReturnResult(NID_UI_CTRL, pIcon, E_INVALID_ARG, "[E_INVALID_ARG] pIcon is invalid.");
116
117         SysAssertf(__pImpl != null,
118                                 "Not yet constructed. Construct() should be called before use.");
119
120         return __pImpl->SetIcon(status, pIcon);
121 }
122
123 result
124 FooterItem::SetText(const String& text)
125 {
126         SysAssertf(__pImpl != null,
127                                 "Not yet constructed. Construct() should be called before use.");
128
129         return __pImpl->SetText(text);
130 }
131
132 }}} // Tizen::Ui::Controls