1 #ifdef E_TYPEDEFS
2 
3 typedef struct _E_Desk E_Desk;
4 typedef struct _E_Event_Desk_Show E_Event_Desk_Show;
5 typedef struct _E_Event_Desk_Before_Show E_Event_Desk_Before_Show;
6 typedef struct _E_Event_Desk_After_Show E_Event_Desk_After_Show;
7 typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
8 typedef struct _E_Event_Desk_Window_Profile_Change E_Event_Desk_Window_Profile_Change;
9 
10 typedef void (*E_Desk_Flip_Cb)(void *data, E_Desk *desk, int dx, int dy, Eina_Bool show);
11 
12 #else
13 #ifndef E_DESK_H
14 #define E_DESK_H
15 
16 #define E_DESK_TYPE (int)0xE0b01005
17 
18 typedef enum
19 {
20    E_DESKFLIP_ANIMATION_MODE_OFF,
21    E_DESKFLIP_ANIMATION_MODE_PANE,
22    E_DESKFLIP_ANIMATION_MODE_ZOOM
23 } E_Deskflip_Animation_Mode;
24 
25 struct _E_Desk
26 {
27    E_Object             e_obj_inherit;
28 
29    E_Zone              *zone;
30    Eina_Stringshare    *name;
31    Eina_Stringshare    *window_profile;
32    int                  x, y;
33    unsigned char        visible E_BITFIELD;
34    unsigned int         deskshow_toggle E_BITFIELD;
35    Eina_List            *fullscreen_clients;
36 
37    Evas_Object         *bg_object;
38 
39    unsigned int animate_count;
40    Eina_Inlist *obstacles;
41 };
42 
43 struct _E_Event_Desk_Show
44 {
45    E_Desk   *desk;
46 };
47 
48 struct _E_Event_Desk_Before_Show
49 {
50    E_Desk   *desk;
51 };
52 
53 struct _E_Event_Desk_After_Show
54 {
55    E_Desk   *desk;
56 };
57 
58 struct _E_Event_Desk_Name_Change
59 {
60    E_Desk   *desk;
61 };
62 
63 struct _E_Event_Desk_Window_Profile_Change
64 {
65    E_Desk   *desk;
66 };
67 
68 EINTERN int          e_desk_init(void);
69 EINTERN int          e_desk_shutdown(void);
70 E_API E_Desk      *e_desk_new(E_Zone *zone, int x, int y);
71 E_API void         e_desk_name_set(E_Desk *desk, const char *name);
72 E_API void         e_desk_name_add(int zone, int desk_x, int desk_y, const char *name);
73 E_API void         e_desk_name_del(int zone, int desk_x, int desk_y);
74 E_API void         e_desk_name_update(void);
75 E_API void         e_desk_show(E_Desk *desk);
76 E_API void         e_desk_deskshow(E_Zone *zone);
77 E_API E_Client    *e_desk_last_focused_focus(E_Desk *desk);
78 E_API E_Client    *e_desk_client_top_visible_get(const E_Desk *desk);
79 E_API E_Desk      *e_desk_current_get(E_Zone *zone);
80 E_API E_Desk      *e_desk_at_xy_get(const E_Zone *zone, int x, int y);
81 E_API E_Desk      *e_desk_at_pos_get(E_Zone *zone, int pos);
82 E_API void         e_desk_xy_get(E_Desk *desk, int *x, int *y);
83 E_API void         e_desk_next(E_Zone *zone);
84 E_API void         e_desk_prev(E_Zone *zone);
85 E_API void         e_desk_row_add(E_Zone *zone);
86 E_API void         e_desk_row_remove(E_Zone *zone);
87 E_API void         e_desk_col_add(E_Zone *zone);
88 E_API void         e_desk_col_remove(E_Zone *zone);
89 E_API void         e_desk_window_profile_set(E_Desk *desk, const char *profile);
90 E_API void         e_desk_window_profile_update(E_Zone *zone);
91 
92 E_API void         e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data);
93 E_API void         e_desk_flip_end(E_Desk *desk);
94 
95 E_API unsigned int e_desks_count(void);
96 
97 extern E_API int E_EVENT_DESK_SHOW;
98 extern E_API int E_EVENT_DESK_BEFORE_SHOW;
99 extern E_API int E_EVENT_DESK_AFTER_SHOW;
100 extern E_API int E_EVENT_DESK_DESKSHOW;
101 extern E_API int E_EVENT_DESK_NAME_CHANGE;
102 extern E_API int E_EVENT_DESK_WINDOW_PROFILE_CHANGE;
103 
104 #endif
105 #endif
106