Refactoring code in imcontrol demo 79/31579/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Sun, 23 Mar 2014 08:59:07 +0000 (17:59 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Sat, 6 Dec 2014 11:31:50 +0000 (20:31 +0900)
Change-Id: Ie70bc59fe1c0cef99cd8e5d94774353c79a7ce22

ism/demos/isf_imcontrol_efl.cpp

index a42f025..5692113 100644 (file)
 static Ecore_IMF_Context *imf_context = NULL;
 static Elm_Genlist_Item_Class itci;
 
-enum {
-    INPUT_PANEL_GEOMETRY_GET,
-    INPUT_PANEL_SHOW,
-    INPUT_PANEL_HIDE,
-    INPUT_PANEL_IMDATA_SET,
-    INPUT_PANEL_IMDATA_GET,
-    INPUT_PANEL_LAYOUT_SET,
-    INPUT_PANEL_LAYOUT_GET,
-    INPUT_PANEL_STATE_GET,
-    GET_ACTIVE_ISE,
-    GET_ISE_INFO,
-    GET_ISE_LIST,
-    GET_ISE_COUNT,
-    RESET_DEFAULT_ISE,
-    SHOW_ISE_SELECTOR
-};
-
-const char *api_list[]={
-    "PANEL GEOMETRY GET",
-    "INPUT PANEL SHOW",
-    "INPUT PANEL HIDE",
-    "INPUT PANEL IMDATA SET",
-    "INPUT PANEL IMDATA GET",
-    "INPUT PANEL LAYOUT SET",
-    "INPUT PANEL LAYOUT GET",
-    "INPUT PANEL STATE GET",
-    "GET ACTIVE ISE",
-    "GET ACTIVE ISE INFO",
-    "GET ISE LIST",
-    "GET ISE COUNT",
-    "RESET DEFAULT ISE",
-    "SHOW_ISE_SELECTOR"
+static void test_input_panel_geometry_get (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_show (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_hide (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_imdata_set (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_imdata_get (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_layout_set (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_layout_get (void *data, Evas_Object *obj, void *event_info);
+static void test_input_panel_state_get (void *data, Evas_Object *obj, void *event_info);
+static void test_get_active_ise (void *data, Evas_Object *obj, void *event_info);
+static void test_get_ise_list (void *data, Evas_Object *obj, void *event_info);
+static void test_get_ise_info (void *data, Evas_Object *obj, void *event_info);
+static void test_get_ise_count (void *data, Evas_Object *obj, void *event_info);
+static void test_reset_default_ise (void *data, Evas_Object *obj, void *event_info);
+static void test_show_ise_selector (void *data, Evas_Object *obj, void *event_info);
+
+static struct _menu_item imcontrol_menu_its[] = {
+    { "PANEL GEOMETRY GET", test_input_panel_geometry_get },
+    { "INPUT PANEL SHOW", test_input_panel_show },
+    { "INPUT PANEL HIDE", test_input_panel_hide },
+    { "INPUT PANEL IMDATA SET", test_input_panel_imdata_set },
+    { "INPUT PANEL IMDATA GET", test_input_panel_imdata_get },
+    { "INPUT PANEL LAYOUT SET", test_input_panel_layout_set },
+    { "INPUT PANEL LAYOUT GET", test_input_panel_layout_get },
+    { "INPUT PANEL STATE GET", test_input_panel_state_get },
+    { "GET ACTIVE ISE", test_get_active_ise },
+    { "GET ACTIVE ISE INFO", test_get_ise_info },
+    { "GET ISE LIST", test_get_ise_list },
+    { "GET ISE COUNT", test_get_ise_count },
+    { "RESET DEFAULT ISE", test_reset_default_ise },
+    { "SHOW ISE SELECTOR", test_show_ise_selector },
+
+    /* do not delete below */
+    { NULL, NULL}
 };
 
 static void test_input_panel_geometry_get (void *data, Evas_Object *obj, void *event_info)
@@ -74,7 +75,7 @@ static void test_input_panel_geometry_get (void *data, Evas_Object *obj, void *e
     }
 }
 
-void test_input_panel_show (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_show (void *data, Evas_Object *obj, void *event_info)
 {
     if (imf_context != NULL) {
         ecore_imf_context_focus_in (imf_context);
@@ -82,7 +83,7 @@ void test_input_panel_show (void *data, Evas_Object *obj, void *event_info)
     }
 }
 
-void test_input_panel_hide (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_hide (void *data, Evas_Object *obj, void *event_info)
 {
     if (imf_context != NULL) {
         ecore_imf_context_focus_out (imf_context);
@@ -90,7 +91,7 @@ void test_input_panel_hide (void *data, Evas_Object *obj, void *event_info)
     }
 }
 
-void test_input_panel_imdata_set (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_imdata_set (void *data, Evas_Object *obj, void *event_info)
 {
     // need ISE to deal with the data
     char buf[256] = "ur imdata";
@@ -98,7 +99,7 @@ void test_input_panel_imdata_set (void *data, Evas_Object *obj, void *event_info
         ecore_imf_context_input_panel_imdata_set (imf_context, buf, sizeof (buf));
 }
 
-void test_input_panel_imdata_get (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_imdata_get (void *data, Evas_Object *obj, void *event_info)
 {
     int len = 256;
     char* buf = (char*) malloc (len);
@@ -112,14 +113,14 @@ void test_input_panel_imdata_get (void *data, Evas_Object *obj, void *event_info
     }
 }
 
-void test_input_panel_layout_set (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_layout_set (void *data, Evas_Object *obj, void *event_info)
 {
     Ecore_IMF_Input_Panel_Layout layout = ECORE_IMF_INPUT_PANEL_LAYOUT_EMAIL;
     if (imf_context != NULL)
         ecore_imf_context_input_panel_layout_set (imf_context, layout);
 }
 
-void test_input_panel_layout_get (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_layout_get (void *data, Evas_Object *obj, void *event_info)
 {
     Ecore_IMF_Input_Panel_Layout layout;
     if (imf_context != NULL) {
@@ -128,7 +129,7 @@ void test_input_panel_layout_get (void *data, Evas_Object *obj, void *event_info
     }
 }
 
-void test_input_panel_state_get (void *data, Evas_Object *obj, void *event_info)
+static void test_input_panel_state_get (void *data, Evas_Object *obj, void *event_info)
 {
     Ecore_IMF_Input_Panel_State state;
 
@@ -138,7 +139,7 @@ void test_input_panel_state_get (void *data, Evas_Object *obj, void *event_info)
     }
 }
 
-void test_get_active_ise (void *data, Evas_Object *obj, void *event_info)
+static void test_get_active_ise (void *data, Evas_Object *obj, void *event_info)
 {
     char *uuid = NULL;
     int ret = isf_control_get_active_ise (&uuid);
@@ -148,7 +149,7 @@ void test_get_active_ise (void *data, Evas_Object *obj, void *event_info)
         free (uuid);
 }
 
-void test_get_ise_list (void *data, Evas_Object *obj, void *event_info)
+static void test_get_ise_list (void *data, Evas_Object *obj, void *event_info)
 {
     char **iselist = NULL;
     int count = isf_control_get_ise_list (&iselist);
@@ -163,7 +164,7 @@ void test_get_ise_list (void *data, Evas_Object *obj, void *event_info)
         free (iselist);
 }
 
-void test_get_ise_info (void *data, Evas_Object *obj, void *event_info)
+static void test_get_ise_info (void *data, Evas_Object *obj, void *event_info)
 {
     char *uuid = NULL;
     int ret = isf_control_get_active_ise (&uuid);
@@ -185,12 +186,12 @@ void test_get_ise_info (void *data, Evas_Object *obj, void *event_info)
         free (uuid);
 }
 
-void test_get_ise_count (void *data, Evas_Object *obj, void *event_info)
+static void test_get_ise_count (void *data, Evas_Object *obj, void *event_info)
 {
     printf ("S/W keyboard : %d, H/W keyboard : %d\n", isf_control_get_ise_count (SOFTWARE_KEYBOARD_ISE), isf_control_get_ise_count (HARDWARE_KEYBOARD_ISE));
 }
 
-void test_reset_default_ise (void *data, Evas_Object *obj, void *event_info)
+static void test_reset_default_ise (void *data, Evas_Object *obj, void *event_info)
 {
     int ret = isf_control_set_active_ise_to_default ();
     if (ret == 0)
@@ -199,7 +200,7 @@ void test_reset_default_ise (void *data, Evas_Object *obj, void *event_info)
         printf (" Reset default ISE is failed!!!\n");
 }
 
-void test_show_ise_selector (void *data, Evas_Object *obj, void *event_info)
+static void test_show_ise_selector (void *data, Evas_Object *obj, void *event_info)
 {
     int ret = isf_control_show_ise_selector ();
     if (ret == 0)
@@ -211,7 +212,7 @@ void test_show_ise_selector (void *data, Evas_Object *obj, void *event_info)
 char *gli_label_get (void *data, Evas_Object *obj, const char *part)
 {
     int j = (int)data;
-    return strdup (api_list[j]);
+    return strdup (imcontrol_menu_its[j].name);
 }
 
 static void test_api (void *data, Evas_Object *obj, void *event_info)
@@ -221,52 +222,7 @@ static void test_api (void *data, Evas_Object *obj, void *event_info)
     if (it)
         elm_genlist_item_selected_set (it, EINA_FALSE);
 
-    switch (j) {
-    case INPUT_PANEL_GEOMETRY_GET:
-        test_input_panel_geometry_get (NULL, obj, event_info);
-        break;
-    case INPUT_PANEL_SHOW:
-        test_input_panel_show (NULL, obj, event_info);
-        break;
-    case INPUT_PANEL_HIDE:
-        test_input_panel_hide (NULL, obj, event_info);
-        break;
-    case INPUT_PANEL_IMDATA_SET:
-        test_input_panel_imdata_set (NULL,obj, event_info);
-        break;
-    case INPUT_PANEL_IMDATA_GET:
-        test_input_panel_imdata_get (NULL,obj, event_info);
-        break;
-    case INPUT_PANEL_LAYOUT_SET:
-        test_input_panel_layout_set (NULL,obj, event_info);
-        break;
-    case INPUT_PANEL_LAYOUT_GET:
-        test_input_panel_layout_get (NULL,obj, event_info);
-        break;
-    case INPUT_PANEL_STATE_GET:
-        test_input_panel_state_get (NULL, obj, event_info);
-        break;
-    case GET_ACTIVE_ISE:
-        test_get_active_ise (NULL, obj, event_info);
-        break;
-    case GET_ISE_LIST:
-        test_get_ise_list (NULL, obj, event_info);
-        break;
-    case GET_ISE_INFO:
-        test_get_ise_info (NULL, obj, event_info);
-        break;
-    case GET_ISE_COUNT:
-        test_get_ise_count (NULL, obj, event_info);
-        break;
-    case RESET_DEFAULT_ISE:
-        test_reset_default_ise (NULL, obj, event_info);
-        break;
-    case SHOW_ISE_SELECTOR:
-        test_show_ise_selector (NULL, obj, event_info);
-        break;
-    default:
-        break;
-    }
+    imcontrol_menu_its[j].func (NULL, obj, event_info);
 }
 
 static Eina_Bool _nf_back_event_cb (void *data, Elm_Object_Item *it)
@@ -281,7 +237,7 @@ static Eina_Bool _nf_back_event_cb (void *data, Elm_Object_Item *it)
 
 static Evas_Object *_create_imcontrolapi_list (Evas_Object *parent)
 {
-    int i, num;
+    int i = 0;
 
     Evas_Object *gl = elm_genlist_add (parent);
 
@@ -291,11 +247,11 @@ static Evas_Object *_create_imcontrolapi_list (Evas_Object *parent)
     itci.func.state_get = NULL;
     itci.func.del       = NULL;
 
-    num = sizeof (api_list) / sizeof (char *);
-    for (i = 0; i < num; i++) {
+    while (imcontrol_menu_its[i].name != NULL) {
         elm_genlist_item_append (gl, &itci,
                                  (void *)i/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, test_api/* func */,
                                  (void *)i/* func data */);
+        i++;
     }
 
     return gl;