ion->notion
[notion/jeffpc.git] / ioncore / framedpholder.h
blob754731d05cd5dbeda8fb5b9fb9ec74b202f3dc6c
1 /*
2 * ion/ioncore/framedpholder.h
4 * Copyright (c) Tuomo Valkonen 2005-2009.
6 * See the included file LICENSE for details.
7 */
9 #ifndef ION_IONCORE_FRAMEDPHOLDER_H
10 #define ION_IONCORE_FRAMEDPHOLDER_H
12 #include "common.h"
13 #include "pholder.h"
14 #include "attach.h"
15 #include "frame.h"
18 #define FRAMEDPARAM_INIT {0, 0, {0, 0, 0, 0}, FRAME_MODE_FLOATING /*, NULL*/}
20 INTRSTRUCT(WFramedParam);
22 DECLSTRUCT(WFramedParam){
23 uint inner_geom_gravity_set:1;
24 int gravity;
25 WRectangle inner_geom;
26 WFrameMode mode;
27 /*WRegionSimpleCreateFn *mkframe;*/
31 DECLCLASS(WFramedPHolder){
32 WPHolder ph;
33 WPHolder *cont;
34 WFramedParam param;
35 Watch frame_watch;
39 extern WFramedPHolder *create_framedpholder(WPHolder *cont,
40 const WFramedParam *param);
42 extern bool framedpholder_init(WFramedPHolder *ph, WPHolder *cont,
43 const WFramedParam *param);
45 extern void framedpholder_deinit(WFramedPHolder *ph);
47 extern bool framedpholder_do_goto(WFramedPHolder *ph);
49 extern bool framedpholder_stale(WFramedPHolder *ph);
51 extern WRegion *framedpholder_do_target(WFramedPHolder *ph);
53 extern WRegion *framedpholder_do_attach(WFramedPHolder *ph, int flags,
54 WRegionAttachData *data);
56 extern WRegion *region_attach_framed(WRegion *reg, WFramedParam *param,
57 WRegionAttachFn *fn, void *fn_param,
58 WRegionAttachData *data);
60 extern void frame_adjust_to_initial(WFrame *frame, const WFitParams *fp,
61 const WFramedParam *param, WRegion *reg);
63 #endif /* ION_IONCORE_FRAMEDPHOLDER_H */