Hello all,

I just svn'd up (r59145) and found this strange problem.

When a genlist item's label contains mixed Chinese and ASCII
characters, the ASCII characters within the string are all gone!
For example, "  _CHINESE_" will be displayed for the actual string, "1
_CHINESE_".

Please see the attached for the demonstration of the problem.

Thanks in advance.


brian

-- 
brian
------------------

Cool-Karaoke - The smallest recording studio, in your palm, open-sourced
http://cool-idea.com.tw/

iMaGiNaTiOn iS mOrE iMpOrTaNt tHaN kNoWlEdGe
#include <Elementary.h>

static Evas_Object *_win;
static Elm_Genlist_Item_Class itc1;

static void _gl_clear(void *data, Evas_Object *obj, void *event_info)
{
        Evas_Object *gl = data;
        int i;

        elm_genlist_clear(gl);
        for (i = 0; i < 10; i++) {
                elm_genlist_item_append(gl, &itc1,
                                (void *)i/* item data */,
                                NULL/* parent */,
                                ELM_GENLIST_ITEM_NONE,
                                NULL/* func */,
                                (void *)(i * 10)/* func data */);
        }
}


char *gl_label_get(void *data, Evas_Object *obj, const char *part)
{
   char buf[256];
   //snprintf(buf, sizeof(buf), "Item # %i", (int)data);
   //snprintf(buf, sizeof(buf), "中文 1");
   snprintf(buf, sizeof(buf), "1 中文");
   return strdup(buf);
}

Evas_Object *gl_icon_get(void *data, Evas_Object *obj, const char *part)
{
        return NULL;
    if (!strcmp(part, "elm.swallow.end")) {
                Evas_Object *bt, *ic;

#if 0
                ic = elm_icon_add(_win);
                elm_icon_file_set(ic, "icon.png", NULL);
                evas_object_show(ic);
#endif

                bt = elm_button_add(_win);
                //elm_button_icon_set(bt, ic);
                elm_button_label_set(bt, "bug");
                evas_object_smart_callback_add(bt, "clicked", _gl_clear, obj);
                evas_object_show(bt);

                return bt;
        }
        return NULL;
}
Eina_Bool gl_state_get(void *data, Evas_Object *obj, const char *part)
{
   return EINA_FALSE;
}
void gl_del(void *data, Evas_Object *obj)
{
}

static void win_del(void *data, Evas_Object *obj, void *event_info)
{
        printf("%s in\n", __func__);
        elm_exit();
}

void
test_genlist(void *data, Evas_Object *obj, void *event_info)
{
   Evas_Object *win, *bg, *gl, *bx, *bt;
   Elm_Genlist_Item *gli;
   int i;

   _win = win = elm_win_add(NULL, "genlist", ELM_WIN_BASIC);
   elm_win_title_set(win, "Genlist");
   evas_object_smart_callback_add(win, "delete-request", win_del, NULL);

   bg = elm_bg_add(win);
   elm_win_resize_object_add(win, bg);
   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_show(bg);

   bx = elm_box_add(win);
   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(win, bx);
   evas_object_show(bx);

   gl = elm_genlist_add(win);
   evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
   //elm_genlist_homogeneous_set(gl, 1); // new
   elm_genlist_block_count_set(gl, 1);
   elm_genlist_no_select_mode_set(gl, 1);
   elm_object_scale_set(gl, 2.0);
   elm_box_pack_end(bx, gl);
   evas_object_show(gl);

   itc1.item_style     = "default";
   itc1.func.label_get = gl_label_get;
   itc1.func.icon_get  = gl_icon_get;
   itc1.func.state_get = gl_state_get;
   itc1.func.del       = gl_del;

   for (i = 0; i < 1; i++)
     {
        gli = elm_genlist_item_append(gl, &itc1,
                                      (void *)i/* item data */,
                                      NULL/* parent */,
                                      ELM_GENLIST_ITEM_NONE,
                                      NULL/* func */,
                                      (void *)(i * 10)/* func data */);
     }

   evas_object_resize(win, 320, 200);
   evas_object_show(win);
}

EAPI int elm_main(int argc, char **argv)
{
        test_genlist(0,0,0);

        elm_run();
        elm_shutdown();
        return 0;
}
ELM_MAIN()
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to