[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