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..