2 * ion/ioncore/mplexpholder.h
4 * Copyright (c) Tuomo Valkonen 2005-2009.
6 * See the included file LICENSE for details.
9 #ifndef ION_IONCORE_MPLEXPHOLDER_H
10 #define ION_IONCORE_MPLEXPHOLDER_H
16 #include "framedpholder.h"
19 DECLCLASS(WMPlexPHolder
){
22 WFramedPHolder
*recreate_pholder
; /* only on first of list */
24 WMPlexPHolder
*next
, *prev
;
25 WMPlexAttachParams param
;
29 /* If 'either_st' is set, it is used, otherwise 'or_param', is used.
32 extern WMPlexPHolder
*create_mplexpholder(WMPlex
*mplex
,
34 WMPlexAttachParams
*or_param
);
35 extern bool mplexpholder_init(WMPlexPHolder
*ph
,
38 WMPlexAttachParams
*or_param
);
39 extern void mplexpholder_deinit(WMPlexPHolder
*ph
);
41 extern WRegion
*mplexpholder_do_attach(WMPlexPHolder
*ph
, int flags
,
42 WRegionAttachData
*data
);
44 extern bool mplexpholder_do_goto(WMPlexPHolder
*ph
);
46 extern bool mplexpholder_stale(WMPlexPHolder
*ph
);
48 extern WRegion
*mplexpholder_do_target(WMPlexPHolder
*ph
);
50 extern bool mplexpholder_move(WMPlexPHolder
*ph
, WMPlex
*mplex
,
52 WLListNode
*or_after
);
54 extern void mplexpholder_do_unlink(WMPlexPHolder
*ph
, WMPlex
*mplex
);
56 extern void mplex_move_phs(WMPlex
*mplex
, WLListNode
*node
,
58 WLListNode
*or_after
);
59 extern void mplex_move_phs_before(WMPlex
*mplex
, WLListNode
*node
);
60 extern void mplex_migrate_phs(WMPlex
*src
, WMPlex
*dst
);
61 extern void mplex_flatten_phs(WMPlex
*mplex
);
63 extern WMPlexPHolder
*mplex_managed_get_pholder(WMPlex
*mplex
,
65 extern WPHolder
*mplex_get_rescue_pholder_for(WMPlex
*mplex
,
68 #endif /* ION_IONCORE_MPLEXPHOLDER_H */