]> git.decadent.org.uk Git - ion3.git/blob - ioncore/basicpholder.h
6b0df42c34455f43a8c9c385fdf6b9eda12c12e1
[ion3.git] / ioncore / basicpholder.h
1 /*
2  * ion/ioncore/basicpholder.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_BASICPHOLDER_H
13 #define ION_IONCORE_BASICPHOLDER_H
14
15 #include "common.h"
16 #include "pholder.h"
17 #include "attach.h"
18
19
20 typedef WRegion *WBasicPHolderHandler(WRegion *reg, int flags,
21                                       WRegionAttachData *data);
22
23 INTRCLASS(WBasicPHolder);
24
25 DECLCLASS(WBasicPHolder){
26     WPHolder ph;
27     Watch reg_watch;
28     WBasicPHolderHandler* hnd;
29 };
30
31 extern WBasicPHolder *create_basicpholder(WRegion *reg,
32                                           WBasicPHolderHandler *hnd);
33
34 extern bool basicpholder_init(WBasicPHolder *ph, WRegion *reg,
35                               WBasicPHolderHandler *hnd);
36
37 extern void basicpholder_deinit(WBasicPHolder *ph);
38
39 extern bool basicpholder_do_goto(WBasicPHolder *ph);
40
41 extern WRegion *basicpholder_do_target(WBasicPHolder *ph);
42
43 extern WRegion *basicpholder_do_attach(WBasicPHolder *ph, int flags,
44                                        WRegionAttachData *data);
45
46 #endif /* ION_IONCORE_BASICPHOLDER_H */