efl

Форк
0
/
test_icon_desktops.c 
107 строк · 2.7 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4
#include <Elementary.h>
5

6
static Elm_Genlist_Item_Class *it_desk = NULL;
7

8
static char *
9
desk_gl_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED)
10
{
11
#ifdef ELM_EFREET
12
   Efreet_Desktop *d = (Efreet_Desktop *)data;
13
   return strdup(d->name);
14
#else
15
   return NULL;
16
   (void)data;
17
#endif
18
}
19
static Evas_Object *
20
desk_gl_content_get(void *data, Evas_Object *obj, const char *part)
21
{
22
#ifdef ELM_EFREET
23
   Efreet_Desktop *d = (Efreet_Desktop *)data;
24
   Evas_Object *ic;
25

26
   ic = elm_icon_add(obj);
27
   evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
28
   if (!(!strcmp(part, "elm.swallow.icon"))) return ic;
29
   if (!d->icon) return ic;
30
   elm_icon_standard_set(ic, d->icon);
31
   return ic;
32
#else
33
   return NULL;
34
   (void)data;
35
   (void)obj;
36
   (void)part;
37
#endif
38
}
39
static void
40
desk_gl_del(void *data, Evas_Object *obj EINA_UNUSED)
41
{
42
#ifdef ELM_EFREET
43
   Efreet_Desktop *d = (Efreet_Desktop *)data;
44
   efreet_desktop_free(d);
45
#else
46
   return;
47
   (void)data;
48
#endif
49
}
50

51
#ifdef ELM_EFREET
52
static void
53
desktop_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
54
{
55
   Efreet_Desktop *d = data;
56
   if (!d) return;
57
   printf("Selected Desktop Icon:\n");
58
   printf("\tname : %s\n", d->name);
59
   printf("\ticon : %s\n", d->icon);
60
   printf("\tgeneric_name : %s\n", d->generic_name);
61
}
62
#endif
63

64
void
65
test_icon_desktops(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
66
{
67
   Evas_Object *win, *gl;
68
#ifdef ELM_EFREET
69
   Eina_List *desktops;
70
#endif
71

72
   win = elm_win_util_standard_add("icon-desktops", "Icon Desktops");
73
   elm_win_autodel_set(win, EINA_TRUE);
74

75
   it_desk = elm_genlist_item_class_new();
76
   it_desk->item_style     = "default";
77
   it_desk->func.text_get = desk_gl_text_get;
78
   it_desk->func.content_get  = desk_gl_content_get;
79
   it_desk->func.state_get = NULL;
80
   it_desk->func.del       = desk_gl_del;
81

82
   gl = elm_genlist_add(win);
83
   evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
84
   elm_win_resize_object_add(win, gl);
85
   evas_object_show(gl);
86

87
#ifdef ELM_EFREET
88
   if (elm_need_efreet())
89
     {
90
       desktops = efreet_util_desktop_name_glob_list("*");
91
       if (desktops)
92
         {
93
           Efreet_Desktop *d;
94

95
           EINA_LIST_FREE(desktops, d)
96
             elm_genlist_item_append(gl, it_desk, d,
97
                                    NULL, ELM_GENLIST_ITEM_NONE,
98
                                    desktop_sel, d);
99
         }
100
     }
101
#endif
102

103
   elm_genlist_item_class_free(it_desk);
104
   evas_object_resize(win, 320 * elm_config_scale_get(),
105
                           480 * elm_config_scale_get());
106
   evas_object_show(win);
107
}
108

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.