summaryrefslogtreecommitdiff
path: root/src/common/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/utils.c')
-rw-r--r--src/common/utils.c66
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;
+}