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