1 //Compile with:
2 // gcc -o fileviewlist fileviewlist.c `pkg-config --cflags --libs elementary`
3 
4 #ifdef HAVE_CONFIG_H
5 # include "config.h"
6 #else
7 # define EFL_BETA_API_SUPPORT 1
8 #endif
9 
10 #include <Elementary.h>
11 #include <Efl.h>
12 #include <Eio.h>
13 #include <efl_io_model.eo.h>
14 #include <stdio.h>
15 
16 #define EFL_MODEL_TEST_FILENAME_PATH "/tmp"
17 
18 struct _Efl_Model_Test_Fileview_Data
19 {
20    Eo *filemodel;
21    Eo *fileview;
22 };
23 typedef struct _Efl_Model_Test_Fileview_Data Efl_Model_Test_Fileview_Data;
24 
25 static void
_cleanup_cb(void * data,Evas * e EINA_UNUSED,Evas_Object * obj EINA_UNUSED,void * event_info EINA_UNUSED)26 _cleanup_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
27 {
28    Efl_Model_Test_Fileview_Data *priv = (Efl_Model_Test_Fileview_Data *)data;
29    efl_unref(priv->fileview);
30    efl_unref(priv->filemodel);
31 }
32 
33 EAPI_MAIN int
elm_main(int argc EINA_UNUSED,char ** argv EINA_UNUSED)34 elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
35 {
36    Efl_Model_Test_Fileview_Data priv;
37    Evas_Object *win = NULL;
38    Evas_Object *genlist = NULL;
39    char *dirname;
40 
41    memset(&priv, 0, sizeof(Efl_Model_Test_Fileview_Data));
42 
43    ecore_init();
44 
45    if(argv[1] != NULL) dirname = argv[1];
46    else dirname = EFL_MODEL_TEST_FILENAME_PATH;
47 
48    win = elm_win_util_standard_add("viewlist", "Viewlist");
49    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
50    elm_win_autodel_set(win, EINA_TRUE);
51 
52    genlist = elm_genlist_add(win);
53    evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
54    evas_object_show(genlist);
55 
56    priv.filemodel = efl_add(EFL_IO_MODEL_CLASS, win, efl_io_model_path_set(efl_added, dirname));
57    priv.fileview = efl_add(ELM_VIEW_LIST_CLASS, win, elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_TREE, "double_label"));
58    elm_view_list_model_set(priv.fileview, priv.filemodel);
59    evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, &priv);
60 
61    elm_view_list_property_connect(priv.fileview, "filename", "elm.text");
62    elm_view_list_property_connect(priv.fileview, "mtime", "elm.text.sub");
63 
64    evas_object_resize(win, 320, 520);
65    elm_win_resize_object_add(win, genlist);
66    evas_object_show(win);
67 
68    elm_run();
69 
70    elm_shutdown();
71    ecore_shutdown();
72 
73    return 0;
74 }
75 ELM_MAIN()
76 
77