Difference between revisions of "On Screen Keyboard"

From WebOS Internals
Jump to navigation Jump to search
Line 31: Line 31:
 
sh /opt/src/modifications/frameworks/install_theme
 
sh /opt/src/modifications/frameworks/install_theme
 
</pre>
 
</pre>
 +
 +
=Change Log=
 +
===8/13/09 - Fixes===
 +
Functional backspace, space and enter keys added.
 +
 +
I ran into some issues getting the enter key to work correctly, so that is the reason for the delay. I just want to get this part out so the keyboard can actually be used to send messages. I will continue to work on the list.
 +
 +
===8/16/09 - Fixes===
 +
Added functional shift and sym capabilities.
 +
Added landscape mode resize.
 +
 +
 +
===8/18/09 - Fixes/Enhancements===
 +
Added theme capabilities
 +
Changed default theme to use remix2000's images (big thanks!)
 +
Added missing symbols
 +
Fixed landscape mode to correctly render in landscape if launched from that state.
 +
 +
Thanks again to remix2000 for the nice keyboard images. I'll have specs up eventually for the images/theme framework once I implement a user-app callable way to switch themes.
 +
 +
===8/18/09 (evening) - Fixes/Enhancements===
 +
Increased width of keyboard to span entire screen
 +
Added orange-key functionality
 +
Made keyboard draggable after tapping blank key
 +
Added haptic feedback
  
 
=Issues=
 
=Issues=
 
as of 17 August 2009 the following issues are known:  
 
as of 17 August 2009 the following issues are known:  
  
* Add method to get at numbers and symbols (possibilities: sym,flick) '''Done'''
 
* Modify keyboard dimensions in landscape mode to span accross width '''Done'''
 
 
* Do not bring up keyboard when using hard keyboard clipboard events (might have to disable the keyboard when slider is open exposing hard keyboard)  
 
* Do not bring up keyboard when using hard keyboard clipboard events (might have to disable the keyboard when slider is open exposing hard keyboard)  
 
* Enable usage to search contacts/universal search -- for example Name, email address, etc are ''search'' fields not text fields.  
 
* Enable usage to search contacts/universal search -- for example Name, email address, etc are ''search'' fields not text fields.  
* Fix far right column  -- '''DONE 13 Aug'''
 
 
* Verify auto-correct when space added.
 
* Verify auto-correct when space added.
* Possibly (and optionally) play sound or haptic feedback on touch '''Done'''
 
 
* Add clipboard capabilities
 
* Add clipboard capabilities
 
* Explore T9-type, limited-width keyboard options
 
* Explore T9-type, limited-width keyboard options
* Do not bring up keyboard on swipe gestures, only tap if possible '''Done'''
 
* Space, enter, backspace need to work  == '''DONE 13 Aug'''
 

Revision as of 14:55, 19 August 2009

On Screen Keyboard.png

Warning. This is PRE ALPHA testing grade only software. It may cause your pre to melt into a puddle and dissolve while turning blue. Use at your own risk!

On screen keyboard 2.png

Introduction

The Palm Pre ships with a very limited on-screen keyboard for inserting symbols. It works in portrait and landscape, in all apps, in all fields. This on screen keyboard provides a basis for programmers to develop a fully functional on screen keyboard for the Pre.

Explanation

On an unmodified Pre if you press the "sym" key and a scrollable 5x5 keyboard pops up full of alternate characters.

On screen keyboard 3.png

This is controlled by code incorporated into the framework.js. The specific functions there can be seeen in /usr/palm/frameworks/mojo/submissions/191.15/javascripts/widget_charselector.js

with the layout controlled by 3 files in /usr/palm/frameworks/mojo/submissions/191.15/templates/charselector

the actual list of characters that appear on the screen is controlled by /usr/palm/frameworks/mojo/submissions/191.15/resources/en_us/alternatechars_table.json

At the simplest level then, creating an on-screen keyboard requires editing the alternate characters table json, to add the "regular" charcters to it, and then when you want a keyboard, press SYM and poof, a keyboard. The problem with that is, the alternatechars_table.json is "fragile" the slightests mis-edit results in the pre entering a continuous book cycle.

At the next level, the framework's copy of widget_charselector.js needs to be modified to not close the keyboard after each keypress.

As of 12 August 2009 Webos-internals contributor Eric Gaudet (irc egaudet) announced success at patching the framework.js to accept a new function derived from the charselector widget. This pre-alpha proof of concept on-screen keyboard is available as a patch.

Procedure

The patch is on Gitorious, please read the following to install the patch: Applying Patches

The patch should be stored (on Pre) in: /opt/src/modifications/frameworks/add-onscreen-keyboard.patch

There are also theme images needed in the current release. Folow these instructions to install the patch AND the theme images (NOTE: must be root)

sh /opt/src/modifications/install add-onscreen-keyboard.patch
sh /opt/src/modifications/frameworks/install_theme

Change Log

8/13/09 - Fixes

Functional backspace, space and enter keys added.

I ran into some issues getting the enter key to work correctly, so that is the reason for the delay. I just want to get this part out so the keyboard can actually be used to send messages. I will continue to work on the list.

8/16/09 - Fixes

Added functional shift and sym capabilities. Added landscape mode resize.


8/18/09 - Fixes/Enhancements

Added theme capabilities Changed default theme to use remix2000's images (big thanks!) Added missing symbols Fixed landscape mode to correctly render in landscape if launched from that state.

Thanks again to remix2000 for the nice keyboard images. I'll have specs up eventually for the images/theme framework once I implement a user-app callable way to switch themes.

8/18/09 (evening) - Fixes/Enhancements

Increased width of keyboard to span entire screen Added orange-key functionality Made keyboard draggable after tapping blank key Added haptic feedback

Issues

as of 17 August 2009 the following issues are known:

  • Do not bring up keyboard when using hard keyboard clipboard events (might have to disable the keyboard when slider is open exposing hard keyboard)
  • Enable usage to search contacts/universal search -- for example Name, email address, etc are search fields not text fields.
  • Verify auto-correct when space added.
  • Add clipboard capabilities
  • Explore T9-type, limited-width keyboard options