Primary changes:
Convert from dialog to an ordinary window, placing buttons according to data in keyboard.c
Character button text is now according to selected keyboard layout instead of system language.
Buttons will update* automatically when there is a layout switch (and when shift/capslock are pressed).
(Updating is most reliable when the keyboard is focused)
Removed keyboard dialog templates from resource files, they live on in keyboard.c
Secondary changes:
Support for font change, currently saved in registry is facename and height.
Additional registry load/save functions for strings to facilitate above change.
- Replace the existing header files in favour to a pre-compiled header instead. Furthermore, move all the function prototypes in the pre-compiled header.
- As per the prototype definitions, LoadDataFromRegistry() and SaveDataToRegistry() mustn't accept any number of parameters.
- Rename rsrc.rc to osk.rc (main resource file) as most of user-mode applications name have their main resource as the same application's name anyways.
- When querying and saving the data to registry, use only one value, greatly reducing the bloat of variables (as per the Hermes Belusca's request on #1729 PR).
- Update the header description reflecting the official ReactOS Coding style guidelines.
- Implement the save/load handler for this feature
- Check the "Use Click Sound" item state accordingly depending if it's enabled or disabled
- Use PlaySoundW() to play the wave sound file from resource
- Add the WAV sound click file. The work is made thanks to Midori Mizuno
- Add the respective standard keyboard resource.
- Implement the standard/enhanced keyboard dialog switcher.
- Implement save/load handler.
- Move the warning box conditinal check (bShowWarning) to wWinMain application entry point (this will prevent the modal welcome box from displaying each time the user switches into another dialog).
CORE-14428
In Windows XP, both in On-Screen Keyboard and in Magnify there is a welcome box which is shown upon startup of the application. This feature is already implemented for Magnify in ReactOS which however in On-Screen Keyboard is still unimplemented.