summaryrefslogtreecommitdiff
path: root/src/modules/pager/e_mod_main.h
blob: ba01754a44b59ca76a1c978033e935a0d4923049 (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
#ifndef E_MOD_MAIN_H
#define E_MOD_MAIN_H

typedef struct _Config     Config;
typedef struct _Pager      Pager;
typedef struct _Pager_Desk Pager_Desk;
typedef struct _Pager_Win  Pager_Win;

struct _Config
{
   int    width, height;
   double x, y;
};

struct _Pager
{
   Evas_List    *managers;
   E_Menu       *config_menu;
   Evas         *evas;
   Evas_Object  *base, *screen;
   Evas_List    *desks;
   
   E_Config_DD  *conf_edd;
   Config       *conf;
   unsigned char move : 1;
   unsigned char resize : 1;
   Ecore_Event_Handler *ev_handler_container_resize;
   
   Ecore_Event_Handler *ev_handler_border_resize;
   Ecore_Event_Handler *ev_handler_border_move;
   Ecore_Event_Handler *ev_handler_border_add;
   Ecore_Event_Handler *ev_handler_border_remove;
   Ecore_Event_Handler *ev_handler_border_hide;
   Ecore_Event_Handler *ev_handler_border_show;
   Ecore_Event_Handler *ev_handler_border_desk_set;
   Ecore_Event_Handler *ev_handler_zone_desk_count_set;

   Evas_Coord    fx, fy, fw, fh, tw, th;
   Evas_Coord    xx, yy;

   /* FIXME: want to fix click detection once leftdrag is not used */
   Evas_Coord    clickhackx, clickhacky;
};

struct _Pager_Desk
{
   Evas_List   *wins;
   Evas_Object *obj;
   int          xpos, ypos;

   E_Desk      *desk;
   int          current:1;
};

struct _Pager_Win
{
   Evas_Object *obj;
   Evas_Object *icon;
   
   Pager_Desk  *owner;
   E_Border    *border;
};

EAPI void *init     (E_Module *m);
EAPI int   shutdown (E_Module *m);
EAPI int   save     (E_Module *m);
EAPI int   info     (E_Module *m);
EAPI int   about    (E_Module *m);

#endif