aboutsummaryrefslogtreecommitdiff
path: root/devdoc/dw-miscellaneous.doc
blob: 2828e5398e999b903b4fdc9fcf9654912f14aae3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/** \page dw-miscellaneous Miscellaneous Notes on Dw

This is a barely sorted list of issues which I consider noteworthy,
but have yet to be moved to other parts of the documentation (which is
partly to be created).

General
=======

Widget allocation outside of parent allocation
----------------------------------------------
A widget allocation outside of the allocation of the parent is
allowed, but the part outside is not visible.

Which widgets may be drawn?
---------------------------
All drawing starts with the toplevel widget
(cf. dw::core::Widget::queueDrawArea, dw::core::Layout::queueDraw, and
dw::core::Layout::expose), and a widget has to draw its children, in a
way consistent with their stacking order.

There are two exceptions:

1. Direct descendants, which are not children, may be drawn, if the
   parent can distinguish them and so omit drawing them a second
   time. See dw::core::StackingContextMgr and \ref dw-stacking-context.
   Parents should not draw children in flow for which
   dw::core::StackingContextMgr::handledByStackingContextMgr returns
   true.
2. Interrupted drawing: via dw::core::Widget::drawInterruption; see
   \ref dw-interrupted-drawing.

Similar rules apply to handling mouse events
(dw::core::Widget::getWidgetAtPoint).

Interrupted drawing
-------------------
→ \ref dw-interrupted-drawing.

Similar rules apply to handling mouse events
(dw::core::Widget::getWidgetAtPoint).

Extra space
-----------
Should dw::core::Widget::calcExtraSpace be called from
dw::core::Widget::getExtremes?

*/