Commit graph

7 commits

Author SHA1 Message Date
Baruch Rutman a1faa1cc6d [OSK] On Screen Keyboard overhaul
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.
2021-10-23 09:45:46 +02:00
Bișoc George 84e162e669 [OSK] General refactoring
- 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.
2019-08-15 20:35:17 +02:00
Bișoc George f681bad246 [OSK] Make the buttons themed
Our On-Screen Keyboard has a manifest and the buttons (the ones with BS_ICON styles) aren't rendered with the specific theme as it should be but instead it takes the classic theme.

The code relies on NM_CUSTOMDRAW notification, which is more intuitive and efficient than doing owner-drawn operations as NM_CUSTOMDRAW allows the controls to use styles whereas you cannot do it on owner-drawn controls.

CORE-15965
2019-04-29 21:31:29 +02:00
Bișoc George 75a7cf89a7 [OSK] Fix an instance race condition
On-Screen Keyboard provides a mechanism to launch the application only once, to avoid multiple entry point instances. Such mechanism is based upon mutex objects, although it could happen that the program may end up creating two or more mutexes (a race condition).

CORE-15877
2019-03-27 22:34:03 +01:00
Bișoc George d000a1e1c6 [OSK] Implement "Use Click Sound" feature
- 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
2019-03-01 00:13:47 +01:00
Bișoc George 34c812365f [OSK] Implement the welcome box (#1007)
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.
2018-11-17 21:27:33 +01:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Renamed from reactos/base/applications/osk/CMakeLists.txt (Browse further)