1 #ifdef E_TYPEDEFS
2 
3 E_API extern int E_EVENT_REMEMBER_UPDATE;
4 E_API extern E_Config_DD *e_remember_edd;
5 typedef struct E_Event_Remember_Update
6 {
7    E_Client *ec;
8 } E_Event_Remember_Update;
9 typedef struct _E_Remember E_Remember;
10 
11 #define E_REMEMBER_VERSION 1
12 
13 #define E_REMEMBER_MATCH_NAME             (1 << 0)
14 #define E_REMEMBER_MATCH_CLASS            (1 << 1)
15 #define E_REMEMBER_MATCH_TITLE            (1 << 2)
16 #define E_REMEMBER_MATCH_ROLE             (1 << 3)
17 #define E_REMEMBER_MATCH_TYPE             (1 << 4)
18 #define E_REMEMBER_MATCH_TRANSIENT        (1 << 5)
19 
20 #define E_REMEMBER_APPLY_POS              (1 << 0)
21 #define E_REMEMBER_APPLY_SIZE             (1 << 1)
22 #define E_REMEMBER_APPLY_LAYER            (1 << 2)
23 #define E_REMEMBER_APPLY_LOCKS            (1 << 3)
24 #define E_REMEMBER_APPLY_BORDER           (1 << 4)
25 #define E_REMEMBER_APPLY_STICKY           (1 << 5)
26 #define E_REMEMBER_APPLY_DESKTOP          (1 << 6)
27 #define E_REMEMBER_APPLY_SHADE            (1 << 7)
28 #define E_REMEMBER_APPLY_ZONE             (1 << 8)
29 #define E_REMEMBER_APPLY_RUN              (1 << 9)
30 #define E_REMEMBER_APPLY_SKIP_WINLIST     (1 << 10)
31 #define E_REMEMBER_APPLY_SKIP_PAGER       (1 << 11)
32 #define E_REMEMBER_APPLY_SKIP_TASKBAR     (1 << 12)
33 #define E_REMEMBER_APPLY_ICON_PREF        (1 << 13)
34 #define E_REMEMBER_SET_FOCUS_ON_START     (1 << 14)
35 #define E_REMEMBER_APPLY_FULLSCREEN       (1 << 15)
36 #define E_REMEMBER_APPLY_OFFER_RESISTANCE (1 << 16)
37 #define E_REMEMBER_APPLY_OPACITY          (1 << 17)
38 #define E_REMEMBER_APPLY_UUID             (1 << 18)
39 #define E_REMEMBER_APPLY_VOLUME           (1 << 19)
40 
41 #define E_REMEMBER_INTERNAL_DIALOGS       (1 << 0)
42 #define E_REMEMBER_INTERNAL_FM_WINS       (1 << 1)
43 
44 #else
45 #ifndef E_REMEMBER_H
46 #define E_REMEMBER_H
47 
48 struct _E_Remember
49 {
50    unsigned int  version;
51    int           match;
52    int           no_reopen;
53    unsigned char apply_first_only;
54    unsigned char keep_settings;
55    int           used_count;
56    const char   *name;
57    const char   *class;
58    const char   *title;
59    const char   *role;
60    int           type;
61    unsigned char transient;
62    int           apply;
63    int           max_score;
64    struct
65    {
66       int           pos_x, pos_y;
67       int           res_x, res_y;
68       int           pos_w, pos_h;
69       int           w, h;
70       int           frame_w, frame_h;
71       int           layer;
72       unsigned int maximize; //just direction
73 
74       unsigned char lock_user_location;
75       unsigned char lock_client_location;
76       unsigned char lock_user_size;
77       unsigned char lock_client_size;
78       unsigned char lock_user_stacking;
79       unsigned char lock_client_stacking;
80       unsigned char lock_user_iconify;
81       unsigned char lock_client_iconify;
82       unsigned char lock_user_desk;
83       unsigned char lock_client_desk;
84       unsigned char lock_user_sticky;
85       unsigned char lock_client_sticky;
86       unsigned char lock_user_shade;
87       unsigned char lock_client_shade;
88       unsigned char lock_user_maximize;
89       unsigned char lock_client_maximize;
90       unsigned char lock_user_fullscreen;
91       unsigned char lock_client_fullscreen;
92       unsigned char lock_border;
93       unsigned char lock_close;
94       unsigned char lock_focus_in;
95       unsigned char lock_focus_out;
96       unsigned char lock_life;
97 
98       const char   *border;
99 
100       unsigned char sticky;
101       unsigned char shaded;
102       unsigned char fullscreen;
103       unsigned char skip_winlist;
104       unsigned char skip_pager;
105       unsigned char skip_taskbar;
106       unsigned char icon_preference;
107       unsigned char offer_resistance;
108 
109       int           desk_x, desk_y;
110       int           zone;
111       const char   *command;
112       const char   *desktop_file;
113       unsigned char opacity;
114 
115       int           volume;
116       int           volume_min;
117       int           volume_max;
118       unsigned char mute;
119    } prop;
120    Eina_Stringshare *uuid;
121    int pid;
122    Eina_Bool applying E_BITFIELD;
123 };
124 
125 EINTERN int      e_remember_init(E_Startup_Mode mode);
126 EINTERN int      e_remember_shutdown(void);
127 E_API E_Remember *e_remember_new(void);
128 E_API int         e_remember_usable_get(E_Remember *rem);
129 E_API void        e_remember_use(E_Remember *rem);
130 E_API void        e_remember_unuse(E_Remember *rem);
131 E_API void        e_remember_del(E_Remember *rem);
132 E_API E_Remember *e_remember_find(E_Client *ec);
133 E_API E_Remember *e_remember_find_usable(E_Client *ec);
134 E_API E_Remember *e_remember_sr_find(E_Client *ec);
135 E_API void        e_remember_match_update(E_Remember *rem);
136 E_API void        e_remember_update(E_Client *ec);
137 E_API int         e_remember_default_match_set(E_Remember *rem, E_Client *ec);
138 E_API void        e_remember_internal_save(void);
139 
140 E_API void e_remember_apply(E_Remember *rem, E_Client *ec);
141 #endif
142 #endif
143