]> git.decadent.org.uk Git - ion3.git/blob - ioncore/framedpholder.h
[svn-upgrade] Integrating new upstream version, ion3 (20070506)
[ion3.git] / ioncore / framedpholder.h
1 /*
2  * ion/ioncore/framedpholder.h
3  *
4  * Copyright (c) Tuomo Valkonen 2005-2007. 
5  *
6  * See the included file LICENSE for details.
7  */
8
9 #ifndef ION_IONCORE_FRAMEDPHOLDER_H
10 #define ION_IONCORE_FRAMEDPHOLDER_H
11
12 #include "common.h"
13 #include "pholder.h"
14 #include "attach.h"
15 #include "frame.h"
16
17
18 #define FRAMEDPARAM_INIT {0, 0, {0, 0, 0, 0}, FRAME_MODE_FLOATING /*, NULL*/}
19
20 INTRSTRUCT(WFramedParam);
21
22 DECLSTRUCT(WFramedParam){
23     uint inner_geom_gravity_set:1;
24     int gravity;
25     WRectangle inner_geom;
26     WFrameMode mode;
27     /*WRegionSimpleCreateFn *mkframe;*/
28 };
29
30
31 DECLCLASS(WFramedPHolder){
32     WPHolder ph;
33     WPHolder *cont;
34     WFramedParam param;
35 };
36
37
38 extern WFramedPHolder *create_framedpholder(WPHolder *cont,
39                                             const WFramedParam *param);
40
41 extern bool framedpholder_init(WFramedPHolder *ph, WPHolder *cont,
42                                const WFramedParam *param);
43
44 extern void framedpholder_deinit(WFramedPHolder *ph);
45
46 extern bool framedpholder_do_goto(WFramedPHolder *ph);
47
48 extern WPHolder *framedpholder_do_root(WFramedPHolder *ph);
49
50 extern WRegion *framedpholder_do_target(WFramedPHolder *ph);
51
52 extern WRegion *framedpholder_do_attach(WFramedPHolder *ph, int flags,
53                                         WRegionAttachData *data);
54
55 extern WRegion *region_attach_framed(WRegion *reg, WFramedParam *param,
56                                      WRegionAttachFn *fn, void *fn_param,
57                                      WRegionAttachData *data);
58
59 extern void frame_adjust_to_initial(WFrame *frame, const WFitParams *fp, 
60                                     const WFramedParam *param, WRegion *reg);
61
62 #endif /* ION_IONCORE_FRAMEDPHOLDER_H */