Override multiwindow base methods
[platform/core/appfw/appcore-widget.git] / src / widget_app.c
index fcc7ae3..4c20c2c 100755 (executable)
@@ -614,6 +614,33 @@ static int __widget_app_receive(aul_type type, bundle *b, void *data)
        return 0;
 }
 
+static int __widget_app_init(int argc, char **argv, void *data)
+{
+       elm_init(argc, argv);
+       return 0;
+}
+
+static void __widget_app_finish(void)
+{
+       elm_shutdown();
+
+       /* Check Loader case */
+       if (getenv("AUL_LOADER_INIT")) {
+               unsetenv("AUL_LOADER_INIT");
+               elm_shutdown();
+       }
+}
+
+static void __widget_app_run(void *data)
+{
+       elm_run();
+}
+
+static void __widget_app_exit(void *data)
+{
+       elm_exit();
+}
+
 EXPORT_API int widget_app_main(int argc, char **argv,
                widget_app_lifecycle_callback_s *callback, void *user_data)
 {
@@ -647,6 +674,11 @@ EXPORT_API int widget_app_main(int argc, char **argv,
        ops.base.control = __widget_app_control;
        ops.base.terminate = __widget_app_terminate;
        ops.base.receive = __widget_app_receive;
+       ops.base.init = __widget_app_init;
+       ops.base.finish = __widget_app_finish;
+       ops.base.run = __widget_app_run;
+       ops.base.exit = __widget_app_exit;
+
        __context.callback = *callback;
        __context.data = user_data;
        kb = bundle_import_from_argv(argc, argv);
@@ -681,6 +713,8 @@ EXPORT_API int widget_app_exit(void)
        }
 
        appcore_multiwindow_base_exit();
+       aul_widget_notify_exit();
+
        return WIDGET_ERROR_NONE;
 }
 
@@ -927,7 +961,7 @@ EXPORT_API int widget_app_get_elm_win(widget_context_h context,
        snprintf(buffer, sizeof(buffer), "%s:%d", id, getpid());
        evas_object_data_set(ret_win, "___PLUGID", strdup(buffer));
        evas_object_event_callback_add(ret_win, EVAS_CALLBACK_DEL, __win_del_cb, NULL);
-       appcore_multiwindow_base_window_bind(cxt, ret_win);
+       appcore_multiwindow_base_window_bind(cxt, wl_win);
 
        _D("window created: %d", win_id);
 
@@ -1004,7 +1038,7 @@ static void __stub_create(appcore_multiwindow_base_instance_h context, void *dat
        _D("%s is created %d", id);
 
        if (ret < 0) {
-               _W("Create callback resturns error(%d)", ret);
+               _W("Create callback returns error(%d)", ret);
                ret = __send_update_status(class_id, id,
                                WIDGET_INSTANCE_EVENT_CREATE_ABORTED, NULL);
                __instance_drop(context);
@@ -1081,7 +1115,7 @@ static void __stub_pause(appcore_multiwindow_base_instance_h context, void *data
                return;
        }
 
-       if (class_cxt->callback.update)
+       if (class_cxt->callback.pause)
                class_cxt->callback.pause(context, class_cxt->data);
        _D("%s is paused", id);
        __send_update_status(class_id, id,