HP Forums

Full Version: newRPL: Interactive stack
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
What are the features that would be most desirable for the interactive stack?

The interactive stack will be activated pressing cursor up, same as the 50g. That will select the first item in the stack, then up/down cursors will move to other items. A few things I think would be nice to have are for example:

* Holding a shift would "grab" the current item, then moving up/down (holding shift) would drag the item, and releasing the shift would leave it at the new position.
* Holding the same shift, the right key should send the current item down to level 1, and the left key should send it up to the last occupied stack level.
* Perhaps the other shift could do the same, but leaving a copy of the object at the original position, so up/down would leave a new copy at the position where the shift key is lifted, and left/right would make a new copy at the top/bottom of the stack respectively (so the right key would become like PICK).

Any other ideas that can be done in the interactive stack?
(11-06-2015 01:31 PM)Claudio L. Wrote: [ -> ]* Holding a shift would "grab" the current item, then moving up/down (holding shift) would drag the item, and releasing the shift would leave it at the new position.

Good idea!

(11-06-2015 01:31 PM)Claudio L. Wrote: [ -> ]* Holding the same shift, the right key should send the current item down to level 1, and the left key should send it up to the last occupied stack level.

The first action would be equivalent to ROLL (F5). If the stack menu appears with the interactive stack like in the 50g, I see no advantage with this feature. The second action seems not very useful to me, but why not?

(11-06-2015 01:31 PM)Claudio L. Wrote: [ -> ]* Perhaps the other shift could do the same, but leaving a copy of the object at the original position, so up/down would leave a new copy at the position where the shift key is lifted, and left/right would make a new copy at the top/bottom of the stack respectively (so the right key would become like PICK).

The first case could be interesting too, but not the second one, for the same reason as above.

The most important for me is the ability to make quickly a list with the interactive stack, because I routinely use list processing for my calculations with the 50g. In the 48G, it can be done with only one key press (F). With the 50g, I have to press NEXT and then F1. Two key presses is the maximum I can accept for this.
(11-06-2015 01:31 PM)Claudio L. Wrote: [ -> ]What are the features that would be most desirable for the interactive stack?

The interactive stack will be activated pressing cursor up, same as the 50g. That will select the first item in the stack, then up/down cursors will move to other items. A few things I think would be nice to have are for example:

* Holding a shift would "grab" the current item, then moving up/down (holding shift) would drag the item, and releasing the shift would leave it at the new position.
* Holding the same shift, the right key should send the current item down to level 1, and the left key should send it up to the last occupied stack level.
* Perhaps the other shift could do the same, but leaving a copy of the object at the original position, so up/down would leave a new copy at the position where the shift key is lifted, and left/right would make a new copy at the top/bottom of the stack respectively (so the right key would become like PICK).

Any other ideas that can be done in the interactive stack?

These all sound like good ideas, I like 'em. Item 1 would be used a lot; the others, not too often, however they save a lot of keystrokes over other options, so worth having. The other more commonly needed possibility is some way to do item 1 via copy instead of moving.

Good suggestions. Thanks.
Shift keys have traditionally been used for navigation. What about using alpha for selection instead? What I am imagining is that there is some sort of curser indication the currently focused stack level.

arrows = move cursor
Left shift + up/down = move cursor page up/down
Right shift + up/down = move cursor to top/bottom of stack
alpha = select object in currents stack level; holding alpha allows multiple selection while moving keys up/down (allows for alpha lock + shift keys, too, so we could select pages of items)

left = copy selection to current position
right = move selection to current position
right shift + left = move selection to top of stack
right shift + right = move selection to bottom of stack
left shift + left = roll up within selection (basically nothing if only single selection; otherwise selected items treated as if they were within their own substack)
left shift + right = roll down within selection (similar to above)

left (no selection) = swap current position w/ level above cursor
right (no selection) = swap current position w/ level below cursor
*left shift + left (no selection) = from cursor to top of stack is a substack; rotates up
*left shift + right (no selection) = from cursor to top of stack is a substack; rotates down
right shift + left (no selection) = move item at cursor to top of stack
right shift + right (no selection) = move item at cursor to bottom of stack

