Outcurses: Difference between revisions

No edit summary
No edit summary
Line 47: Line 47:


A special case arises when moving among the tablets of a reel having multiple tablets, all of which fit entirely on-screen, and infinite scrolling is in use. Normally, upon moving to the next tablet from the bottommost tablet, the (offscreen) next tablet is pulled up into the bottom of the reel (the reverse is true when moving to the previous tablet from the topmost). When all tablets are onscreen with infinite scrolling, there are two possibilities: either the <i>focus</i> scrolls (moving from the bottom tablet to the top tablet, for instance), or the <i>reel</i> scrolls (preserving order among the tablets, but changing their order on-screen). In this latter case, moving to the next tablet from the bottommost tablet results in the tablet which is gaining focus being brought to the bottom of the screen from the top, and all other tablets moving up on the screen. Moving to the previous tablet from the topmost tablet results in the bottommost tablet moving to the top of the screen, and all other tablets moving down. This behavior matches the typical behavior precisely, and avoids a rude UI discontinuity when the tablets grow to fill the entire screen (or shrink to <i>not</i> fill it). If it is not desired, however, scrolling of focus can be configured instead.
A special case arises when moving among the tablets of a reel having multiple tablets, all of which fit entirely on-screen, and infinite scrolling is in use. Normally, upon moving to the next tablet from the bottommost tablet, the (offscreen) next tablet is pulled up into the bottom of the reel (the reverse is true when moving to the previous tablet from the topmost). When all tablets are onscreen with infinite scrolling, there are two possibilities: either the <i>focus</i> scrolls (moving from the bottom tablet to the top tablet, for instance), or the <i>reel</i> scrolls (preserving order among the tablets, but changing their order on-screen). In this latter case, moving to the next tablet from the bottommost tablet results in the tablet which is gaining focus being brought to the bottom of the screen from the top, and all other tablets moving up on the screen. Moving to the previous tablet from the topmost tablet results in the bottommost tablet moving to the top of the screen, and all other tablets moving down. This behavior matches the typical behavior precisely, and avoids a rude UI discontinuity when the tablets grow to fill the entire screen (or shrink to <i>not</i> fill it). If it is not desired, however, scrolling of focus can be configured instead.
===Panelreel examples===
Let's say we have a screen of 11 lines, and 3 tablets of one line each. Both a screen border and tablet borders are in use. The tablets are A, B, and C. No gap is in use between tablets. Xs indicate focus. If B currently has focus, and the next tablet is selected, the result would be something like:
<pre>
-------------                        -------------
| --------- |                        | --------- |
| |  A  | |                        | |  A  | |
| --------- |                        | --------- |
| --------- | ---- "next tablet" ---> | --------- |
| |XX B XX| |                        | |  B  | |
| --------- |                        | --------- |
| --------- |                        | --------- |
| |  C  | |                        | |XX C XX| |
| --------- |                        | --------- |
-------------                        -------------
</pre>
If instead the previous tablet had been selected, we would of course get:
<pre>
-------------                        -------------
| --------- |                        | --------- |
| |  A  | |                        | |XX A XX| |
| --------- |                        | --------- |
| --------- | ---- "next tablet" ---> | --------- |
| |XX B XX| |                        | |  B  | |
| --------- |                        | --------- |
| --------- |                        | --------- |
| |  C  | |                        | |  C  | |
| --------- |                        | --------- |
-------------                        -------------
</pre>
If A instead has the focus, choosing the "next tablet" is trivial: the tablets
do not change, and focus shifts to B. If we choose the "previous tablet", there
are three possibilities:
* Finite scrolling: No change. The tablets stay in place. A remains focused.
<pre>
-------------                        -------------
| --------- |                        | --------- |
| |XX A XX| |                        | |XX A XX| |
| --------- |                        | --------- |
| --------- | ---- "prev tablet" ---> | --------- |
| |  B  | |    (finite scroll)    | |  B  | |
| --------- |                        | --------- |
| --------- |                        | --------- |
| |  C  | |                        | |  C  | |
| --------- |                        | --------- |
-------------                        -------------
</pre>
* Infinite scrolling with rotation: Focus shifts to C, which moves to the top:
<pre>
-------------                        -------------
| --------- |                        | --------- |
| |XX A XX| |                        | |XX C XX| |
| --------- |                        | --------- |
| --------- | ---- "prev tablet" ---> | --------- |
| |  B  | |  (infinite scroll with  | |  A  | |
| --------- |        rotation)        | --------- |
| --------- |                        | --------- |
| |  C  | |                        | |  B  | |
| --------- |                        | --------- |
-------------                        -------------
</pre>
* Infinite scrolling with focus rotation: Focus shifts to C, and moves to the bo
<pre>
-------------                        -------------
| --------- |                        | --------- |
| |XX A XX| |                        | |  A  | |
| --------- |                        | --------- |
| --------- | ---- "prev tablet" ---> | --------- |
| |  B  | |  (infinite scroll with  | |  B  | |
| --------- |    focus rotation)    | --------- |
| --------- |                        | --------- |
| |  C  | |                        | |XX C XX| |
| --------- |                        | --------- |
-------------                        -------------
</pre>


==Panel animations==
==Panel animations==