August 13, 2016 platform specific api usage | ||||
---|---|---|---|---|
| ||||
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? |
August 13, 2016 Re: platform specific api usage | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brons | 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 |
Copyright © 1999-2021 by the D Language Foundation