A new api ui_app_get_default_window 24/56324/8 submit/tizen/20160201.101541
authorMyungki Lee <mk5004.lee@samsung.com>
Sat, 23 Jan 2016 09:11:28 +0000 (18:11 +0900)
committerMyungKi Lee <mk5004.lee@samsung.com>
Mon, 1 Feb 2016 03:02:21 +0000 (19:02 -0800)
This function returns a window object.
Change-Id: Ic6bd54d854398d7d85b378919e64e93b1b5a463c
Signed-off-by: Myungki Lee <mk5004.lee@samsung.com>
include/app.h
src/app_main.c

index be26f5c..d32a158 100644 (file)
@@ -223,6 +223,29 @@ int ui_app_add_event_handler(app_event_handler_h *event_handler, app_event_type_
  */
 int ui_app_remove_event_handler(app_event_handler_h event_handler);
 
+/**
+ * @brief Gets the preinitialized window object.
+ *
+ * @details This function returns a window object that is created by the framework.
+ *          You can get the handle of the preinitialized window using this API.
+ *          Because the window is preinitialized, you can speed up your application's launching time.
+ * @since_tizen 3.0
+ * @remarks When you set @a preinit-window attribute of the @a ui-application tag as "#true" in the tizen-manifest.xml,
+ *          the framework creates an window for your application beforehand.
+ *          Note that the preinitialized window is created using elm_win_add() as #ELM_WIN_BASIC type.
+ *          If you want to use a window of other types, you cannot use this API.
+ *
+ *          The specific error code can be obtained using the get_last_result() method.
+ *          Error codes are described in Exception section.
+ * @param[in] win_name The name to be set for the preinitialized window
+ *
+ * @return A @a window object on success,
+ *         otherwise @c NULL
+ * @exception TIZEN_ERROR_NONE Success
+ * @exception TIZEN_ERROR_INVALID_PARAMETER Invalid parameter
+ * @exception TIZEN_ERROR_IO_ERROR I/O error
+ */
+void *ui_app_get_default_window(const char *win_name);
 
 /**
  * @}
index bd0594e..661ef0a 100644 (file)
@@ -797,3 +797,26 @@ int ui_app_remove_event_handler(app_event_handler_h event_handler)
 
        return app_error(APP_ERROR_INVALID_PARAMETER, __FUNCTION__, "cannot find such handler");
 }
+
+void *ui_app_get_default_window(const char *win_name)
+{
+       Evas_Object *win;
+
+       if (win_name == NULL) {
+               set_last_error(TIZEN_ERROR_INVALID_PARAMETER);
+               return NULL;
+       }
+
+       win = (Evas_Object *)app_get_preinitialized_window(win_name);
+       if (win == NULL) {
+               win = elm_win_add(NULL, win_name, ELM_WIN_BASIC);
+               if (win == NULL) {
+                       set_last_error(TIZEN_ERROR_IO_ERROR);
+                       LOGE("failed to get window");
+                       return NULL;
+               }
+       }
+
+       set_last_error(TIZEN_ERROR_NONE);
+       return win;
+}