]> git.decadent.org.uk Git - ion3.git/blob - ioncore/grouppholder.h
5c8ca19270af6372cb7273720cbee40f33f6e17d
[ion3.git] / ioncore / grouppholder.h
1 /*
2  * ion/ioncore/grouppholder.h
3  *
4  * Copyright (c) Tuomo Valkonen 2005-2008. 
5  *
6  * See the included file LICENSE for details.
7  */
8
9 #ifndef ION_IONCORE_GROUPPHOLDER_H
10 #define ION_IONCORE_GROUPPHOLDER_H
11
12 #include <ioncore/common.h>
13 #include <ioncore/pholder.h>
14 #include "group.h"
15
16
17 DECLCLASS(WGroupPHolder){
18     WPHolder ph;
19     WGroup *group;
20     Watch stack_above_watch;
21     WGroupAttachParams param;
22     WGroupPHolder *next, *prev;
23     WPHolder *recreate_pholder;
24 };
25
26 extern WGroupPHolder *create_grouppholder(WGroup *group, 
27                                           const WStacking *either_st,
28                                           const WGroupAttachParams *or_param);
29
30 extern bool grouppholder_init(WGroupPHolder *ph, 
31                               WGroup *group,
32                               const WStacking *either_st,
33                               const WGroupAttachParams *or_param);
34
35 extern void grouppholder_deinit(WGroupPHolder *ph);
36
37 extern bool grouppholder_do_goto(WGroupPHolder *ph);
38
39 extern WRegion *grouppholder_do_target(WGroupPHolder *ph);
40
41 extern WRegion *grouppholder_do_attach(WGroupPHolder *ph, int flags, 
42                                        WRegionAttachData *data);
43
44 extern WGroupPHolder *group_managed_get_pholder(WGroup *group, 
45                                                 WRegion *mgd);
46
47 extern void grouppholder_do_unlink(WGroupPHolder *ph);
48 extern void grouppholder_do_link(WGroupPHolder *ph, WGroup *group, 
49                                  WRegion *stack_above);
50
51 #endif /* ION_IONCORE_GROUPPHOLDER_H */