diff options
Diffstat (limited to 'src/common/utils.c')
-rw-r--r-- | src/common/utils.c | 66 |
1 files changed, 61 insertions, 5 deletions
diff --git a/src/common/utils.c b/src/common/utils.c index cab934b..55cdc72 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -15,9 +15,12 @@ */ #include <Elementary.h> +#include <app_control.h> #include <app_debug.h> -Evas_Object *add_window(const char *name) +#include "define.h" + +Evas_Object *utils_add_window(const char *name) { Evas_Object *win; @@ -40,7 +43,7 @@ Evas_Object *add_window(const char *name) return win; } -Evas_Object *add_layout(Evas_Object *parent, const char *group) +Evas_Object *utils_add_layout(Evas_Object *parent, const char *group) { Evas_Object *layout; @@ -63,7 +66,8 @@ Evas_Object *add_layout(Evas_Object *parent, const char *group) return layout; } -Evas_Object *add_gengrid(Evas_Object *parent, int item_size_x, int item_size_y) +Evas_Object *utils_add_gengrid(Evas_Object *parent, + int item_size_x, int item_size_y) { Evas_Object *grid; @@ -94,7 +98,7 @@ Evas_Object *add_gengrid(Evas_Object *parent, int item_size_x, int item_size_y) return grid; } -Evas_Object *add_box(Evas_Object *parent, const char *part, +Evas_Object *utils_add_box(Evas_Object *parent, const char *part, Eina_Bool horizontal, Evas_Coord padding_h, Evas_Coord padding_v) { @@ -126,7 +130,7 @@ Evas_Object *add_box(Evas_Object *parent, const char *part, return box; } -Evas_Object *add_button(Evas_Object *parent, const char *part, +Evas_Object *utils_add_button(Evas_Object *parent, const char *part, const char *text, const char *style) { Evas_Object *btn; @@ -153,3 +157,55 @@ Evas_Object *add_button(Evas_Object *parent, const char *part, return btn; } + +bool utils_launch_app(const char *appid, const char *key, const char *value) +{ + app_control_h app_ctrl; + int r; + + if (!appid) { + _ERR("Invalid argument."); + return false; + } + + r = app_control_create(&app_ctrl); + if (r != APP_CONTROL_ERROR_NONE) { + _ERR("App control handle create failed."); + return false; + } + + r = app_control_set_operation(app_ctrl, APP_CONTROL_OPERATION_DEFAULT); + if (r != APP_CONTROL_ERROR_NONE) { + _ERR("App control set operation failed."); + goto err; + } + + if (key && value) { + r = app_control_add_extra_data(app_ctrl, key, value); + if (r != APP_CONTROL_ERROR_NONE) { + _ERR("App control set extra data failed."); + goto err; + } + } + + r = app_control_set_app_id(app_ctrl, appid); + if (r != APP_CONTROL_ERROR_NONE) { + _ERR("App control set app id failed."); + goto err; + } + + r = app_control_send_launch_request(app_ctrl, NULL, NULL); + if (r != APP_CONTROL_ERROR_NONE) { + _ERR("App control send launch request failed."); + goto err; + } + + app_control_destroy(app_ctrl); + + return true; + +err: + app_control_destroy(app_ctrl); + + return false; +} |