Shortcut support for orbclient::Window
The library makes used of:
```rust
``` and therefore requires to be build with rust nightly. The default branch to be cloned from is 'testing'.
The lib is available on creates.io. In your Cargo.toml (I may not update the latest version number in the README.md):
rust
orbclient_window_shortcuts = "0.1.2"
In your lib or bin code:
rust
use shortcut::{Shortcut, ShortcutId, ShortcutEq};
The orbclient requires sdl2 or orbital (redox os) to run, and may not be installed on your system. On Arch Linux your can use pacman to install libsdl2.
linux
$ pacman -Syu sdl2
On Ubuntu you may install libsdl2 from a 3rd party or compile it from sources:
```linux
$ cd SDL2-2.0.5 && ./configure && make && sudo make install ```
Implementation for your Window
application:
rust
// Provides the capturing of default shortcuts: CTRL+O (Open), CTRL+N (New), CTRL-Q (Quit)
let mut sceq = ShortcutEq::with_defaults();
In a loop to capture window events implement EventOption::Key(ke):
Every keystroke that's a supported shortcut will return a ShortcutId::{New, Open, Quit}
, which
can be matched.
rust
events: loop {
for event in window.events() {
match event.to_option() {
EventOption::Key(ke) => match sceq.update(ke) {
Some(sc) => {
// Sample action
if PartialEq::eq(sc, &ShortcutId::Quit) { break 'events }
None => {...},
},
...
I take any advice and ideas which I will considere when my rust programming capabilities improve. :)
Very much appreciated. Please file bug, enahncement or question issues, or fork and request pulls. Thank you very much.