From 14b5bf817c8db9c5932f2d562d95b84842c73307 Mon Sep 17 00:00:00 2001 From: Jaime Thomas Date: Fri, 19 Sep 2008 16:24:47 +0000 Subject: [PATCH] More work on the buttons --- .../themes/default/groups/welcome_page.edc | 30 +++++++++++++++++++ ecdb/trunk/src/ecdb.h | 1 + ecdb/trunk/src/ecdb_gui.c | 26 +++++++++++----- ecdb/trunk/src/ecdb_misc.c | 4 +-- 4 files changed, 50 insertions(+), 11 deletions(-) diff --git a/ecdb/trunk/data/themes/default/groups/welcome_page.edc b/ecdb/trunk/data/themes/default/groups/welcome_page.edc index ca9ac5a..441348a 100644 --- a/ecdb/trunk/data/themes/default/groups/welcome_page.edc +++ b/ecdb/trunk/data/themes/default/groups/welcome_page.edc @@ -87,4 +87,34 @@ group { } } } + + programs { + program { + name: "b1_selected"; + signal: "mouse,down,1"; + action: SIGNAL_EMIT "selected" "b1"; + source: "b1"; + } + + program { + name: "b2_selected"; + signal: "mouse,down,1"; + action: SIGNAL_EMIT "selected" "b2"; + source: "b2"; + } + + program { + name: "b3_selected"; + signal: "mouse,down,1"; + action: SIGNAL_EMIT "selected" "b3"; + source: "b3"; + } + + program { + name: "b4_selected"; + signal: "mouse,down,1"; + action: SIGNAL_EMIT "selected" "b4"; + source: "b4"; + } + } } diff --git a/ecdb/trunk/src/ecdb.h b/ecdb/trunk/src/ecdb.h index aa9c7c6..7598188 100644 --- a/ecdb/trunk/src/ecdb.h +++ b/ecdb/trunk/src/ecdb.h @@ -38,6 +38,7 @@ typedef struct _Ecdb_Main Ecdb_Main; struct _Ecdb_Main { + char theme_path[PATH_MAX]; Ecore_Evas *main_win_ee; Ecore_List *drives; }; diff --git a/ecdb/trunk/src/ecdb_gui.c b/ecdb/trunk/src/ecdb_gui.c index 89e7a6d..b597fd9 100644 --- a/ecdb/trunk/src/ecdb_gui.c +++ b/ecdb/trunk/src/ecdb_gui.c @@ -1,6 +1,8 @@ #include "ecdb.h" static void ecdb_handle_typebuf(Evas_Object *gui); +static void ecdb_cb_welcome_page(void *data, Evas_Object *o, + const char *emission, const char *source); static void ecdb_cb_enter(Ecore_Evas *ee) @@ -213,13 +215,13 @@ ecdb_create_main_gui(void) welcome_page = edje_object_add(ecore_evas_get(em->main_win_ee)); evas_object_name_set(welcome_page, "welcome_page"); - // XXX Don't hardcode this - edje_object_file_set(welcome_page, PACKAGE_DATA_DIR - "/themes/default.edj", "ecdb/welcome_page"); + edje_object_file_set(welcome_page, em->theme_path, "ecdb/welcome_page"); edje_object_part_geometry_get(gui, "active_area", &x, &y, &w, &h); evas_object_move(welcome_page, x, y); evas_object_resize(welcome_page, w, h); edje_object_part_swallow(gui, "action_area", welcome_page); + edje_object_signal_callback_add(welcome_page, "selected", "b*", + ecdb_cb_welcome_page, NULL); evas_object_show(welcome_page); /* Buttons next, do properly next */ @@ -234,8 +236,7 @@ ecdb_create_main_gui(void) { b = edje_object_add(ecore_evas_get(em->main_win_ee)); evas_object_name_set(b, names[i]); - edje_object_file_set(b, PACKAGE_DATA_DIR - "/themes/default.edj", "ecdb/button"); + edje_object_file_set(b, em->theme_path, "ecdb/button"); edje_object_part_geometry_get(welcome_page, names[i], &x, &y, &w, &h); edje_object_part_text_set(b, "label", labels[i]); @@ -274,11 +275,12 @@ ecdb_set_main_theme(const char *theme_name, const char *group) if (!theme_name) { - if (!edje_object_file_set(gui, PACKAGE_DATA_DIR - "/themes/default.edj", group)) + snprintf(em->theme_path, PATH_MAX, "%s/%s", PACKAGE_DATA_DIR, + "themes/default.edj"); + if (!edje_object_file_set(gui, em->theme_path, group)) { printf("Error setting default theme: %s\n", - PACKAGE_DATA_DIR"/themes/default.edj"); + em->theme_path); return; } evas_font_path_append(ecore_evas_get(em->main_win_ee), @@ -386,3 +388,11 @@ ecdb_handle_typebuf(Evas_Object *gui) edje_object_part_text_set(gui, "filelist_overlay_text", NULL); } + +static void +ecdb_cb_welcome_page(void *data, Evas_Object *o, const char *emission, + const char *source) +{ + printf("callback from %s\n", source); + printf("callback %s\n", emission); +} diff --git a/ecdb/trunk/src/ecdb_misc.c b/ecdb/trunk/src/ecdb_misc.c index 3fbae40..26991ff 100644 --- a/ecdb/trunk/src/ecdb_misc.c +++ b/ecdb/trunk/src/ecdb_misc.c @@ -130,9 +130,7 @@ ecdb_button_icon_swallow(Evas *e, Evas_Object *b, const char *iname) icon = evas_object_image_add(e); - /* FIXME WRONG HERE */ - evas_object_image_file_set(icon, PACKAGE_DATA_DIR"/themes/default.edj", - iname); + evas_object_image_file_set(icon, em->theme_path, iname); edje_object_part_swallow(b, "icon", icon); }