Difference between revisions of "Features/Touch/Development"
Line 9: | Line 9: | ||
: [[Design_Team/Activity_Touch_Input|Activity Touch Input]] | : [[Design_Team/Activity_Touch_Input|Activity Touch Input]] | ||
− | + | =Todo (essential)= | |
− | + | ==On screen keybord (OSK)== | |
==== Canvas auto panning based on input focus==== | ==== Canvas auto panning based on input focus==== | ||
* [http://git.gnome.org/browse/gtk+/log/?h=wip/im-osk-position GTK+ branch from Carlos] | * [http://git.gnome.org/browse/gtk+/log/?h=wip/im-osk-position GTK+ branch from Carlos] | ||
Line 43: | Line 43: | ||
For devices which have a hardware keyboard and a touchscreen the OSK should not be auto revealed in the "laptop mode". You will be able to manually reveal it with the button in the Frame. | For devices which have a hardware keyboard and a touchscreen the OSK should not be auto revealed in the "laptop mode". You will be able to manually reveal it with the button in the Frame. | ||
− | + | == Text selection == | |
* Selection handles | * Selection handles | ||
* Cut(?)/Copy/Paste/Speak selection palette | * Cut(?)/Copy/Paste/Speak selection palette | ||
− | + | == Drag scrolling support== | |
− | + | == Hide/show mouse cursor based on input method== | |
− | + | == Palette behaviours == | |
* Tapping icons with no primary action should instantly open full palette | * Tapping icons with no primary action should instantly open full palette | ||
** e.g. right frame edge buddy icons; central home buddy icon; access Point device icon | ** e.g. right frame edge buddy icons; central home buddy icon; access Point device icon | ||
− | + | == Frame == | |
* Expose/hide gesture!!! | * Expose/hide gesture!!! | ||
** Button for top left (fallback) | ** Button for top left (fallback) | ||
− | + | == Home view== | |
* Disable Activity icon dragging in fixed layouts | * Disable Activity icon dragging in fixed layouts | ||
** e.g. allows easier access to long hold of Activity icon to access palette | ** e.g. allows easier access to long hold of Activity icon to access palette | ||
− | + | == Neighbourhood view== | |
* Remove primary action from AP icons | * Remove primary action from AP icons | ||
* Remove primary action from ad-hoc icons | * Remove primary action from ad-hoc icons | ||
* Remove primary action from shared activity icons | * Remove primary action from shared activity icons | ||
− | + | == Journal == | |
* Touch & hold on an entry should invoke full palette | * Touch & hold on an entry should invoke full palette | ||
* Dragging an entry needs to work but not prevent the touch and hold palette (if finger moves a little) | * Dragging an entry needs to work but not prevent the touch and hold palette (if finger moves a little) | ||
** e.g. to copy it to another volume | ** e.g. to copy it to another volume | ||
− | + | ==Combobox== | |
* Single touch of a combo should lock open it's palette and allow drag scrolling | * Single touch of a combo should lock open it's palette and allow drag scrolling | ||
* Should not show blank space when previous selection was near the bottom of the list | * Should not show blank space when previous selection was near the bottom of the list | ||
* Up/down menu/combo overflow widgets need to be larger | * Up/down menu/combo overflow widgets need to be larger | ||
− | + | == Touch & hold '==' right click equivalent== | |
− | + | == Visual feedback for button presses== | |
* Generic solution - use a mouse HW cursor with alpha white 'glow' marking all primary touch events? | * Generic solution - use a mouse HW cursor with alpha white 'glow' marking all primary touch events? | ||
* Existing GTK button down highlights work well in toolbars | * Existing GTK button down highlights work well in toolbars | ||
Line 91: | Line 91: | ||
** Only really needed where there is no palette and/or primary action is too slow | ** Only really needed where there is no palette and/or primary action is too slow | ||
− | + | == Visual feedback for touch and hold == | |
* Animated circle timer? | * Animated circle timer? | ||
* Blinking grey round rect outline | * Blinking grey round rect outline | ||
− | + | ||
+ | = Todo (ideal) = | ||
* Palette behaviours | * Palette behaviours | ||
Line 120: | Line 121: | ||
** e.g. don't stall the UI thread | ** e.g. don't stall the UI thread | ||
− | + | ||
+ | = Todo (polish) = | ||
* Smooth transitions/animations | * Smooth transitions/animations | ||
Line 143: | Line 145: | ||
** Palette options presented in fullscreen UI, before activity pulse loader | ** Palette options presented in fullscreen UI, before activity pulse loader | ||
− | + | ||
+ | =Done= |
Revision as of 07:56, 10 August 2012
This page is about the development of the touch feature for the Sugar interface. Each item has a detailed implementation plan. The design decisions are based on these related pages:
Todo (essential)
On screen keybord (OSK)
Canvas auto panning based on input focus
Show Frame or OSK, never both
When the OSK is up and the frame is revealed the OSK should go away, same when the Frame is up and the OSK is revealed (manually or automatically) the Frame should hide.
Hide OSK key on OSK
There should be a key on the OSK to manually hide the keyboard. Currently you can already hide the Maliit keyboard by a vertical stroke but that is not as discoverable and does not work as reliable (as of today).
Show OSK button on device Frame edge
There should be a key on the Frame in the device section to manually reveal the OSK.
Sugar theme
The OSK should have a Sugar theme.
Internationalisation
- e.g. layout covers our accent needs
Multilingual
- e.g. ability to switching between at least two languages
Landscape/portrait
Currently not working anymore, upstream Maliit bug.
Reveal on text input focus, auto **dismiss** on loss of focus
Don't auto reveal in laptop mode, only ebook mode
For devices which have a hardware keyboard and a touchscreen the OSK should not be auto revealed in the "laptop mode". You will be able to manually reveal it with the button in the Frame.
Text selection
- Selection handles
- Cut(?)/Copy/Paste/Speak selection palette
Drag scrolling support
Hide/show mouse cursor based on input method
Palette behaviours
- Tapping icons with no primary action should instantly open full palette
- e.g. right frame edge buddy icons; central home buddy icon; access Point device icon
Frame
- Expose/hide gesture!!!
- Button for top left (fallback)
Home view
- Disable Activity icon dragging in fixed layouts
- e.g. allows easier access to long hold of Activity icon to access palette
Neighbourhood view
- Remove primary action from AP icons
- Remove primary action from ad-hoc icons
- Remove primary action from shared activity icons
Journal
- Touch & hold on an entry should invoke full palette
- Dragging an entry needs to work but not prevent the touch and hold palette (if finger moves a little)
- e.g. to copy it to another volume
Combobox
- Single touch of a combo should lock open it's palette and allow drag scrolling
- Should not show blank space when previous selection was near the bottom of the list
- Up/down menu/combo overflow widgets need to be larger
Touch & hold '==' right click equivalent
Visual feedback for button presses
- Generic solution - use a mouse HW cursor with alpha white 'glow' marking all primary touch events?
- Existing GTK button down highlights work well in toolbars
- Shell canvas area views
- Use grey round rect outline for presses
- AP icons
- Activity icons
- Buddy icons
- Ad-hoc icons
- Only really needed where there is no palette and/or primary action is too slow
- Use grey round rect outline for presses
Visual feedback for touch and hold
- Animated circle timer?
- Blinking grey round rect outline
Todo (ideal)
- Palette behaviours
- Single touch should never trigger hover content
- Touch and hold should raise hover content
- Touching the icon of an open palette should close the palette
- e.g. Journal list sort palette
- Toolbar overflow widget should be same size as Sugar toolbar button icons
- Zoom to content behaviour
- e.g. Browse
- Frame
- Activity Zoom icon (and physical key) should act like Alt-Tab
- Home view
- Improve layouts
- e.g. larger Activity icon usage where possible
- e.g. Increase separation between icons where possible
- Improve layouts
- Details view
- Alert dialogue needed for Erase toolbar button
- Alert dialogue needed for Duplicate toolbar button
- Accelerometer auto rotate based on rotation when laptop is in ebook mode
- Drag scrolling
- Smooth!!
- Priorities UI redraw over other processes
- e.g. don't stall the UI thread
Todo (polish)
- Smooth transitions/animations
- Text selection
- Feature extensible selection palette
- e.g. Activity specific formatting
- Feature extensible selection palette
- Home view
- New grid layout option
- Make sure Activities and shell works well in portrait
- e.g. toolbar button overflow in some Activities
- Pre-light hover effects (remove for touch screen input)
- hspan/vspan separators, make sure they are large enough for finger interaction
- OSK
- Subtle key click feedback
- Custom context
- Custom key strips/extras based on Activity
- Predictive text
- Context sensitive
- Locale sensitive
- Activity start/resume screen
- Remove start/resume palette
- Palette options presented in fullscreen UI, before activity pulse loader