efl

Форк
0
/
ef_menu.c 
157 строк · 2.9 Кб
1
#ifdef HAVE_CONFIG_H
2
# include <config.h>
3
#endif
4

5
#include <stdio.h>
6
#include <unistd.h>
7

8
#include <Efreet.h>
9

10
#include "ef_test.h"
11

12
#if 0
13
static void
14
ef_menu_desktop_exec(Efreet_Menu *menu)
15
{
16
   Eina_List *l;
17

18
   if (menu->entries)
19
     {
20
        Efreet_Desktop *desktop;
21

22
        EINA_LIST_FOREACH(menu->entries, l, desktop)
23
          efreet_desktop_exec(desktop, NULL);
24
     }
25
   if (menu->sub_menus)
26
     {
27
        Efreet_Menu *sub_menu;
28

29
        EINA_LIST_FOREACH(menu->sub_menus, l, sub_menu)
30
          ef_menu_desktop_exec(sub_menu);
31
     }
32
}
33
#endif
34

35
int
36
ef_cb_menu_get(void)
37
{
38
   Efreet_Menu *menu;
39

40
   menu = efreet_menu_get();
41
   //    menu = efreet_menu_parse(ef_test_path_get("test.menu"));
42
   if (!menu)
43
     {
44
        printf("efreet_menu_get() returned NULL\n");
45
        return 0;
46
     }
47
   printf("\n");
48
   efreet_menu_dump(menu, "");
49
   efreet_menu_free(menu);
50

51
   return 1;
52
}
53

54
int
55
ef_cb_menu_with_slashes(void)
56
{
57
   Efreet_Menu *menu;
58

59
   menu = efreet_menu_parse(ef_test_path_get("test_menu_slash_bad.menu"));
60
   if (menu)
61
     {
62
        printf("efreet_menu_get() didn't return NULL\n");
63
        efreet_menu_free(menu);
64
        return 0;
65
     }
66

67
   return 1;
68
}
69

70
int
71
ef_cb_menu_save(void)
72
{
73
   Efreet_Menu *menu;
74
   int ret;
75

76
   //    menu = efreet_menu_get();
77
   menu = efreet_menu_parse(ef_test_path_get("test.menu"));
78
   if (!menu)
79
     {
80
        printf("efreet_menu_get() returned NULL\n");
81
        return 0;
82
     }
83
   unlink("/tmp/test.menu");
84
   ret = efreet_menu_save(menu, "/tmp/test.menu");
85
   efreet_menu_free(menu);
86
   return ret;
87
}
88

89
int
90
ef_cb_menu_edit(void)
91
{
92
   Efreet_Menu *menu, *entry;
93
   Efreet_Desktop *desktop;
94

95
   //    menu = efreet_menu_get();
96
   menu = efreet_menu_parse(ef_test_path_get("test.menu"));
97
   if (!menu)
98
     {
99
        printf("efreet_menu_get() returned NULL\n");
100
        return 0;
101
     }
102
#if 0
103
   printf("\n");
104
   efreet_menu_dump(menu, "");
105
   printf("\n");
106
#endif
107

108
   desktop = efreet_desktop_get(ef_test_path_get("test.desktop"));
109
   if (!desktop)
110
     {
111
        efreet_menu_free(menu);
112
        printf("No desktop found.\n");
113
        return 0;
114
     }
115

116
   efreet_menu_desktop_insert(menu, desktop, 0);
117
#if 0
118
   printf("\n");
119
   efreet_menu_dump(menu, "");
120
   printf("\n");
121
#endif
122
   entry = eina_list_data_get(menu->entries);
123
   if (desktop != entry->desktop)
124
     {
125
        efreet_menu_free(menu);
126
        return 0;
127
     }
128

129
   efreet_menu_desktop_insert(menu, desktop, 2);
130
#if 0
131
   printf("\n");
132
   efreet_menu_dump(menu, "");
133
   printf("\n");
134
#endif
135
   entry = eina_list_nth(menu->entries, 2);
136
   if (desktop != entry->desktop)
137
     {
138
        efreet_menu_free(menu);
139
        return 0;
140
     }
141

142
   efreet_menu_desktop_insert(menu, desktop, -1);
143
#if 0
144
   printf("\n");
145
   efreet_menu_dump(menu, "");
146
   printf("\n");
147
#endif
148
   entry = eina_list_data_get(eina_list_last(menu->entries));
149
   if (desktop != entry->desktop)
150
     {
151
        efreet_menu_free(menu);
152
        return 0;
153
     }
154

155
   efreet_menu_free(menu);
156
   return 1;
157
}
158

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

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

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

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