summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/app.h23
-rw-r--r--src/app_main.c23
2 files changed, 46 insertions, 0 deletions
diff --git a/include/app.h b/include/app.h
index be26f5c..d32a158 100644
--- a/include/app.h
+++ b/include/app.h
@@ -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);
/**
* @}
diff --git a/src/app_main.c b/src/app_main.c
index bd0594e..661ef0a 100644
--- a/src/app_main.c
+++ b/src/app_main.c
@@ -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;
+}