2 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file FShell_AppWidgetManagerImpl.h
19 * @brief This is the header file for the _AppWidgetProviderManagerImpl class.
21 * This header file contains the declarations of the _AppWidgetProviderManagerImpl class.
24 #ifndef FShell_APPWIDGET_PROVIDER_MANAGERIMPL_H_
25 #define FShell_APPWIDGET_PROVIDER_MANAGERIMPL_H_
27 #include <unique_ptr.h>
28 #include <FBaseObject.h>
29 #include <FBaseColHashMapT.h>
30 #include <FAppTypes.h>
31 #include <FApp_IAppEventListener.h>
33 #include "FShell_AppWidgetServiceRequestDispatcher.h"
35 //#define HANDLE_MESSAGE_BY_EVENT
38 namespace Tizen { namespace Shell {
40 class IAppWidgetProviderFactory;
41 class IAppWidgetPopupProviderFactory;
42 class AppWidgetProvider;
43 class AppWidgetPopupProvider;
44 class _IAppWidgetTouchEventListener;
46 _OSP_EXPORT_ extern const wchar_t APPWIDGET_ON_ADD[];
47 _OSP_EXPORT_ extern const wchar_t APPWIDGET_ON_REMOVE[];
48 _OSP_EXPORT_ extern const wchar_t APPWIDGET_ON_UPDATE[];
49 _OSP_EXPORT_ extern const wchar_t APPWIDGET_ON_RESIZE[];
50 _OSP_EXPORT_ extern const wchar_t APPWIDGET_ON_TOUCH[];
51 _OSP_EXPORT_ extern const wchar_t APPWIDGET_POPUP_ON_CREATE[];
52 _OSP_EXPORT_ extern const wchar_t APPWIDGET_POPUP_ON_DESTROY[];
53 _OSP_EXPORT_ extern const wchar_t APPWIDGET_POPUP_ON_TOUCH[];
54 _OSP_EXPORT_ extern const wchar_t APPWIDGET_POPUP_PREFIX[];
56 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_INSTANCE_ID;
57 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_PROVIDER_NAME;
58 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_USER_INFO;
59 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_X;
60 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_Y;
61 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_WIDTH;
62 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_HEIGHT;
63 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_POPUP_WIDTH;
64 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_POPUP_HEIGHT;
65 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_ARGUMENT;
66 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_EVENT_TYPE;
67 _OSP_EXPORT_ extern const Tizen::Base::String ARG_KEY_TIME_STAMP;
69 class _OSP_EXPORT_ _AppWidgetProviderManagerImpl
70 : private _AppWidgetServiceRequestDispatcher
71 , private Tizen::App::_IAppEventListener
75 static _AppWidgetProviderManagerImpl* GetInstance();
78 result SetAppWidgetProviderFactory(IAppWidgetProviderFactory& factory);
79 result SetAppWidgetPopupProviderFactory(IAppWidgetPopupProviderFactory& factory);
80 result RequestUpdate(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName, const Tizen::Base::String& argument);
81 result AddAppWidget(const Tizen::App::AppId& providerAppId, const Tizen::Base::String& providerName, const Tizen::Base::String& text, const Tizen::Base::String& userInfo);
84 result RequestUpdateInstance(const Tizen::Base::String& instanceId, const Tizen::Base::String& argument = L"");
85 result AcquireRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height, int& bufferId);
86 result AcquireRemoteBufferForPD(const Tizen::Base::String& instanceId, int width, int height, int& bufferId);
87 result SyncRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height);
88 result SyncRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height, const Tizen::Base::String& screenReaderText);
89 result SyncRemoteBufferForPD(const Tizen::Base::String& instanceId);
90 result ReleaseRemoteBuffer(const Tizen::Base::String& instanceId);
91 result ReleaseRemoteBufferForPD(const Tizen::Base::String& instanceId);
92 result SendAccessStatus(const Tizen::Base::String& instanceId, int accessStatus);
95 result AddAppWidgetTouchEventListener(const Tizen::Base::String& instanceId, _IAppWidgetTouchEventListener& listener);
96 result RemoveAppWidgetTouchEventListener(const Tizen::Base::String& instanceId);
97 result SetAppWidgetPopupEventListener(_IAppWidgetTouchEventListener* pListener);
98 Tizen::Base::String GetCurrentInstanceId(void);
101 _AppWidgetProviderManagerImpl();
102 virtual ~_AppWidgetProviderManagerImpl();
105 virtual result CreateAppWidget(const Tizen::Base::String& name, const Tizen::Base::String& instanceId, float width, float height, const Tizen::Base::String& userInfo);
106 virtual result UpdateAppWidget(const Tizen::Base::String& instanceId, float width, float height, const Tizen::Base::String& argument);
107 virtual result ResizeAppWidget(const Tizen::Base::String& instanceId, float width, float height);
108 virtual result RemoveAppWidget(const Tizen::Base::String& instanceId);
109 virtual result CreateAppWidgetPopupProvider(const Tizen::Base::String& instanceId, const Tizen::Base::String& providerName, const Tizen::Base::String& userInfo, double x, double y, int width, int height);
110 virtual result DestroyAppWidgetPopupProvider(const Tizen::Base::String& instanceId);
112 virtual result OnTouchEventReceived(const Tizen::Base::String& instanceId, int eventType, double timeStamp, double x, double y );
113 virtual result OnTouchEventReceivedForPD(const Tizen::Base::String& instanceId, int eventType, double timeStamp, double x, double y );
115 virtual bool ContainsAppWidget(const Tizen::Base::String& instanceId) const;
117 // _IAppEventListener
118 virtual void OnApplicationLaunched(const Tizen::App::AppId& appId, int pid) {}
119 virtual void OnApplicationTerminated(const Tizen::App::AppId& appId, int pid);
122 static result ValidateAppAttribute(void);
126 Tizen::Base::String __currentInstanceId;
129 IAppWidgetProviderFactory* __pAppWidgetFactory;
130 Tizen::Base::Collection::HashMapT<Tizen::Base::String, AppWidgetProvider*> __appwidgetProviders;
131 Tizen::Base::Collection::HashMapT<Tizen::Base::String, _IAppWidgetTouchEventListener*> __touchEventListeners;
133 // for AppWidgetPopup
134 IAppWidgetPopupProviderFactory* __pAppWidgetPopupProviderFactory;
135 AppWidgetPopupProvider* __pAppWidgetPopupProvider;
136 _IAppWidgetTouchEventListener* __pAppWidgetPopupTouchEventListener;
140 #endif /* FShell_APPWIDGET_PROVIDER_MANAGERIMPL_H_ */