# TyPo for TiVo



## davidblackledge (Sep 9, 2008)

As first used in my new Google Maps App ( http://www.tivocommunity.com/tivo-vb/showthread.php?p=7930112#post7930112 ) I have finally released my auto-completing keyboard widget I call "TyPo for TiVo"
It's available from http://david.blackledge.com/tivo/multitasker in the "Widgets & Gadgets" jar file. It's also now used by the "StringGetterScreen" Gadget.
I haven't updated the javadoc yet... not sure when I'll get a chance.

It works like a BButton initially, but when the user clicks "select" it expands into a text area with a cursor, a keyboard below it, and a list of completions above it. The completion list updates with every letter added (or your current position in the current word) and you can select a completion by pressing the number on the remote that corresponds to it (or selecting it from the list).

When it expands it repositions to ensure there's enough room for everything - so it might prove easier to just use the StringGetterScreen which doesn't have that extra step.

The text area has full editing ability with the addition of left/right to move the cursor, advance to move to the end/beginning, and replay to move back by one word. Thumbs will let you change case of the next letter, too.

Thumbs while in the keyboard or completion list affect capitalization or caps-lock of your next selection.

It loads the Moby word lists of Frequently used words and Common words. If other Moby word lists are present in the top of the class path, it will add them as well. If you type words not in those lists, they are added to a user dictionary of words for later auto completion. (stored in the user's home directory)

The keyboard is a custom layout that contains a row of commonly needed letter combinations (e.g. "sh"), then a row of punctuation, then the alphabet layed out so the first row is all the vowels.

It has a lot of programmer options for how it behaves on the edges of the keyboard and text area to enable as many cases as I could think of.
"clear" also has an "undo" function (hit clear again).

As usual, it's not pretty, but it works nicely in my opinion.

It still needs a few tweaks like handling if the text gets too long, it should jump back to the text area when you select a completion from the keyboard area, and I want to make it smarter when you press a number while in the text area (right now it just types the number - it should select that auto-completion unless you're at the beginning of a word or there isn't such a completion). It doesn't take advantage of HD if available. Also it needs to be prettier ;]


----------

