Adding Msinkaut support to Windows QPA plugin, enhance Qt 5.x pen/tablet support?



  • Hey,

    I've been working on a Qt 5.x application that is tablet-oriented focused on Windows support. I ran into issues with devices that don't have wintab drivers or have them and aren't detected by Qt. I looked through various Windows APIs for pen handling and added (private) proof-of-concept support for the RTSCom API and have been getting Tablet events for various tablet models/manufacturers (Able to run the tablet example project in Qt sources).

    Now, MinGW-w64 (also ReactOS, Wine) added Msinkaut IDL/header/source which has a similar API to RTSCom (no free compiler or any free project I have seen supports it, only a GSoC mention in Wine, not worked on) and I'll be reworking my patch to use this API instead. Given that these APIs are supported in Windows XP Tablet PC Edition (2002) upwards as a standardized alternative to vendor-supplied wintab drivers, I'm wondering: Would Qt5 benefit from a patch submitted that adds support for Windows ink APIs as a fallback if the wintab driver (QWindowsTabletSupport) fails?

    I can see why there hasn't been any development using these APIs, MinGW has no support, MinGW-w64 recently added the relevant development files 2015-04-29 (however Wine contained these development files since around 2007 it seems). The files from Wine/ReactOS/etc. with a compatible license could be pulled into qtbase/src/3rdparty in the event that the compiler used lacks these dev files.

    Just wondering if anyone's looking/using Qt 5 for tablet input and any feedback on more out-of-the-box support for tablets on Windows.


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    The offer looks pretty interesting, I invite you to bring this topic on the development mailing list
    If you already have something working or in progress you can submit a patch to gerrit so other developers/maintainers can start reviewing it.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.