#1310 HIGH Future : Handheld mode: rotation, activity switching, and key-map
Zarro Boogs per Child
bugtracker at laptop.org
Tue Jan 15 16:00:03 EST 2008
#1310: Handheld mode: rotation, activity switching, and key-map
-------------------------------+--------------------------------------------
Reporter: gnu | Owner: Eben
Type: task | Status: assigned
Priority: high | Milestone: Future Release
Component: interface-design | Version:
Resolution: | Keywords: relnote
Verified: 0 | Blocking:
Blockedby: |
-------------------------------+--------------------------------------------
Comment(by homunq):
= Basic scheme =
This is a proposal for
== arrows ==
Note that arrows change mapping depending on screen orientation.
=== static pane (Read, Paint, etc.) ===
press: page up, down, left, or right (or, if entire pane fits on screen
and no scrolling is possible, 'out')
hold: continuous scroll
hold when, as of initial press, already scrolled to the maximum in that
direction: 'out'
=== text pane (Write, etc.) ===
press when selection is empty: arrow key
press when selection is full: arrow key when button is released (buttonUp)
hold: repeating shift-arrow-key (extend selection), starting back from
cursor point when button pressed.
hold when, as of initial press, already scrolled to the maximum in that
direction: 'out'
=== controls (Calculator, etc.) ===
press: select next control in given direction
hold: jump 'out'
(note that the sugar frame would have the center as a 'selectable control'
for dismissing it and for easier navigation from bottom to side.)
=== Pane with mixed graphics and controls (Browse, etc.) ===
Two modes, 'inside' and 'outside'. In 'inside' mode, as for 'controls'
above. In 'outside' mode, as 'static pane', above. To switch modes out, as
above or W. To switch modes in, E.
=== Popup list or similar one-dimensional compound control ===
Up and down choose items
L, R, U hold and D hold: choose next control in that direction.
== shape buttons ==
W: dismiss menu/dismiss selection (leaving cursor at 'most recent'
end)/out/get frame. Note that the square shape is a good mapping for the
frame button
W hold: app-defined.
E: select/in. Note check mark maps to enter.
E hold: app-defined context menu (when text is selected, has 'copy'
option). Like right-click.
N,S,N hold,S hold: app-defined
==two kinds of menus==
context menus summoned by a hold (such as N hold or S hold) are sticky
menus. Arrows to choose option (defaults to most recent selection) then E
to select, or W to get out.
context menus summoned by a press (if any) are called 'rockers'. They
remap 7 of the 8 buttons (excepting W, which dismisses them). Depending on
the function assigned to each button, it may leave the menu active or
dismiss it. The function on E should be one which dismisses the menu.
A special case of the rocker menu is the one summoned by the rotate key.
An arrow key would set that direction as up, E and W would alt-tab through
activities, N and S would be the brightness controls (very necessary), N
and S hold would be volume control, and E or W hold would toggle the
bulletin board (as this will become a fundamental part of classroom use
IMO). Clicking rotate again would go back to normal and briefly show a
graphic indicator of what all the buttons do (the indicator also flashes
as you push the buttons, except for simple arrow presses).
Again, I understand that for any given activity, it is probably possible
with a lot of thought to make a better interface by statically mapping W
and E to common functions. However, I think that the advantages of
increased consistency for the user, of generalized navigability, and of
taking that task as much as possible off the shoulders of the programmer,
outweigh this. Also note that these buttons are available for mouse-free
navigation even with the laptop open (if the mouse or part of the screen
is broken, or for running a laptop with some kind of remote control, or
for generalized accessibility, or whatever).
--
Ticket URL: <http://dev.laptop.org/ticket/1310#comment:13>
One Laptop Per Child <http://dev.laptop.org>
OLPC bug tracking system
More information about the Bugs
mailing list