From 94a0adcb5be13a42f3653ac7b0eab5e06d0435df Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sat, 29 Oct 2016 00:51:28 +0200 Subject: [PATCH] Inv(#1020): place widgets irregularily - partially overlapping - beyond the scrollable area --- src/gui/panel/timeline-panel.cpp | 4 ++-- src/gui/panel/timeline-panel.hpp | 2 +- wiki/renderengine.html | 13 ++++++++----- wiki/thinkPad.ichthyo.mm | 12 +++++++++--- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/gui/panel/timeline-panel.cpp b/src/gui/panel/timeline-panel.cpp index 6be25e6b4..e4f7ebbd5 100644 --- a/src/gui/panel/timeline-panel.cpp +++ b/src/gui/panel/timeline-panel.cpp @@ -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(); } diff --git a/src/gui/panel/timeline-panel.hpp b/src/gui/panel/timeline-panel.hpp index 32a3072ca..74da22ac3 100644 --- a/src/gui/panel/timeline-panel.hpp +++ b/src/gui/panel/timeline-panel.hpp @@ -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 diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 2e30bec51..ef1005573 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -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]] -
+
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..
 
 
diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 4d91388d2..b7c7eb106 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -9360,13 +9360,19 @@ - + + - + + + + + + @@ -9380,7 +9386,7 @@ - +