There's really no reason to actually drag an item by "holding" it. This would require the screen be updated continually -- which could be bad if the object is "large" or the selected group takes up the entire screen. How would we know where the new position is without referencing the objects at those levels? By only moving a cursor, and leaving the selected object in place, we can better see where we want to move/copy the objects. It also means the drawing routines for stack manipulation are much simpler (you only update after an actual move/copy as opposed to updating every step up/down).

* regular roll up/down operates on stack levels 1 up to the cursor; left shift allows for roll up/down but with the "upper" part of the stack (from cursor to top)

(gotta run an errand; will edit and add more)
I would add a quick route to "Open in the best fitting editor" while "scrolling in the stack" now it seems only work with unshifted down arrow while in "waiting a commands" state. Also a quick command for COPY would be handy.

Selection of multiple items sounds good.
(11-07-2015 09:27 PM)Han Wrote: [ -> ]Shift keys have traditionally been used for navigation. What about using alpha for selection instead? What I am imagining is that there is some sort of curser indication the currently focused stack level.

arrows = move cursor
Left shift + up/down = move cursor page up/down
Right shift + up/down = move cursor to top/bottom of stack
alpha = select object in currents stack level; holding alpha allows multiple selection while moving keys up/down (allows for alpha lock + shift keys, too, so we could select pages of items)

left = copy selection to current position
right = move selection to current position
right shift + left = move selection to top of stack
right shift + right = move selection to bottom of stack
left shift + left = roll up within selection (basically nothing if only single selection; otherwise selected items treated as if they were within their own substack)
left shift + right = roll down within selection (similar to above)

left (no selection) = swap current position w/ level above cursor
right (no selection) = swap current position w/ level below cursor
*left shift + left (no selection) = from cursor to top of stack is a substack; rotates up
*left shift + right (no selection) = from cursor to top of stack is a substack; rotates down
right shift + left (no selection) = move item at cursor to top of stack
right shift + right (no selection) = move item at cursor to bottom of stack

There's really no reason to actually drag an item by "holding" it. This would require the screen be updated continually -- which could be bad if the object is "large" or the selected group takes up the entire screen. How would we know where the new position is without referencing the objects at those levels? By only moving a cursor, and leaving the selected object in place, we can better see where we want to move/copy the objects. It also means the drawing routines for stack manipulation are much simpler (you only update after an actual move/copy as opposed to updating every step up/down).

* regular roll up/down operates on stack levels 1 up to the cursor; left shift allows for roll up/down but with the "upper" part of the stack (from cursor to top)

(gotta run an errand; will edit and add more)

I like this one much more than my own idea. Multiple selection and the ability to rotate within the group is quite elaborate. Unless there's an objection, I think this is the way to go.
(11-07-2015 09:27 PM)Han Wrote: [ -> ]Shift keys have traditionally been used for navigation. What about using alpha for selection instead? What I am imagining is that there is some sort of curser indication the currently focused stack level.

Thinking about it some more, when we are in interactive stack mode, we have the whole keyboard to our disposal, so we could simplify your idea a bit, using less shifted keys. We'll also have the top soft menu available at our disposal.

So the cursor up enters interactive mode. Once there:

Navigation:
* Right-shift up/down goes to top/bottom of stack
* Left-shift up/down moves by pages.
* Up/down just move the cursor.

Selection:
* Select/deselect an item could be +/-, or Space, or Enter (or all of them).
* Perhaps the + key could select/deselect all items below the cursor, until either level 1 or the next selected/deselected item.
* Perhaps the - key could select/deselect all items above the cursor, until either the last used item in the stack, or the next selected/deselected item.

Move/Copy (move=right cursor, copy=left cursor, always consistent):
* Right cursor moves selected items at cursor position.
* Right-shift Right moves selected items to top of the stack (bottom of the stack as seen on the screen).
* Left-shift Right moves selected items to bottom of the stack (top of screen).

