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