www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - platform specific api usage

reply Brons <bronsonmathews gmail.com> writes:
Hi,

Im trying to make a application to have global system hotkeys, 
and key emulation.
Ive found:
https://github.com/dlang/druntime/tree/master/src/core/sys/
https://github.com/madadam/X11.d/tree/master/X11
https://github.com/smjgordon/bindings

It looks like druntime is based off smjgordon. But i cant find 
any documentation on using any of them.

Id like it to work on windows and linux.
Any ideas on where to get started on this?
Aug 13 2016
parent Basile B. <b2.temp gmx.com> writes:
On Saturday, 13 August 2016 at 08:11:50 UTC, Brons wrote:
 Hi,

 Im trying to make a application to have global system hotkeys, 
 and key emulation.
 Ive found:
 https://github.com/dlang/druntime/tree/master/src/core/sys/
 https://github.com/madadam/X11.d/tree/master/X11
 https://github.com/smjgordon/bindings

 It looks like druntime is based off smjgordon. But i cant find 
 any documentation on using any of them.

 Id like it to work on windows and linux.
 Any ideas on where to get started on this?
You must start with something like this: °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° version(Windows) { import core.sys.windows.winuser; enum WIN = true; } else { import x11.keysymdef; enum WIN = false; } enum VK // virtual keys { left = WIN ? VK_LEFT : XK_Left, right = WIN ? VK_RIGHT : XK_Right, // etc... } °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Hotkeys are then a story of bit masking and bit sets. For each specific platform you'll have to translate the incoming events to form something like a struct made of a bitset of key modifiers (alt|ctrl|shift) and a char. example with x11: - https://github.com/BBasile/kheops/blob/master/src/kheops/control.d#L2166 - https://github.com/buggins/dlangui/blob/master/src/dlangui/platforms/x11/x11app.d#L811 example with win: - https://github.com/buggins/dlangui/blob/master/src/dlangui/platforms/windows/winapp.d#L787 - https://github.com/Devisualization/window/blob/master/platforms/win32/devisualization/window/window.d#L548
Aug 13 2016