Refacor of our GUI Keyboard for allowing native onscreen keyboards #1194

merged 5 commits into from Aug 1, 2012


None yet

3 participants

Memphiz commented Jul 21, 2012

This splits our GUIDialogKeyboard.cpp approach into some classes for allowing the implementation of native onscreen keyboards (mostly interesting for touch devices).


  • add guilib/GUIKeyboard.cpp/.h - this is the baseclass each onscreen keyboard has to implement
  • move the GUIDialog/Keyboard out of dialogs/GUIDialogKeyboard.cpp/.h to dialogs/GUIDialogKeyboardGeneric.cpp/.h
  • move the rest (all the static ShowAndGetInput methods) to guilib/GUIKeyboardFactory.cpp/.h
  • make all keyboard users use the CGUIKeyboardFactory class for accessing keyboard functions
  • add implementation for native onscreen keyboard for ios

Well i know its not bisectable - but i tried hard and didn't come up with a solution because of the trickyness :).

I have tested it on osx, linux, windows, ios and atv2. Behaviour is same like before (except ios which now has a fancy native on screen keyboard :D).

@jmarshallnz its you again i guess (sounds familiar ha? ;) ). If you remember you proposed something like this some months ago. I hope i've hit your taste...

Memphiz commented Jul 28, 2012

Ok - i have done your comments and also moved the object creation of the GUIKeyboard implementations into the factory where it belongs to (getting rid of the GUIKeyboard.cpp - only have the GUIKeyboard.h in there now).

Memphiz commented Jul 31, 2012

@jmarshallnz do we want this for august merge window?


I don't see why not - android will mean that anything else that needs altering to make it work there can then happen in master.

@Memphiz Memphiz was assigned Aug 1, 2012
Memphiz added some commits Jul 21, 2012
@Memphiz Memphiz [ios] - add methods to XBMCController for allowing to attach an UIVie…
…w to the controller view (in our case this will be the native ios keyboard) - and for fetching the screenScale
@Memphiz Memphiz [keyboard] - add the GUIKeyboard baseclass which needs to be implemen…
…ted for each native keyboard

        - add ios keyboard implementation
        - add generic keyboard implementation (moved code from GUIDialogKeyboard.cpp)
@Memphiz Memphiz [keyboard] - moved the rest of the GUIDialogKeyboard (which is no dia…
…log anymore but only he bunch of ShowAndGetInput methods) to guilib/GUIKeyboardFactory
@Memphiz Memphiz [keyboard] - change all occurences of GUIDialogKeyboard to the new ap…
…proach and removed unneeded keyboard includes
@Memphiz Memphiz [keyboard] - buildsys changes b648a45
@Memphiz Memphiz merged commit 63c8b72 into xbmc:master Aug 1, 2012

In messing around with the keyboard, I have a small suggestion. It seems to me that "Enter value" is somewhat dry and unnecessary in the text entry box. I would think if the box was simply left empty altogether, users would still pretty much get the point of what it's there for, particularly as they start typing.

Memphiz commented Sep 5, 2012

Hey nate - basically the text which is shown there differs (depends if you hit search or filter). I have pinged JoeTheFox on making the Editbox for the native keyboard a bit more fancy some month ago. (because i don't like the gap between editbox and keyboard). Maybe i can ping him about it again and see if he can make it even more native ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment