]> git.decadent.org.uk Git - ion3.git/blobdiff - mod_tiling/tiling.h
Imported Upstream version 20090110
[ion3.git] / mod_tiling / tiling.h
index 5b7a8e7724f536b26c2220ccc3c39a21c24dea6d..d780f7e4b5f86314d2ab918f5994d80bb64d143f 100644 (file)
@@ -1,12 +1,9 @@
 /*
  * ion/mod_tiling/tiling.h
  *
- * Copyright (c) Tuomo Valkonen 1999-2006
+ * Copyright (c) Tuomo Valkonen 1999-2009
  *
- * Ion is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
+ * See the included file LICENSE for details.
  */
 
 #ifndef ION_MOD_TILING_TILING_H
@@ -20,6 +17,7 @@
 #include <ioncore/rectangle.h>
 #include <ioncore/pholder.h>
 #include <ioncore/navi.h>
+#include <ioncore/manage.h>
 #include "split.h"
 
 
@@ -31,6 +29,7 @@ DECLCLASS(WTiling){
     PtrList *managed_list;
     WRegionSimpleCreateFn *create_frame_fn;
     Window dummywin;
+    bool batchop;
 };
 
 
@@ -41,6 +40,8 @@ extern WTiling *create_tiling(WWindow *parent, const WFitParams *fp,
 extern WTiling *create_tiling_simple(WWindow *parent, const WFitParams *fp);
 extern void tiling_deinit(WTiling *ws);
 
+extern bool tiling_do_attach_initial(WTiling *tiling, WRegion *reg);
+
 extern ExtlTab tiling_resize_tree(WTiling *ws, WSplit *node, ExtlTab g);
 
 extern WRegion *tiling_current(WTiling *ws);
@@ -51,7 +52,7 @@ extern WRegion *tiling_region_at(WTiling *ws, int x, int y);
 extern WFrame *tiling_split_top(WTiling *ws, const char *dirstr);
 extern WFrame *tiling_split_at(WTiling *ws, WFrame *frame, 
                               const char *dirstr, bool attach_current);
-extern bool tiling_unsplit_at(WTiling *ws, WFrame *frame);
+extern void tiling_unsplit_at(WTiling *ws, WRegion *reg);
 
 extern WSplitSplit *tiling_set_floating(WTiling *ws, WSplitSplit *split, 
                                        int sp);
@@ -84,13 +85,11 @@ extern void tiling_managed_rqgeom(WTiling *ws, WRegion *reg,
                                   const WRQGeomParams *rq,
                                   WRectangle *geomret);
 extern void tiling_managed_remove(WTiling *ws, WRegion *reg);
-extern void tiling_managed_activated(WTiling *ws, WRegion *reg);
-extern bool tiling_rescue_clientwins(WTiling *ws, WPHolder *ph);
+extern bool tiling_rescue_clientwins(WTiling *ws, WRescueInfo *ph);
 extern WPHolder *tiling_get_rescue_pholder_for(WTiling *ws, WRegion *mgd);
 extern void tiling_do_set_focus(WTiling *ws, bool warp);
 extern bool tiling_managed_prepare_focus(WTiling *ws, WRegion *reg, 
                                         int flags, WPrepareFocusResult *res);
-extern bool tiling_managed_may_destroy(WTiling *ws, WRegion *reg);
 extern void tiling_manage_stdisp(WTiling *ws, WRegion *stdisp, 
                                 const WMPlexSTDispInfo *di);
 extern void tiling_unmanage_stdisp(WTiling *ws, bool permanent, bool nofocus);
@@ -123,5 +122,10 @@ typedef PtrListIterTmp WTilingIterTmp;
 #define FOR_ALL_MANAGED_BY_TILING_UNSAFE(VAR, WS) \
     FOR_ALL_ON_PTRLIST_UNSAFE(WRegion*, VAR, (WS)->managed_list)
 
+/* Misc. */
+
+#define TILING_STDISP_OF(WS) \
+     ((WS)->stdispnode!=NULL ? (WS)->stdispnode->regnode.reg : NULL)
+
 
 #endif /* ION_MOD_TILING_TILING_H */