* Left cursor copies selected items at cursor position.
* Right-shift Left copies selected items to top of the stack (bottom of the stack as seen on the screen).
* Left-shift Left copies selected items to bottom of the stack (top of screen).

Rotation:
* Alpha-up "rotates" the selected items up one level (if there's no selection, automatically use between level 1 and current item).
* Alpha-down "rotates" the selected items down one level (if there's no selection, automatically use between level 1 and current item).

It's basically the same, with different key assignments. Any comments?
(11-08-2015 02:27 PM)Claudio L. Wrote: [ -> ]Thinking about it some more, when we are in interactive stack mode, we have the whole keyboard to our disposal, so we could simplify your idea a bit, using less shifted keys. We'll also have the top soft menu available at our disposal.

Great idea! I don't know why I limited myself to shift keys and the arrows :-)

Quote:* Select/deselect an item could be +/-, or Space, or Enter (or all of them).

I prefer just +/- for toggling; maybe . for toggling as well? ENTER has been used for DUP; perhaps we could use ENTER for "dup-in-place". That is, copy the currently focused stack level and insert the copy right at the cursor.

What about the other ideas for when no selection has been made (e.g. left/right arrow with no shift swapping current stack level with item immediately above/below, etc.)?
(11-09-2015 03:14 PM)Han Wrote: [ -> ]I prefer just +/- for toggling; maybe . for toggling as well? ENTER has been used for DUP; perhaps we could use ENTER for "dup-in-place". That is, copy the currently focused stack level and insert the copy right at the cursor.

What about the other ideas for when no selection has been made (e.g. left/right arrow with no shift swapping current stack level with item immediately above/below, etc.)?

Oh, I didn't write them I guess.
Since left cursor means "copy at current cursor", and there's no selection, it makes sense for it to DUP the current item in place.
The right cursor means "move at current cursor", when no selection it shouldn't move anything (the current item into the current position), but we could make an exception and make it swap with the item above, so it would work the same as right cursor when you are not in interactive mode.

Regarding the +/- and period, I have no problem.
Enter for DUP would be a duplicate of left cursor. However, I think Enter should be PICK (or DUP into level 1). This action is quite common, and would otherwise require you to either select an item, or use left cursor to DUP it in place, then alpha-up to ROLLD the new item. I think it deserves a designated key.

EDIT: I just realized you don't need to DUP and ROLLD, since Right-shift left cursor would copy the element to top of stack. I guess Enter would be a duplicate for Right-shift left cursor then, not sure if it's worth it.
(11-09-2015 08:26 PM)Claudio L. Wrote: [ -> ]
(11-09-2015 03:14 PM)Han Wrote: [ -> ]I prefer just +/- for toggling; maybe . for toggling as well? ENTER has been used for DUP; perhaps we could use ENTER for "dup-in-place". That is, copy the currently focused stack level and insert the copy right at the cursor.

What about the other ideas for when no selection has been made (e.g. left/right arrow with no shift swapping current stack level with item immediately above/below, etc.)?

Oh, I didn't write them I guess.
Since left cursor means "copy at current cursor", and there's no selection, it makes sense for it to DUP the current item in place.
The right cursor means "move at current cursor", when no selection it shouldn't move anything (the current item into the current position), but we could make an exception and make it swap with the item above, so it would work the same as right cursor when you are not in interactive mode.

Regarding the +/- and period, I have no problem.
Enter for DUP would be a duplicate of left cursor. However, I think Enter should be PICK (or DUP into level 1). This action is quite common, and would otherwise require you to either select an item, or use left cursor to DUP it in place, then alpha-up to ROLLD the new item. I think it deserves a designated key.

EDIT: I just realized you don't need to DUP and ROLLD, since Right-shift left cursor would copy the element to top of stack. I guess Enter would be a duplicate for Right-shift left cursor then, not sure if it's worth it.

One more thing to add here:
I think the backspace key needs to delete (as in remove from the stack and lose forever) the current selection, and if no selection, it should delete the item at the cursor. The previous description had ways to copy/cut/paste, but none to DROP items.
Reference URL's