#8370: Onscreen keyboard -------------------------------------+----------------------------- Reporter: X512 | Owner: korli Type: enhancement | Status: new Priority: normal | Milestone: R1 Component: Add-Ons/Input Filters | Version: R1/Development Resolution: | Keywords: Acer, W500, GCI Blocked By: 8338, 9545 | Blocking: Has a Patch: 0 | Platform: All -------------------------------------+----------------------------- Comment (by X512): Replying to [comment:8 leavengood]: > That looks pretty good. Just be sure to check the Keymap preflet code before you try to implement keymap support, as I suspect that will have most of what you would need (as Axel suggested.) BeAPI already has function ''get_key_map'' for handling keymaps. This function is enough for keyboard. I wrote special class "KeyboardHandler" that gets scancodes and produces messages. Also it handles states of caps, num and scroll lock keys, keystroke repeating by separate thread. For now handling deadkeys is missing. Keymap handling is a little part of this class. Most part is message generation that duplicates hardware keyboard input_server device. Replying to [comment:9 axeld]: > Looks nice, patches welcome. However, I think it must share the same code (KeyboardView) that Keymap is using -- it does not make much sense to maintain code that pretty much does the same thing in two different places. At first KeyboardView in Keymap preflet is hardcoded to be keymap editor and not keyboard. It need to be changed a lot to be shared. Changing will be more complicated than writing independent implementation. Current Keymap preflet is also waste a lot of CPU time that is a problem for mobile devices. At second I plan to use different keyboard layout format that layout keys like layouting of BViews using BLayout and had ability to use special keys such as keys without scancode (smiley, special characters), and keys that change layout or keymap. Also I plan to make GUI editor for layout to take benefit of modifiable nature of onscreen keyboard unlike hardware keyboard. -- Ticket URL: <http://dev.haiku-os.org/ticket/8370#comment:10> Haiku <http://dev.haiku-os.org> Haiku - the operating system.