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 FUi_ResourceManager.h
19 * @brief This is the header file for _ResourceManager class.
22 * This header file contains declaration of _ResourceManager class.
23 * The ActionEvent class can call listener's method. So, when event occurred,
24 * application can handle it appropriately.
27 #ifndef _FUI_INTERNAL_RESOURCE_MANAGER_H_
28 #define _FUI_INTERNAL_RESOURCE_MANAGER_H_
30 #include <FOspConfig.h>
31 #include <FBaseString.h>
32 #include <FGrpBitmap.h>
33 #include "FUi_ControlManager.h"
34 #include "FUi_ResourceConfigTypes.h"
36 namespace Tizen { namespace Base
42 namespace Tizen { namespace Base { namespace Collection
44 template<class Type> class ArrayListT;
47 namespace Tizen { namespace Graphics
53 class _ICoordinateSystemTransformer;
56 namespace Tizen { namespace Ui { namespace _Resource
63 namespace Tizen { namespace Ui
66 enum _ResourceFeedbackStatus
68 _RESOURCE_FEEDBACK_STATUS_INIT = 0,
69 _RESOURCE_FEEDBACK_STATUS_PLAYED
70 };// enum _ResourceFeedbackPattern
72 enum _ResourceFeedbackPattern
74 _RESOURCE_FEEDBACK_PATTERN_TAP = 0,
75 _RESOURCE_FEEDBACK_PATTERN_SIP,
76 _RESOURCE_FEEDBACK_PATTERN_SIP_BACKSPACE,
77 _RESOURCE_FEEDBACK_PATTERN_MAX_CHARACTER,
78 _RESOURCE_FEEDBACK_PATTERN_KEY0,
79 _RESOURCE_FEEDBACK_PATTERN_KEY1,
80 _RESOURCE_FEEDBACK_PATTERN_KEY2,
81 _RESOURCE_FEEDBACK_PATTERN_KEY3,
82 _RESOURCE_FEEDBACK_PATTERN_KEY4,
83 _RESOURCE_FEEDBACK_PATTERN_KEY5,
84 _RESOURCE_FEEDBACK_PATTERN_KEY6,
85 _RESOURCE_FEEDBACK_PATTERN_KEY7,
86 _RESOURCE_FEEDBACK_PATTERN_KEY8,
87 _RESOURCE_FEEDBACK_PATTERN_KEY9,
88 _RESOURCE_FEEDBACK_PATTERN_KEY_STAR,
89 _RESOURCE_FEEDBACK_PATTERN_KEY_SHARP,
90 _RESOURCE_FEEDBACK_PATTERN_HOLD,
91 _RESOURCE_FEEDBACK_PATTERN_MULTI_TAP,
92 _RESOURCE_FEEDBACK_PATTERN_HW_TAP,
93 _RESOURCE_FEEDBACK_PATTERN_HW_HOLD,
94 _RESOURCE_FEEDBACK_PATTERN_MESSAGE,
95 _RESOURCE_FEEDBACK_PATTERN_MESSAGE_ON_CALL,
96 _RESOURCE_FEEDBACK_PATTERN_EMAIL,
97 _RESOURCE_FEEDBACK_PATTERN_EMAIL_ON_CALL,
98 _RESOURCE_FEEDBACK_PATTERN_WAKEUP,
99 _RESOURCE_FEEDBACK_PATTERN_WAKEUP_ON_CALL,
100 _RESOURCE_FEEDBACK_PATTERN_SCHEDULE,
101 _RESOURCE_FEEDBACK_PATTERN_SCHEDULE_ON_CALL,
102 _RESOURCE_FEEDBACK_PATTERN_TIMER,
103 _RESOURCE_FEEDBACK_PATTERN_TIMER_ON_CALL,
104 _RESOURCE_FEEDBACK_PATTERN_GENERAL,
105 _RESOURCE_FEEDBACK_PATTERN_GENERAL_ON_CALL,
106 _RESOURCE_FEEDBACK_PATTERN_POWERON,
107 _RESOURCE_FEEDBACK_PATTERN_POWEROFF,
108 _RESOURCE_FEEDBACK_PATTERN_CHARGERCONN,
109 _RESOURCE_FEEDBACK_PATTERN_CHARGERCONN_ON_CALL,
110 _RESOURCE_FEEDBACK_PATTERN_FULLCHARGED,
111 _RESOURCE_FEEDBACK_PATTERN_FULLCHARGED_ON_CALL,
112 _RESOURCE_FEEDBACK_PATTERN_LOWBATT,
113 _RESOURCE_FEEDBACK_PATTERN_LOWBATT_ON_CALL,
114 _RESOURCE_FEEDBACK_PATTERN_LOCK,
115 _RESOURCE_FEEDBACK_PATTERN_UNLOCK,
116 _RESOURCE_FEEDBACK_PATTERN_CALLCONNECT,
117 _RESOURCE_FEEDBACK_PATTERN_DISCALLCONNECT,
118 _RESOURCE_FEEDBACK_PATTERN_MINUTEMINDER,
119 _RESOURCE_FEEDBACK_PATTERN_VIBRATION,
120 _RESOURCE_FEEDBACK_PATTERN_SHUTTER,
121 _RESOURCE_FEEDBACK_PATTERN_LIST_REORDER,
122 _RESOURCE_FEEDBACK_PATTERN_SLIDER_SWEEP
123 }; // enum _ResourceFeedbackPattern
125 namespace Controls { namespace __Internal
127 const int OVERLAY_REGION_MIN_LENGTH = 16;
128 }}//Tizen::Ui::Controls::__Internal
130 #define GET_SHAPE_CONFIG(shapeId, orientation, x)\
131 Tizen::Ui::_ResourceManager::GetInstance()->GetShape(Tizen::Ui::_Resource::_##shapeId##_SHAPE, orientation, x)
133 #define GET_DIMENSION_CONFIG(dimensionId, orientation, x)\
134 Tizen::Ui::_ResourceManager::GetInstance()->GetDimension(Tizen::Ui::_Resource::_##dimensionId##_DIMENSION, orientation, x)
136 #define GET_COLOR_CONFIG(colorId, x) \
137 Tizen::Ui::_ResourceManager::GetInstance()->GetColor(Tizen::Ui::_Resource::_##colorId##_COLOR, x)
139 #define GET_BITMAP_CONFIG_N(bitmapId, pixelFormat, pOutBitmap)\
140 Tizen::Ui::_ResourceManager::GetInstance()->GetBitmapN(Tizen::Ui::_Resource::_##bitmapId##_IMAGE, pixelFormat, _CONTROL_ORIENTATION_PORTRAIT, false, 0, pOutBitmap)
142 #define GET_REPLACED_BITMAP_CONFIG_N(bitmapId, pixelFormat, color ,pOutBitmap)\
143 Tizen::Ui::_ResourceManager::GetInstance()->GetBitmapN(Tizen::Ui::_Resource::_##bitmapId##_IMAGE, pixelFormat, _CONTROL_ORIENTATION_PORTRAIT, true, color, pOutBitmap)
145 #define GET_STRING_CONFIG(stringId, string)\
146 Tizen::Ui::_ResourceManager::GetInstance()->GetString(#stringId, string)
148 #define GET_FIXED_VALUE_CONFIG(fixedValueId, orientation, x)\
149 Tizen::Ui::_ResourceManager::GetInstance()->GetFixedValue(Tizen::Ui::_Resource::_##fixedValueId##_FIXED_VALUE, orientation, x)
151 #define GET_ANIMATION_CONFIG_N(animationId, x)\
152 Tizen::Ui::_ResourceManager::GetInstance()->GetAnimationN(Tizen::Ui::_Resource::_##animationId##_ANIMATION, x)
154 #define IS_CUSTOM_BITMAP(bitmapId) \
155 Tizen::Ui::_ResourceManager::GetInstance()->IsCustomBitmap(Tizen::Ui::_Resource::_##bitmapId##_IMAGE)
157 #define IS_CUSTOM_COLOR(colorId) \
158 Tizen::Ui::_ResourceManager::GetInstance()->IsCustomColor(Tizen::Ui::_Resource::_##colorId##_COLOR)
160 #define PLAY_FEEDBACK(pattern, control) \
161 Tizen::Ui::_ResourceManager::GetInstance()->PlayFeedback(pattern, control)
163 #define IS_PLAYED_FEEDBACK() \
164 Tizen::Ui::_ResourceManager::GetInstance()->IsFeedbackPlayed()
166 class _OSP_EXPORT_ _ResourceManager
169 static _ResourceManager* GetInstance(void);
170 result GetBitmapN(int bitmapId, Tizen::Graphics::BitmapPixelFormat pixelFormat, _ControlOrientation orientation, bool replacementColor, int color, Tizen::Graphics::Bitmap*& pBitmap);
171 result GetString(const char* stringId, Tizen::Base::String& string);
172 result GetColor(int colorId, Tizen::Graphics::Color& color);
173 result GetShape(int shapeId, _ControlOrientation orientation, int& value);
174 result GetFixedValue(int shapeId, _ControlOrientation orientation, int& value);
175 result GetDimension(int dimensionId, _ControlOrientation orientation, Tizen::Graphics::Dimension& dimension);
176 result GetShape(int shapeId, _ControlOrientation orientation, float& value);
177 result GetFixedValue(int shapeId, _ControlOrientation orientation, float& value);
178 result GetDimension(int dimensionId, _ControlOrientation orientation, Tizen::Graphics::FloatDimension& dimension);
179 result GetAnimationN(int animationId, Tizen::Base::Collection::ArrayList*& pList);
180 void GetThemeName(Tizen::Base::String& systemTheme, Tizen::Base::String& userTheme) const;
181 void ReloadTheme(Tizen::Base::String& themeName, bool userdefine);
182 bool IsCustomColor(int colorId);
183 bool IsCustomBitmap(int bitmapId);
184 result PlayFeedback(_ResourceFeedbackPattern pattern, const _Control* pControl);
185 bool IsFeedbackPlayed(void);
186 void AcquireFeedback(void);
187 void ReleaseFeedback(void);
188 void ResetFeedback(void);
190 Tizen::Graphics::Dimension GetLogicalScreenSizen(void);
193 _ResourceManager(void);
194 ~_ResourceManager(void);
195 static void CreateInstance(void);
197 void DoPostInitialization(void);
199 _ResourceManager(const _ResourceManager& rhs);
200 _ResourceManager& operator =(const _ResourceManager& rhs);
202 enum MapContainerType
204 MAP_CONTAINER_TYPE_APP_BASE_PORTRAIT = 0,
205 MAP_CONTAINER_TYPE_APP_BASE_LANDSCAPE = 1,
206 MAP_CONTAINER_TYPE_DEFAULT_PORTRAIT = 2,
207 MAP_CONTAINER_TYPE_DEFAULT_LANDSCAPE = 3,
208 MAP_CONTAINER_TYPE_MAX = 4,
210 result GetBitmapInternalN(const Tizen::Base::String& fileName, Tizen::Graphics::BitmapPixelFormat pixelFormat, _ControlOrientation orientation, bool isCustom, bool replacementColor, int color, Tizen::Graphics::Bitmap*& pBitmap);
211 result GetDefaultShapeWithScaling(int shapeId, _ControlOrientation orientation, int& value);
212 result GetDefaultShapeWithScaling(int shapeId, _ControlOrientation orientation, Tizen::Graphics::Dimension& value);
213 result GetDefaultShapeWithScaling(int shapeId, _ControlOrientation orientation, float& value);
214 result GetDefaultShapeWithScaling(int shapeId, _ControlOrientation orientation, Tizen::Graphics::FloatDimension& value);
215 result LoadThemeInformation(Tizen::Base::String& systemTheme, Tizen::Base::String& userTheme);
216 bool InitializeTheme(_Resource::MapContainer& mapContainer);
217 void LoadConfig(const Tizen::Base::String& resolution, _Resource::MapContainer& mapContainer, int width, int height);
218 _Resource::MapContainer* GetMapContainer(MapContainerType type);
219 void SetSystemColor(void);
220 Tizen::Base::String FindImagePath(const Tizen::Base::String& fileName, int& findFolder, bool isCustom);
221 bool GetDensityDirectory(const Tizen::Base::String& directoryName, float& scaleFactor);
222 bool GetResolutionDirectory(const Tizen::Base::String& directoryName, float& scaleFactor);
223 void LoadPaletteInformation(const Tizen::Base::String& systemTheme);
224 void LoadBlackPalette(void);
225 void LoadWhitePalette(void);
226 void LoadDefaultPalette(void);
229 struct ResourceFallbackItem
232 Tizen::Base::String directoryName;
235 _Resource::StringLoader* __pStringLoader;
236 _Resource::MapContainer* __pMapContainer[MAP_CONTAINER_TYPE_MAX];
237 Tizen::Graphics::_ICoordinateSystemTransformer* __pTransformer;
238 Tizen::Base::String __appBasePortraitMode;
239 Tizen::Base::String __appBaseLandscapeMode;
240 Tizen::Base::String __targetPortraitMode;
241 Tizen::Base::String __targetLandscapeMode;
242 Tizen::Base::String __defaultPortraitMode;
243 Tizen::Base::String __defaultLandscapeMode;
244 Tizen::Base::String __systemTheme;
245 Tizen::Base::String __userTheme;
246 bool __appliedUserTheme;
247 bool __initializeFeedback;
255 _ResourceFeedbackStatus __feedbackStatus;
256 int __feedbackAcquireCount;
257 Tizen::Base::Collection::ArrayListT<ResourceFallbackItem*>* __pFallbackList;
262 #endif // _FUI_INTERNAL_RESOURCE_MANAGER_H_