2 * Copyright (c) 2015 - 2017 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (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://www.apache.org/licenses/LICENSE-2.0
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.
23 #include <app_common.h>
24 #include <appcore_multiwindow_base.h>
26 #define FEATURE_SHELL_APPWIDGET "http://tizen.org/feature/shell.appwidget"
32 /* Deprecated APIs. Please use widget_base.hh */
34 #define WIDGE_BASE_DEPRECATED __attribute__ ((deprecated))
36 typedef enum widget_base_destroy_type {
37 WIDGET_BASE_DESTROY_TYPE_PERMANENT = 0x00,
38 WIDGET_BASE_DESTROY_TYPE_TEMPORARY = 0x01,
39 } widget_base_destroy_type_e;
41 typedef enum widget_base_error {
42 WIDGET_BASE_ERROR_NONE = TIZEN_ERROR_NONE, /**< Operation is successfully completed */
43 WIDGET_BASE_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter */
44 WIDGET_BASE_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
45 WIDGET_BASE_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy */
46 WIDGET_BASE_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
47 WIDGET_BASE_ERROR_CANCELED = TIZEN_ERROR_CANCELED, /**< Operation Canceled */
48 WIDGET_BASE_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */
49 WIDGET_BASE_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Time out */
50 WIDGET_BASE_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */
51 WIDGET_BASE_ERROR_FILE_NO_SPACE_ON_DEVICE = TIZEN_ERROR_FILE_NO_SPACE_ON_DEVICE, /**< No space left on device */
52 WIDGET_BASE_ERROR_FAULT = TIZEN_ERROR_WIDGET | 0x0001, /**< Fault - Unable to recover from the error */
53 WIDGET_BASE_ERROR_ALREADY_EXIST = TIZEN_ERROR_WIDGET | 0x0002, /**< Already exists */
54 WIDGET_BASE_ERROR_ALREADY_STARTED = TIZEN_ERROR_WIDGET | 0x0004, /**< Operation is already started */
55 WIDGET_BASE_ERROR_NOT_EXIST = TIZEN_ERROR_WIDGET | 0x0008, /**< Not exists */
56 WIDGET_BASE_ERROR_DISABLED = TIZEN_ERROR_WIDGET | 0x0010, /**< Disabled */
57 WIDGET_BASE_ERROR_MAX_EXCEEDED = TIZEN_ERROR_WIDGET | 0x0011, /**< Maximum number of instances exceeded (Since 3.0) */
58 } widget_base_error_e;
60 typedef appcore_multiwindow_base_instance_h widget_base_instance_h;
62 typedef struct _widget_base_class_ops {
63 int (*create)(widget_base_instance_h instance_h, bundle *content,
64 int w, int h, void *class_data);
65 int (*destroy)(widget_base_instance_h instance_h,
66 widget_base_destroy_type_e reason, bundle *content,
68 int (*pause)(widget_base_instance_h instance_h, void *class_data);
69 int (*resume)(widget_base_instance_h instance_h, void *class_data);
70 int (*resize)(widget_base_instance_h instance_h, int w, int h, void *class_data);
71 int (*update)(widget_base_instance_h instance_h, bundle *content, int force,
73 } widget_base_class_ops;
75 typedef struct _widget_base_ops {
76 int (*create)(void *data);
77 int (*terminate)(void *data);
78 void (*init)(int argc, char **argv, void *data);
80 void (*run)(void *data);
81 void (*exit)(void *data);
82 void (*trim_memory)(void *data);
85 typedef struct _widget_base_class {
87 widget_base_class_ops ops;
90 typedef bool (*widget_base_instance_cb)(widget_base_instance_h instance, void *data);
92 int widget_base_foreach_context(widget_base_instance_cb cb, void *data) WIDGE_BASE_DEPRECATED;
93 int widget_base_terminate_context(widget_base_instance_h instance_h) WIDGE_BASE_DEPRECATED;
94 int widget_base_add_event_handler(app_event_handler_h *event_handler,
95 app_event_type_e event_type,
96 app_event_cb callback,
97 void *user_data) WIDGE_BASE_DEPRECATED;
98 int widget_base_remove_event_handler(app_event_handler_h
99 event_handler) WIDGE_BASE_DEPRECATED;
100 int widget_base_context_set_content_info(widget_base_instance_h instance_h,
101 bundle *content_info) WIDGE_BASE_DEPRECATED;
102 int widget_base_context_get_tag(widget_base_instance_h instance_h, void **tag) WIDGE_BASE_DEPRECATED;
103 int widget_base_context_set_tag(widget_base_instance_h instance_h, void *tag) WIDGE_BASE_DEPRECATED;
104 void *widget_base_context_get_user_data(widget_base_instance_h instance_h) WIDGE_BASE_DEPRECATED;
105 int widget_base_context_set_user_data(widget_base_instance_h instance_h,
106 void *user_data) WIDGE_BASE_DEPRECATED;
107 int widget_base_context_get_id(widget_base_instance_h instance_h, char **id) WIDGE_BASE_DEPRECATED;
108 const char *widget_base_get_viewer_endpoint(void) WIDGE_BASE_DEPRECATED;
109 int widget_base_init(widget_base_ops ops, int argc, char **argv, void *data) WIDGE_BASE_DEPRECATED;
110 int widget_base_on_create(void) WIDGE_BASE_DEPRECATED;
111 int widget_base_on_terminate(void) WIDGE_BASE_DEPRECATED;
112 int widget_base_on_init(int argc, char **argv) WIDGE_BASE_DEPRECATED;
113 void widget_base_on_finish(void) WIDGE_BASE_DEPRECATED;
114 void widget_base_on_run(void) WIDGE_BASE_DEPRECATED;
115 void widget_base_on_exit(void) WIDGE_BASE_DEPRECATED;
116 int widget_base_on_trim_memory(void) WIDGE_BASE_DEPRECATED;
117 widget_base_ops widget_base_get_default_ops(void) WIDGE_BASE_DEPRECATED;
118 void widget_base_fini(void) WIDGE_BASE_DEPRECATED;
119 int widget_base_exit(void) WIDGE_BASE_DEPRECATED;
120 int widget_base_context_window_bind(
121 widget_base_instance_h instance_h, const char *id,
122 Ecore_Wl2_Window *wl_win) WIDGE_BASE_DEPRECATED;
123 int widget_base_class_on_create(widget_base_instance_h instance_h,
124 bundle *content, int w, int h) WIDGE_BASE_DEPRECATED;
125 int widget_base_class_on_pause(widget_base_instance_h instance_h) WIDGE_BASE_DEPRECATED;
126 int widget_base_class_on_resume(widget_base_instance_h instance_h) WIDGE_BASE_DEPRECATED;
127 int widget_base_class_on_resize(widget_base_instance_h instance_h,
128 int w, int h) WIDGE_BASE_DEPRECATED;
129 int widget_base_class_on_update(widget_base_instance_h instance_h,
130 bundle *content, int force) WIDGE_BASE_DEPRECATED;
131 int widget_base_class_on_destroy(widget_base_instance_h instance_h,
132 widget_base_destroy_type_e reason, bundle *content) WIDGE_BASE_DEPRECATED;
133 widget_base_class widget_base_class_get_default(void) WIDGE_BASE_DEPRECATED;
134 widget_base_class *widget_base_class_add(widget_base_class cls,
135 const char *class_id, void *class_data) WIDGE_BASE_DEPRECATED;