From: Myungki Lee Date: Sat, 23 Jan 2016 09:11:28 +0000 (+0900) Subject: A new api ui_app_get_default_window X-Git-Tag: accepted/tizen/4.0/unified/20170816.011601~6^2~92 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89b39d6803340306c5e0cca75c70980858b46ab1;p=platform%2Fcore%2Fapi%2Fapp-control.git A new api ui_app_get_default_window This function returns a window object. Change-Id: Ic6bd54d854398d7d85b378919e64e93b1b5a463c Signed-off-by: Myungki Lee --- 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; +}