aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/e_int_menus.h
blob: 047be9ef9374412c362aa95fd5278a1404c93416 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifdef E_TYPEDEFS

typedef struct _E_Int_Menu_Augmentation E_Int_Menu_Augmentation;

#else
#ifndef E_INT_MENUS_H
#define E_INT_MENUS_H

typedef enum
{
   E_CLIENTLIST_GROUP_NONE,
   E_CLIENTLIST_GROUP_DESK,
   E_CLIENTLIST_GROUP_CLASS
} E_Clientlist_Group_Type;

typedef enum
{
   E_CLIENTLIST_GROUP_SEP_NONE,
   E_CLIENTLIST_GROUP_SEP_BAR,
   E_CLIENTLIST_GROUP_SEP_MENU
} E_Clientlist_Group_Sep_Type;

typedef enum
{
   E_CLIENTLIST_SORT_NONE,
   E_CLIENTLIST_SORT_ALPHA,
   E_CLIENTLIST_SORT_ZORDER,
   E_CLIENTLIST_SORT_MOST_RECENT
} E_Clientlist_Group_Sort_Type;

typedef enum
{
   E_CLIENTLIST_GROUPICONS_OWNER,
   E_CLIENTLIST_GROUPICONS_CURRENT,
   E_CLIENTLIST_GROUPICONS_SEP,
} E_Clientlist_Groupicons_Type;


#define E_CLIENTLIST_MAX_CAPTION_LEN 256

struct _E_Int_Menu_Augmentation
{
   const char *sort_key;
   struct
     {
        void (*func) (void *data, E_Menu *m);
        void *data;
     } add, del;
};

EAPI E_Menu *e_int_menus_main_new(void);
EAPI E_Menu *e_int_menus_desktops_new(void);
EAPI E_Menu *e_int_menus_clients_new(void);
EAPI E_Menu *e_int_menus_apps_new(const char *dir);
EAPI E_Menu *e_int_menus_favorite_apps_new(void);
EAPI E_Menu *e_int_menus_all_apps_new(void);
EAPI E_Menu *e_int_menus_config_new(void);
EAPI E_Menu *e_int_menus_lost_clients_new(void);
EAPI E_Menu *e_int_menus_shelves_new(void);

EAPI E_Int_Menu_Augmentation *e_int_menus_menu_augmentation_add(const char *menu,
								void (*func_add) (void *data, E_Menu *m),
								void *data_add,
								void (*func_del) (void *data, E_Menu *m),
								void *data_del);
EAPI E_Int_Menu_Augmentation *e_int_menus_menu_augmentation_add_sorted(const char *menu,
								       const char *sort_key,
								       void (*func_add) (void *data, E_Menu *m),
								       void *data_add,
								       void (*func_del) (void *data, E_Menu *m),
								       void *data_del);
EAPI void                     e_int_menus_menu_augmentation_del(const char *menu,
								E_Int_Menu_Augmentation *maug);

EAPI void                     e_int_menus_menu_augmentation_point_disabled_set(const char *menu,
                                       Eina_Bool disabled);

EINTERN void e_int_menus_init(void);
EINTERN void e_int_menus_shutdown(void);
#endif
#endif