Inv(#1020): place widgets irregularily
- partially overlapping - beyond the scrollable area
This commit is contained in:
parent
e7d284783b
commit
94a0adcb5b
4 changed files with 20 additions and 11 deletions
|
|
@ -119,8 +119,8 @@ namespace panel {
|
|||
|
||||
ChildEx* chld = makeChld();
|
||||
childz_.push_back(chld);
|
||||
uint x = rand() % 1000;
|
||||
uint y = rand() % 500;
|
||||
uint x = rand() % 2000;
|
||||
uint y = rand() % 1000;
|
||||
canvas_.put(*chld, x, y);
|
||||
chld->show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ namespace panel {
|
|||
* 1. place some simple widgets (Buttons) ✔
|
||||
* 2. learn how to draw
|
||||
* 3. place a huge number of widgets, to scrutinise scrolling and performance
|
||||
* 4. place widgets overlapping
|
||||
* 4. place widgets overlapping and irregularily, beyond the scrollable area ✔
|
||||
* 5. bind signals to those widgets, to verify event dispatching
|
||||
* 6. bind some further signal(s) to the ~GtkLayout container
|
||||
* 7. hide and re-show a partially and a totally overlapped widget
|
||||
|
|
|
|||
|
|
@ -2635,7 +2635,7 @@ In the most general case, there can be per-track content and nested content at t
|
|||
→ important question: how to [[organise the widgets|GuiTimelineWidgetStructure]]
|
||||
</pre>
|
||||
</div>
|
||||
<div title="GuiTimelineWidgetStructure" creator="Ichthyostega" modifier="Ichthyostega" created="201410250002" modified="201610281529" tags="GuiPattern discuss decision impl" changecount="37">
|
||||
<div title="GuiTimelineWidgetStructure" creator="Ichthyostega" modifier="Ichthyostega" created="201410250002" modified="201610282248" tags="GuiPattern discuss decision impl" changecount="38">
|
||||
<pre>The Timeline is probably the most prominent place in the GUI where we need to come up with a custom UI design.
|
||||
Instead of combining standard components in one of the well-known ways, here we need to come up with our own handling solution -- which also means to write one or several custom GTK widgets. Thus the question of layout and screen space division and organisation becomes a crucial design decision. The ~GTK-2 Gui, as implemented currently, did already take some steps along this route, yet this kind of decision should be cast and documented explicitly (be it after the fact).
|
||||
|
||||
|
|
@ -2689,12 +2689,15 @@ In order to build a sensible plan for our timeline structure, we need to investi
|
|||
# retrofit all preceding tests to use this "''clip''" widget
|
||||
|
||||
!!!Observations
|
||||
* the size of the scrollable area needs to be setup beforehand, otherwise children won't show up
|
||||
* children need to be made visible, otherwise they are added, but remain hidden
|
||||
* the coordinate of children (upper left corner) is within the scrollable area, but the extension might well be beyond
|
||||
* the size of the scrollable area is independent of the actual size extension of the canvas
|
||||
* the scrollable area determines when scrollbars are visible and what area can be reached through them
|
||||
* but children can well be placed beyond; they are fully functional then, just covered and out of sight
|
||||
* enlarging the enclosing window and thus enlarging the layout canvas will uncover such stray children.
|
||||
* when in sight, children receive events and are fully functional, even when placed out of the scrollable area.
|
||||
* the coordinate of children is their upper left corner, but they may extend beyond that and even beyond the scrollable area
|
||||
* children may be so close to the boundary, that it is not possible to click on them
|
||||
* after receiving an onClic event, the scrollable area jumps back to (left, top).
|
||||
* when overall window is enlarged, the visible area seems to be expanded. Then even children close to boundary come into sight and are clickable.
|
||||
* when children close to the boundary receive an onClick event, the scrollable area might jumps back slightly..
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -9360,13 +9360,19 @@
|
|||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="full-3"/>
|
||||
</node>
|
||||
<node CREATED="1477595418670" ID="ID_423514526" MODIFIED="1477668704361" TEXT="# place widgets overlapping / irregularily">
|
||||
<node CREATED="1477595418670" ID="ID_423514526" MODIFIED="1477694999159" TEXT="# place widgets overlapping / irregularily">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="full-4"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1477668663507" ID="ID_1576657272" MODIFIED="1477668671481" TEXT="order: later on top">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node CREATED="1477668674577" ID="ID_431152757" MODIFIED="1477668679556" TEXT="place widgets out of sight"/>
|
||||
<node CREATED="1477668674577" ID="ID_431152757" MODIFIED="1477694925233" TEXT="place widgets out of sight">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node CREATED="1477694911349" ID="ID_93004070" MODIFIED="1477694932280" TEXT="widgets beyond the scrollable area">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1477595418670" ID="ID_1370967982" MODIFIED="1477596119220" TEXT="# bind signals to those widgets, to verify event dispatching">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
|
|
@ -9380,7 +9386,7 @@
|
|||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="full-7"/>
|
||||
</node>
|
||||
<node CREATED="1477595418670" ID="ID_1516591439" MODIFIED="1477596119219" TEXT="# find a way to move a widget">
|
||||
<node CREATED="1477595418670" ID="ID_1516591439" MODIFIED="1477694985862" TEXT="# move and delete widgets">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="full-8"/>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue