#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