code refactoring
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 23 Jan 2013 01:45:32 +0000 (10:45 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 23 Jan 2013 08:07:53 +0000 (17:07 +0900)
Change-Id: If485aea3b6b8db75e3ac2ead302e4deec85609e9

ism/demos/include/isf_demo_efl.h
ism/demos/isf_demo_efl.cpp
ism/demos/isf_event_efl.cpp

index e392648..f198709 100644 (file)
@@ -50,6 +50,11 @@ struct appdata {
     service_h data;
 };
 
+struct _menu_item {
+    char *name;
+    void (*func)(void *data, Evas_Object *obj, void *event_info);
+};
+
 // Utility functions
 Evas_Object *create_ef (Evas_Object *parent, const char *label, const char *guide_text);
 void         add_layout_to_naviframe (void *data, Evas_Object *lay_in, const char *title);
index 8bc98f4..9188a14 100644 (file)
 
 #define BASE_THEME_WIDTH 720.0f
 
+static void isfsetting_bt (void *data, Evas_Object *obj, void *event_info);
+static void keyboard_setting_wizard_bt (void *data, Evas_Object *obj, void *event_info);
+
+static struct _menu_item isf_demo_menu_its[] = {
+    { "ISF IM Control", imcontrolapi_bt },
+    { "ISF Layout", ise_layout_bt },
+    { "ISF Autocapital", ise_autocapital_bt },
+    { "ISF Prediction Allow", ise_prediction_bt },
+    { "ISF Return Key Type", ise_return_key_type_bt },
+    { "ISF Return Key Disable", ise_return_key_disable_bt },
+    { "ISF IM Data", ise_imdata_set_bt },
+    { "ISF Event", isf_event_demo_bt },
+    { "ISF Focus Movement", isf_focus_movement_bt },
+    { "ISF Setting", isfsetting_bt },
+    { "Keyboard Setting Wizard", keyboard_setting_wizard_bt },
+
+    /* do not delete below */
+    { NULL, NULL }
+};
 
 static void _quit_cb (void *data, Evas_Object *obj, void *event_info)
 {
@@ -158,6 +177,7 @@ static void keyboard_setting_wizard_bt (void *data, Evas_Object *obj, void *even
 static int create_demo_view (struct appdata *ad)
 {
     Evas_Object *li = NULL;
+    int idx = 0;
 
     Evas_Object *l_button = elm_button_add (ad->naviframe);
     elm_object_style_set (l_button, "naviframe/end_btn/default");
@@ -168,34 +188,10 @@ static int create_demo_view (struct appdata *ad)
     elm_list_mode_set (li, ELM_LIST_COMPRESS);
     evas_object_smart_callback_add (ad->li, "selected", _list_click, ad);
 
-    // Test ISF imcontrol API
-    elm_list_item_append (li, "ISF IM Control", NULL, NULL, imcontrolapi_bt, ad);
-
-    // test ISF layout
-    elm_list_item_append (li, "ISF Layout", NULL, NULL, ise_layout_bt, ad);
-
-    // Test autocapital type
-    elm_list_item_append (li, "ISF Autocapital", NULL, NULL, ise_autocapital_bt, ad);
-
-    // Test prediction allow
-    elm_list_item_append (li, "ISF Prediction Allow", NULL, NULL, ise_prediction_bt, ad);
-
-    // Test return key type
-    elm_list_item_append (li, "ISF Return Key Type", NULL, NULL, ise_return_key_type_bt, ad);
-
-    // Test return key disable
-    elm_list_item_append (li, "ISF Return Key Disable", NULL, NULL, ise_return_key_disable_bt, ad);
-
-    // Test imdata setting
-    elm_list_item_append (li, "ISF IM Data", NULL, NULL, ise_imdata_set_bt, ad);
-
-    elm_list_item_append (li, "ISF Event", NULL, NULL, isf_event_demo_bt, ad);
-
-    elm_list_item_append (li, "ISF Focus Movement", NULL, NULL, isf_focus_movement_bt, ad);
-
-    elm_list_item_append (li, "ISF Setting", NULL, NULL, isfsetting_bt, ad);
-    elm_list_item_append (li, "Keyboard Setting Wizard", NULL, NULL, keyboard_setting_wizard_bt, ad);
-    // ISF preedit string and commit string on Label and Entry
+    while (isf_demo_menu_its[idx].name != NULL) {
+        elm_list_item_append(li, isf_demo_menu_its[idx].name, NULL, NULL, isf_demo_menu_its[idx].func, ad);
+        ++idx;
+    }
 
     elm_list_go (li);
 
@@ -398,17 +394,25 @@ static int app_create (void *data)
 static int app_exit (void *data)
 {
     struct appdata *ad = (struct appdata *)data;
-    if (ad->li != NULL)
+    if (ad->li != NULL) {
         evas_object_del (ad->li);
+        ad->li = NULL;
+    }
 
-    if (ad->ev_li != NULL)
+    if (ad->ev_li != NULL) {
         evas_object_del (ad->ev_li);
+        ad->ev_li = NULL;
+    }
 
-    if (ad->layout_main != NULL)
+    if (ad->layout_main != NULL) {
         evas_object_del (ad->layout_main);
+        ad->layout_main = NULL;
+    }
 
-    if (ad->win_main != NULL)
+    if (ad->win_main != NULL) {
         evas_object_del (ad->win_main);
+        ad->win_main = NULL;
+    }
 
     return 0;
 }
index 260ded6..f20dd1f 100644 (file)
@@ -121,8 +121,7 @@ static void nf_back_event_cb (void *data, Evas_Object *obj, void *event_info)
     evas_object_event_callback_del (_label1, EVAS_CALLBACK_KEY_UP, NULL);
     evas_object_event_callback_del (_label2, EVAS_CALLBACK_KEY_UP, NULL);
 
-    for(int i = 0; i < 2; i++)
-    {
+    for (int i = 0; i < 2; i++) {
         if (_imf_context[i]) {
             ecore_imf_context_del(_imf_context[i]);
             _imf_context[i] = NULL;
@@ -151,8 +150,8 @@ static void isf_label_event_demo_bt (void *data, Evas_Object *obj, void *event_i
     evas_object_size_hint_weight_set (layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_show (layout);
 
-    evas = evas_object_evas_get(ad->win_main);
-    ecore_win = ecore_evas_window_get(ecore_evas_ecore_evas_get(evas));
+    evas = evas_object_evas_get (ad->win_main);
+    ecore_win = ecore_evas_window_get (ecore_evas_ecore_evas_get (evas));
 
     const char *ctx_id = ecore_imf_context_default_id_get ();