4 * Copyright (c) Tuomo Valkonen 1999-2006.
6 * Ion is free software; you can redistribute it and/or modify it under
7 * the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation; either version 2.1 of the License, or
9 * (at your option) any later version.
12 #ifndef ION_IONCORE_MANAGE_H
13 #define ION_IONCORE_MANAGE_H
15 #include <libextl/extl.h>
18 INTRSTRUCT(WManageParams);
20 #include "clientwin.h"
22 #include "rectangle.h"
27 #define MANAGEPARAMS_INIT \
28 {FALSE, FALSE, FALSE, FALSE, FALSE, ForgetGravity, {0, 0, 0, 0}, NULL}
31 MANAGE_REDIR_PREFER_YES,
32 MANAGE_REDIR_PREFER_NO,
33 MANAGE_REDIR_STRICT_YES,
34 MANAGE_REDIR_STRICT_NO
37 DECLSTRUCT(WManageParams){
49 typedef WRegion *WRegionIterator(void *st);
52 extern ExtlTab manageparams_to_table(const WManageParams *mp);
55 extern WScreen *clientwin_find_suitable_screen(WClientWin *cwin,
56 const WManageParams *param);
60 extern bool clientwin_do_manage_default(WClientWin *cwin,
61 const WManageParams *param);
63 extern bool region_manage_clientwin(WRegion *reg, WClientWin *cwin,
64 const WManageParams *par, int redir);
66 DYNFUN WPHolder *region_prepare_manage(WRegion *reg, const WClientWin *cwin,
67 const WManageParams *par, int redir);
69 extern WPHolder *region_prepare_manage_default(WRegion *reg,
70 const WClientWin *cwin,
71 const WManageParams *par,
75 extern WPHolder *region_prepare_manage_transient(WRegion *reg,
76 const WClientWin *cwin,
77 const WManageParams *param,
80 extern WPHolder *region_prepare_manage_transient_default(WRegion *reg,
81 const WClientWin *cwin,
82 const WManageParams *param,
87 extern bool region_rescue_clientwins(WRegion *reg, WPHolder *ph);
88 extern bool region_rescue_child_clientwins(WRegion *reg, WPHolder *ph);
89 extern bool region_rescue_some_clientwins(WRegion *reg, WPHolder *ph,
90 WRegionIterator *iter, void *st);
93 #endif /* ION_IONCORE_MANAGE_H */