Adds watch window bind request API 22/176122/3
authorhyunho <hhstark.kang@samsung.com>
Tue, 17 Apr 2018 01:28:15 +0000 (10:28 +0900)
committerhyunho <hhstark.kang@samsung.com>
Tue, 17 Apr 2018 10:37:52 +0000 (19:37 +0900)
Change-Id: Ib3a0b14b1e39e5f4a5f3a04190be0df4bd022496
Signed-off-by: hyunho <hhstark.kang@samsung.com>
watch-control/include/watch_control.h
watch-control/src/control.c

index a7db01b..03fc2f6 100644 (file)
@@ -91,6 +91,15 @@ extern int watch_manager_pause(void);
 extern int watch_manager_resume(void);
 
 /**
+ * @brief Sends request to bind watch's window with the window.
+ * @details Watch's window will be shown with the viewer window automatically.
+ * @since_tizen 4.0
+ * @param[in] win Window for the viewer app
+ * @return @c 0 on success, otherwise a negative error value
+ */
+extern int watch_manager_window_bind_request(Evas_Object *win);
+
+/**
  * @brief Binds watch's window with the window.
  * @details Watch's window will be shown with the viewer window automatically.
  * @since_tizen 4.0
index 340ff5e..b4194fb 100755 (executable)
@@ -889,6 +889,34 @@ API int watch_manager_resume(void)
        return __change_visibility(VISIBILITY_TYPE_UNOBSCURED);
 }
 
+static void __on_aux_msg(void *data, Evas_Object *o, void *ev_info)
+{
+       Evas_Object *binding_window = (Evas_Object *)data;
+       Elm_Win_Aux_Message *msg = (Elm_Win_Aux_Message *)ev_info;
+       const char *key = elm_win_aux_msg_key_get(binding_window, msg);
+       const char *val = elm_win_aux_msg_val_get(binding_window, msg);
+
+       if (!strcmp(key, "tz_remote_surface_mng") && !strcmp(val, "prebind")) {
+               __is_bound = true;
+               LOGI("Start bind mode !!");
+               evas_object_smart_callback_del(binding_window,
+                       "aux,msg,received", __on_aux_msg);
+       }
+}
+
+API int watch_manager_window_bind_request(Evas_Object *win)
+{
+       if (!__toolkit || !win)
+               return -1;
+
+       LOGI("Bind request");
+       elm_win_aux_hint_add(win, "wm.policy.win.msg.use", "1");
+       evas_object_smart_callback_add(win, "aux,msg,received",
+                       __on_aux_msg, win);
+
+       return screen_connector_toolkit_evas_bind(__toolkit, win);
+}
+
 API int watch_manager_window_bind(Evas_Object *win)
 {
        if (!__toolkit || !win)