Commit graph

22 commits

Author SHA1 Message Date
Katayama Hirofumi MZ 47f3a4e144 [OSK] Delete WS_EX_NOACTIVATE workaround code
CORE-18528
2022-12-04 10:15:56 +09:00
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
George Bișoc aea948a79e [OSK] Handle the warning dialog box in its own thread
The dialog box at the startup of On-Screen Keyboard is displayed alongside with main window. While the Microsoft's OSK in XP is written in MFC and OSK is actually a mere window whereas our OSK is a dialog, the main dialog procedure call is superseded until the user does something with the warning dialog box on startup.

Just create a thread for it and handle the dialog box on startup in its own thread.
2021-04-10 10:05:08 +02:00
George Bișoc b00ecdcab9
Replace my E-mail with the ReactOS org one (#3475)
From now on for ReactOS related contributions only the organization e-mail shall be used and also reverse the order of my real full name.
2021-02-22 18:26:55 +03:00
Bișoc George 14ebc0ba3d [OSK] Refactor the registry configuration code (#2096)
Rewrite LoadDataFromRegistry() and SaveDataToRegistry() as function helpers. With these, we'll be able to load and save data to registry on our choice.
2019-12-12 08:25:55 +09:00
Bișoc George 411a599610 [OSK] Reduce the delay when redrawing LED keyboard resources (#1385)
200 ms would mean that the LEDs redraw each 0,2 second and this adds a slight delay. This can be seen if you press the Num lock key (for example) many times in a row and the LED resources won't update instantly. Therefore reducing the value of uElapse should significantly decrease the delay and the LEDs should update in a realistic way. Furthermore, before invalidating the LED resource check the toggle state of the keys.
2019-11-18 21:24:45 +01: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 4c4e3d6048 [OSK] Use new coordinates on keyboard layout changing (#1745)
CORE-16214
2019-07-21 16:52:25 +02:00
Bișoc George b292acb5f7 [OSK] Implement "Always on Top" feature (#1729) 2019-07-15 15:59:06 +02:00
Bișoc George f8b90805ff
[OSK] Hotfix for PR #1536 (#1549)
CORE-15965
2019-05-01 22:22:08 +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 f8e0b4675f [OSK] Initialize the common controls
On-Screen Keyboard has a manifest which is used for visual styles. However, the common controls aren't initialized and as a general rule the controls have to be loaded in the application's handle instance.
2019-03-28 19:02:48 +01: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 65239bcf4b [OSK] Restore the previous window coordination
Implement the coordination dialog data saver. This allows OSK to launch using the previous placement values. Such behaviour can be seen with the XP's part of On-Screen Keyboard.
2019-03-23 16:34:48 +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 3cd3d896b7 [OSK] Implement standard/enhanced keyboard handler (#1338)
- 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
2019-02-10 16:04:16 +01:00
Bișoc George dfa5ff553b [OSK] Initial implementation of a menu (#1301) 2019-01-27 17:35:26 +01:00
Bișoc George f2e0de2f31 [OSK] Use Unicode functions explicitly (#1291) 2019-01-23 13:28:56 +01:00
Hermès Bélusca-Maïto 92763e2901
[OSK] Set also the large icon (that appears in the App Switcher) and move the code in OSK_DlgInitDialog(). 2018-12-10 00:56:54 +01:00
Bișoc George 42ddd011ce [OSK] Display the correct icon of the application. (#1105) 2018-12-09 20:13:17 +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/main.c (Browse further)