aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/e_remember.h
blob: 52dff59be87b8b1501090b3374f260c08d755eb2 (plain) (blame)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
 */
#ifdef E_TYPEDEFS

typedef struct _E_Remember E_Remember;

#define E_REMEMBER_MATCH_NAME (1 << 0)
#define E_REMEMBER_MATCH_CLASS (1 << 1)
#define E_REMEMBER_MATCH_TITLE (1 << 2)
#define E_REMEMBER_MATCH_ROLE (1 << 3)
#define E_REMEMBER_MATCH_TYPE (1 << 4)
#define E_REMEMBER_MATCH_TRANSIENT (1 << 5)

#define E_REMEMBER_APPLY_POS (1 << 0)
#define E_REMEMBER_APPLY_SIZE (1 << 1)
#define E_REMEMBER_APPLY_LAYER (1 << 2)
#define E_REMEMBER_APPLY_LOCKS (1 << 3)
#define E_REMEMBER_APPLY_BORDER (1 << 4)
#define E_REMEMBER_APPLY_STICKY (1 << 5)
#define E_REMEMBER_APPLY_DESKTOP (1 << 6)
#define E_REMEMBER_APPLY_SHADE (1 << 7)
#define E_REMEMBER_APPLY_ZONE (1 << 8)
#define E_REMEMBER_APPLY_RUN (1 << 9)
#define E_REMEMBER_APPLY_SKIP_WINLIST (1 << 10)

#else
#ifndef E_REMEMBER_H
#define E_REMEMBER_H

struct _E_Remember
{
   unsigned char  delete_me;
   int            match;
   unsigned char  apply_first_only;
   int            used_count;
   char          *name, *class, *title, *role;
   int            type;
   unsigned char  transient;
   int            apply;
   struct {
      int           pos_x, pos_y;
      int           res_x, res_y;
      int           pos_w, pos_h;
      
      int           w, h;
      
      int           layer;
      
      unsigned char lock_user_location; 
      unsigned char lock_client_location; 
      unsigned char lock_user_size; 
      unsigned char lock_client_size; 
      unsigned char lock_user_stacking; 
      unsigned char lock_client_stacking; 
      unsigned char lock_user_iconify; 
      unsigned char lock_client_iconify; 
      unsigned char lock_user_desk;
      unsigned char lock_client_desk;
      unsigned char lock_user_sticky; 
      unsigned char lock_client_sticky; 
      unsigned char lock_user_shade; 
      unsigned char lock_client_shade; 
      unsigned char lock_user_maximize; 
      unsigned char lock_client_maximize; 
      unsigned char lock_user_fullscreen; 
      unsigned char lock_client_fullscreen; 
      unsigned char lock_border; 
      unsigned char lock_close; 
      unsigned char lock_focus_in; 
      unsigned char lock_focus_out; 
      unsigned char lock_life;
      
      char         *border;
      
      unsigned char sticky;
      
      unsigned char shaded;
      
      unsigned char skip_winlist;
      
      int           desk_x, desk_y;
      
      int           zone;
      
      int           head;
      char         *command;
   } prop;
};

EAPI int          e_remember_init(void);
EAPI int          e_remember_shutdown(void);
EAPI E_Remember  *e_remember_new(void);
EAPI int          e_remember_usable_get(E_Remember *rem);
EAPI void         e_remember_use(E_Remember *rem);
EAPI void         e_remember_unuse(E_Remember *rem);
EAPI void         e_remember_del(E_Remember *rem);
EAPI E_Remember  *e_remember_find(E_Border *bd);
EAPI void         e_remember_update(E_Remember *rem, E_Border *bd);
    
#endif
#endif