2 * client.h - client management header
4 * Copyright © 2007 Julien Danjou <julien@danjou.info>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #ifndef AWESOME_CLIENT_H
23 #define AWESOME_CLIENT_H
27 /** Mask shorthands, used in event.c and client.c */
28 #define BUTTONMASK (ButtonPressMask | ButtonReleaseMask)
30 typedef struct Client Client
;
35 /** Window geometry */
37 /** Real window geometry for floating */
39 int basew
, baseh
, incw
, inch
, maxw
, maxh
, minw
, minh
;
40 int minax
, maxax
, minay
, maxay
;
43 int border
, oldborder
;
44 Bool isbanned
, isfixed
, ismax
, isfloating
, wasfloating
;
54 /** First time viewed on new layout */
58 void attach(Client
*); /* attaches c to global client list */
59 void ban(Client
*); /* bans c */
60 void configure(Client
*); /* send synthetic configure event */
61 void detach(Client
*); /* detaches c from global client list */
62 void focus(Display
*, DC
*, Client
*, Bool
, awesome_config
*); /* focus c if visible && !NULL, or focus top visible */
63 void manage(Display
*, DC
*, Window
, XWindowAttributes
*, awesome_config
*);
64 void resize(Client
*, int, int, int, int, Bool
); /* resize with given coordinates c */
65 void unban(Client
*); /* unbans c */
66 void unmanage(Client
*, DC
*, long, awesome_config
*); /* unmanage c */
67 void updatesizehints(Client
*); /* update the size hint variables of c */
68 void updatetitle(Client
*); /* update the name of c */
69 void saveprops(Client
* c
, int); /* saves client properties */
70 void set_shape(Client
*);
71 void uicb_killclient(Display
*, DC
*, awesome_config
*, const char *); /* kill client */
72 void uicb_moveresize(Display
*, DC
*, awesome_config
*, const char *); /* move and resize window */
73 void uicb_settrans(Display
*, DC
*, awesome_config
*, const char *);
74 void uicb_setborder(Display
*, DC
*, awesome_config
*, const char *);