Orbclient Window Shortcuts

crates.io Build Status License: MIT

Description

Shortcut support for orbclient::Window

The library makes used of:

```rust

![feature(vecremoveitem)]

``` and therefore requires to be build with rust nightly. The default branch to be cloned from is 'testing'.

Prerequisites & Implementation

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

wget https://www.libsdl.org/release/SDL2-2.0.5.tar.gz -O SDL2-2.0.5.tar.gz

tar -xzvf SDL2-2.0.5.tar.gz

$ 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 => {...}, }, ...

The future and potential features

I take any advice and ideas which I will considere when my rust programming capabilities improve. :)

Contribution

Very much appreciated. Please file bug, enahncement or question issues, or fork and request pulls. Thank you very much.