aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/e_remember.h
blob: fafd185982e382ae3c80b54050afd8fd994d8712 (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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#ifdef E_TYPEDEFS

E_API extern int E_EVENT_REMEMBER_UPDATE;
E_API extern E_Config_DD *e_remember_edd;
typedef struct E_Event_Remember_Update
{
   E_Client *ec;
} E_Event_Remember_Update;
typedef struct _E_Remember E_Remember;

#define E_REMEMBER_VERSION 1

#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)
#define E_REMEMBER_APPLY_SKIP_PAGER       (1 << 11)
#define E_REMEMBER_APPLY_SKIP_TASKBAR     (1 << 12)
#define E_REMEMBER_APPLY_ICON_PREF        (1 << 13)
#define E_REMEMBER_SET_FOCUS_ON_START     (1 << 14)
#define E_REMEMBER_APPLY_FULLSCREEN       (1 << 15)
#define E_REMEMBER_APPLY_OFFER_RESISTANCE (1 << 16)
#define E_REMEMBER_APPLY_OPACITY          (1 << 17)
#define E_REMEMBER_APPLY_UUID             (1 << 18)
#define E_REMEMBER_APPLY_VOLUME           (1 << 19)

#define E_REMEMBER_INTERNAL_DIALOGS       (1 << 0)
#define E_REMEMBER_INTERNAL_FM_WINS       (1 << 1)

#else
#ifndef E_REMEMBER_H
#define E_REMEMBER_H

struct _E_Remember
{
   unsigned int  version;
   int           match;
   int           no_reopen;
   unsigned char apply_first_only;
   unsigned char keep_settings;
   int           used_count;
   const char   *name;
   const char   *class;
   const char   *title;
   const char   *role;
   int           type;
   unsigned char transient;
   int           apply;
   int           max_score;
   struct
   {
      int           pos_x, pos_y;
      int           res_x, res_y;
      int           pos_w, pos_h;
      int           w, h;
      int           layer;
      unsigned int maximize; //just direction

      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;

      const char   *border;

      unsigned char sticky;
      unsigned char shaded;
      unsigned char fullscreen;
      unsigned char skip_winlist;
      unsigned char skip_pager;
      unsigned char skip_taskbar;
      unsigned char icon_preference;
      unsigned char offer_resistance;

      int           desk_x, desk_y;
      int           zone;
      const char   *command;
      const char   *desktop_file;
      unsigned char opacity;

      int           volume;
      int           volume_min;
      int           volume_max;
      unsigned char mute;
   } prop;
   Eina_Stringshare *uuid;
   int pid;
   Eina_Bool applying E_BITFIELD;
};

EINTERN int      e_remember_init(E_Startup_Mode mode);
EINTERN int      e_remember_shutdown(void);
E_API E_Remember *e_remember_new(void);
E_API int         e_remember_usable_get(E_Remember *rem);
E_API void        e_remember_use(E_Remember *rem);
E_API void        e_remember_unuse(E_Remember *rem);
E_API void        e_remember_del(E_Remember *rem);
E_API E_Remember *e_remember_find(E_Client *ec);
E_API E_Remember *e_remember_find_usable(E_Client *ec);
E_API E_Remember *e_remember_sr_find(E_Client *ec);
E_API void        e_remember_match_update(E_Remember *rem);
E_API void        e_remember_update(E_Client *ec);
E_API int         e_remember_default_match_set(E_Remember *rem, E_Client *ec);
E_API void        e_remember_internal_save(void);

E_API void e_remember_apply(E_Remember *rem, E_Client *ec);
#endif
#endif