[pkg-fso-commits] [SCM] libframeworkd-phonegui branch, upstream, updated. 640da47bfcff755388d0fb8f443eb34e0dea3c72
quickdev
niklas.coding at gmail.com
Sat Dec 27 20:50:12 UTC 2008
The following commit has been merged in the upstream branch:
commit e39c87629c835c8745b4bb8366e03c996ee4be18
Author: quickdev <niklas.coding at gmail.com>
Date: Tue Dec 23 18:22:57 2008 +0100
Added formatting and close callback to USSD window.
diff --git a/libframeworkd-phonegui-efl/src/phonegui-ussd.c b/libframeworkd-phonegui-efl/src/phonegui-ussd.c
index 77bdb5d..9314437 100644
--- a/libframeworkd-phonegui-efl/src/phonegui-ussd.c
+++ b/libframeworkd-phonegui-efl/src/phonegui-ussd.c
@@ -8,7 +8,6 @@ static struct Window *win_ussd = NULL;
static void _show(GHashTable *options);
static void _hide();
-static void _delete(void *data, Evas_Object *win, void *event_info);
void phonegui_ussd_show(int mode, const char *message) {
@@ -19,6 +18,7 @@ void phonegui_ussd_show(int mode, const char *message) {
GHashTable *options = g_hash_table_new(g_str_hash, g_str_equal);
g_hash_table_insert(options, "mode", mode);
g_hash_table_insert(options, "message", message);
+ g_hash_table_insert(options, "callback_close", _hide);
async_trigger(_show, options);
}
}
@@ -28,12 +28,10 @@ void phonegui_ussd_hide() {
async_trigger(_hide, NULL);
}
-
static void _show(GHashTable *options) {
g_debug("_show()");
assert(win_ussd != NULL);
window_init(win_ussd);
- window_delete_callback_set(win_ussd, _delete);
window_view_show(win_ussd, options, ussd_view_show, ussd_view_hide);
}
@@ -43,8 +41,4 @@ static void _hide() {
win_ussd = NULL;
}
-static void _delete(void *data, Evas_Object *win, void *event_info) {
- g_debug("_delete()");
- win_ussd = NULL;
-}
diff --git a/libframeworkd-phonegui-efl/src/view/ussd-view.c b/libframeworkd-phonegui-efl/src/view/ussd-view.c
index 5fe587b..12da32c 100644
--- a/libframeworkd-phonegui-efl/src/view/ussd-view.c
+++ b/libframeworkd-phonegui-efl/src/view/ussd-view.c
@@ -6,6 +6,9 @@ struct UssdViewData {
int mode;
char *message;
Evas_Object *bt_close;
+
+ void (*callback_close)(void *data);
+ void *callback_close_data;
};
@@ -18,8 +21,12 @@ static void frame_ussd_close_clicked(struct UssdViewData *data, Evas_Object *obj
struct UssdViewData *ussd_view_show(struct Window *win, GHashTable *options) {
struct UssdViewData *data = g_slice_alloc0(sizeof(struct UssdViewData));
data->win = win;
+
+ assert(options != NULL);
data->mode = (int) g_hash_table_lookup(options, "mode");
- data->message = g_hash_table_lookup(options, "message");
+ data->message = string_replace_with_tags(g_hash_table_lookup(options, "message"));
+ data->callback_close = g_hash_table_lookup(options, "callback_close");
+ data->callback_close_data = g_hash_table_lookup(options, "callback_close_data");
window_frame_show(win, data, frame_ussd_show, frame_ussd_hide);
window_show(win);
@@ -27,6 +34,9 @@ struct UssdViewData *ussd_view_show(struct Window *win, GHashTable *options) {
}
void ussd_view_hide(struct UssdViewData *data) {
+ if(data->callback_close != NULL)
+ data->callback_close(data->callback_close_data);
+ free(data->message);
g_slice_free(struct UssdViewData, data);
}
--
libframeworkd-phonegui
More information about the pkg-fso-commits
mailing list