summaryrefslogtreecommitdiff
path: root/doc/dw-stacking-context.doc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2015-06-03 22:40:07 +0200
committerSebastian Geerken <devnull@localhost>2015-06-03 22:40:07 +0200
commit0a565f9b2bfc084a3292ad0c3db85e76cc8dc060 (patch)
treeae743c7a37bfde4293c142e4a6d32648526b7776 /doc/dw-stacking-context.doc
parentda88ede8c401449729ae9c4b78f4c9914d81fa09 (diff)
Moved dev docs to devdoc.
Diffstat (limited to 'doc/dw-stacking-context.doc')
-rw-r--r--doc/dw-stacking-context.doc114
1 files changed, 0 insertions, 114 deletions
diff --git a/doc/dw-stacking-context.doc b/doc/dw-stacking-context.doc
deleted file mode 100644
index 6138ca5d..00000000
--- a/doc/dw-stacking-context.doc
+++ /dev/null
@@ -1,114 +0,0 @@
-/** \page dw-stacking-context Handling stacking contexts
-
-Stacking Context and dw::core::StackingContextMgr
-=================================================
-
-For the definition of stacking contexts, see CSS 2.1 specification,
-
-- <a href="http://www.w3.org/TR/CSS2/visuren.html#z-index">section
- 9.9.1: Specifying the stack level: the 'z-index' property</a> and
-- <a href="http://www.w3.org/TR/CSS2/zindex.html">appendix E</a>.
-
-A widget establishes a stacking context when it is positioned and its
-style value of *z-index* is different from *auto* (see
-dw::core::StackingContextMgr::isEstablishingStackingContext). In this
-case, it is assigned an instance of dw::core::StackingContextMgr,
-which has also access to the widgets establishing the child contexts.
-
-
-Stacking Order
-==============
-
-The stacking order influences
-
-1. the order in which child widgets are drawn (dw::core::Widget::draw),
- and
-2. the order in which mouse events are dispatched to child widgets
- (dw::core::Widget::getWidgetAtPoint).
-
-The first is done from bottom to top, the latter from top to bottom.
-
-I'm here referring to the simplified description in
-<a href="http://www.w3.org/TR/CSS2/visuren.html#z-index">section
-9.9.1</a>. The table shows a recommended order for the implementations
-of dw::core::Widget::draw and dw::core::Widget::getWidgetAtPoint
-(for the latter, read from bottom to top):
-
-<table>
-<tr>
-<th> CSS specification <th> Drawing <th> Mouse events
-<tr>
-<td> *1. the background and borders of the element forming the
- stacking context.*
-<td> dw::core::Widget::drawBox
-<td> Nothing necessary.
-<tr>
-<td> *2. the child stacking contexts with negative stack levels (most
- negative first).*
-<td> dw::core::StackingContextMgr::drawBottom (when defined)
-<td> dw::core::StackingContextMgr::getBottomWidgetAtPoint (when defined)
-<tr>
-<td> *3. the in-flow, non-inline-level, non-positioned descendants.*
-
-<td rowspan="4"> When (i) widget specific content is drawn, then (ii)
- dw::oof::OOFAwareWidget::drawOOF is called, this will
- have this effect:
-
- 1. all in-flow elements are drawn,
- 2. floats are drawn and
- 3. positioned elements with *z-index: auto* are drawn
- (latter two done by
- dw::oof::OOFAwareWidget::drawOOF, in this order).
-
- This order differs from the specified order, but
- since floats and in-flow elements do not overlap,
- this difference has no effect.
-
- Drawing in-line elements, floats and positioned
- elements with *z-index: auto* and should avoid
- duplicate calls: Widgets drawn by
- dw::core::StackingContextMgr::drawBottom and by
- dw::core::StackingContextMgr::drawTop should be
- excluded here. This can be tested with
- dw::core::StackingContextMgr::handledByStackingContextMgr.
-
-<td rowspan="4"> Likewise, the implementation should (i) test
- dw::oof::OOFAwareWidget::getWidgetOOFAtPoint, and
- (ii) search through the chilren. Also, duplicate
- calls should be avoided using
- dw::core::StackingContextMgr::handledByStackingContextMgr.
-
- There are already the implementations
- dw::core::Widget::getWidgetAtPoint (ignoring
- dw::oof::OutOfFlowMgr) and
- dw::oof::OOFAwareWidget::getWidgetAtPoint (including
- dw::oof::OutOfFlowMgr).
-
-<tr>
-<td> *4. the non-positioned floats.*
-<tr>
-<td> *5. the in-flow, inline-level, non-positioned descendants,
- including inline tables and inline blocks.*
-<tr>
-<td> (What about positioned elements with *z-index: auto*? Seems to be
- missing in
- <a href="http://www.w3.org/TR/CSS2/visuren.html#z-index">section
- 9.9.1</a>, but mentioned in
- <a href="http://www.w3.org/TR/CSS2/zindex.html">appendix E</a>,
- item 8.
-<tr>
-<td> *6. the child stacking contexts with stack level 0 and the
- positioned descendants with stack level 0.*
-<td rowspan="2"> dw::core::StackingContextMgr::drawTop (when defined)
-<td rowspan="2"> dw::core::StackingContextMgr::getTopWidgetAtPoint
- (when defined)
-<tr>
-<td> *7. the child stacking contexts with positive stack levels (least
- positive first).*
-</table>
-
-Note: This is not quite in conformance with the specification: this
-description refers to any widget, not only widgets establishing a
-stacking context. Does this make a difference?
-
-*/ \ No newline at end of file