aboutsummaryrefslogtreecommitdiff
path: root/doc/dw-out-of-flow-2.doc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2015-06-01 22:00:10 +0200
committerSebastian Geerken <devnull@localhost>2015-06-01 22:00:10 +0200
commit1463c3936ce6a57352590b901c9dbd6bc2f2086d (patch)
tree3e7983b72fe63770fd2870b57683afd9421a36bd /doc/dw-out-of-flow-2.doc
parenteb7ee4703ced8a02404eb0ebfa5b771fc5e916d5 (diff)
Split up user and developer documentation.
Diffstat (limited to 'doc/dw-out-of-flow-2.doc')
-rw-r--r--doc/dw-out-of-flow-2.doc69
1 files changed, 0 insertions, 69 deletions
diff --git a/doc/dw-out-of-flow-2.doc b/doc/dw-out-of-flow-2.doc
deleted file mode 100644
index d9d70565..00000000
--- a/doc/dw-out-of-flow-2.doc
+++ /dev/null
@@ -1,69 +0,0 @@
-/** \page dw-out-of-flow-2 Handling Elements Out Of Flow (notes 2)
-
-This has to be integrated into \ref dw-out-of-flow.
-
-Constructing a page with floats
--------------------------------
-When a page is constructed (dw::Textblock::addWord), the *generating*
-block tells the positions of floats (or, generally, widgets out of
-flow) via dw::OutOfFlowMgr::tellPosition. This method considers
-already collisions with other floats (only previous floats; floats
-following this float are not considered); after the call,
-dw::OutOfFlowMgr::getBorder will return correct values.
-
-dw::OutOfFlowMgr::tellPosition also checks for overlaps of this float
-with other textblocks, except this textblock (the *generator*, which
-is just constructed, so nothing has to be done). The fact that the
-position of the float is the top, and so the float has only an
-allocation below this position, leads to the effect that only the
-textblocks following the generator are affected. (**Check:** Can the
-search be limited here?) When a page is constructed, no textblocks
-should be following the generating block, so no textblocks are
-affected.
-
-**Todo:** Clarify details of line breaking (\ref dw-line-breaking).
-
-Float changes its size
-----------------------
-The float itself will call queueResize, which will result in a call of
-markSizeChange for the *containing* block, which will then call
-dw::OutOfFlowMgr::markSizeChange. Here, the vloat is only *marked* as
-dirty; the size will be calculated later (in
-dw::OutOfFlowMgr::ensureFloatSize).
-
-This will trigger the resize idle function, so sizeRequest and
-sizeAllocate for all floats and textblocks. In this run,
-dw::OutOfFlowMgr::hasRelationChanged will return *true*, and so result
-in a call of dw::Textblock::borderChanged, and trigger a second run of
-the resize idle function, dealing correctly with the new size.
-
-(This case is handles in a not perfectly optimal way, since two runs
-of the resize idle function are neccessary; but size changes of floats
-is not a very common case.
-
-When a page is constructed (see above), a changing size of a float
-currently constructed typically only affects the most bottom
-textblock; the other textblocks are not covered by this float.)
-
-**Error:** In this case, new collisions are not yet considered.
-
-
-Changing the width of the page
-------------------------------
-
-When the page width is changed, this will result in a reconstruction
-of the page; see *Constructing a page with floats*. Anyway, checking
-for overlaps will play a more important role. This is handled in an
-optimal way by dw::OutOfFlowMgr::hasRelationChanged.
-
-**Check:** Are "cascades" avoided, like this:
-
-1. All textblocks are constructed. A float in textblock 1 overlaps
- with textblock 2, so dw::Textblock::borderChanged is called for
- textblock 2.
-2. In another resize idle run, textblock 2 is constructed again. A
- float in textblock 2 overlaps with textblock 3, so that
- dw::Textblock::borderChanged is called for textblock 3.
-3. Etc.
-
-*/ \ No newline at end of file