m-land
Regarding not exposing stuff, example1, a lot of stuff is visible:
Code:
var VirtualKeyboard = {};
var somethingNotForPublic...;
function somethingPrivate() {
...
}
VirtualKeyboard.publicFunc = function() {
....
}
example2, only VirtualKehyboard.somePublicFunction is exposed (functions have their own scope, not visible outside):
Code:
var VirtualKeyboard = {};
var publicFunc;
var tmp = function() {
var somethingNotForPublic...;
function somethingPrivate() {
...
}
publicFunc = function() {
....
}
};
tmp();
VirtualKeyboard.publicFunc = publicFunc;
Regarding variable column size, it would allow to zoom. By the way, did you check if labels support re-sizable skins (uhm, or any skins at all actually

)? TextEdit definitely does. One could also use panels.
Regarding row/column highlighting, I meant something like this:
http://www.resolverhacks.net/resolve...-html-html.jpg
By "tab labels" I meant keyboard switches, yes.