summaryrefslogtreecommitdiff
path: root/src/bin/e_order.h
blob: 88edfedb8af293f13461200461f8154d662bff6d (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
#ifdef E_TYPEDEFS

typedef struct _E_Order        E_Order;

#else
#ifndef E_ORDER_H
#define E_ORDER_H

#define E_ORDER_TYPE 0xE0b01020

struct _E_Order
{
   E_Object            e_obj_inherit;

   const char         *path;
   Eina_List          *desktops; /* A list of Efreet_Desktop files this .order contains */
   Ecore_File_Monitor *monitor; /* Check for changes int the .order file */
   Ecore_Timer        *delay;

   struct {
	void (*update)(void *data, E_Order *eo);
	void *data;
   } cb;
};

EINTERN int e_order_init(void);
EINTERN int e_order_shutdown(void);

EAPI E_Order *e_order_new(const char *path);
EAPI void     e_order_update_callback_set(E_Order *eo, void (*cb)(void *data, E_Order *eo), void *data);

EAPI void e_order_remove(E_Order *eo, Efreet_Desktop *desktop);
EAPI void e_order_append(E_Order *eo, Efreet_Desktop *desktop);
EAPI void e_order_prepend_relative(E_Order *eo, Efreet_Desktop *desktop, Efreet_Desktop *before);
EAPI void e_order_files_append(E_Order *eo, Eina_List *files);
EAPI void e_order_files_prepend_relative(E_Order *eo, Eina_List *files, Efreet_Desktop *before);
EAPI void e_order_clear(E_Order *eo);

#endif
#endif