#egui #keyboard-input #keyboard #input #bind #keybind

egui-keybinds

keybinding system developed for EGUI

14 releases (stable)

3.3.8 Mar 18, 2023
3.2.7 Mar 17, 2023
2.2.6 Mar 17, 2023
1.2.4 Mar 17, 2023
0.1.1 Feb 10, 2023

#301 in GUI

GPL-3.0 license

25KB
598 lines

egui-keybinds

designed for ease-of-use, egui-keybinds provides keybinding functionality to egui

Example

use egui::{CentralPanel, Context, Widget};
use egui_keybinds::{KeyBind, KeyBindWidget, KeyCode};

struct Gui {
    key1: KeyBind,
    key2: KeyBind,
}

impl Gui {
    fn new() -> Self {
        Self {
            key1: KeyBind::new(Some(KeyCode::A), vec![]),
            key2: KeyBind::new(Some(KeyCode::B), vec![]),
        }
    }
}

impl eframe::App for Gui {
    fn update(&mut self, ctx: &Context, _frame: &mut eframe::Frame) {
        CentralPanel::default().show(ctx, |ui| {
            ui.label("Example keybind 1");
            KeyBindWidget::new(&mut self.key1).ui(ui);

            ui.label("Example keybind 2");
            KeyBindWidget::new(&mut self.key2).ui(ui);
        });
    }
}

fn main() {
    eframe::run_native(
        "testing",
        Default::default(),
        Box::new(|_| Box::new(Gui::new())),
    )
    .unwrap();
}

Add to your project

run cargo add egui-keybinds in your terminal of choice while CD'd into the root directory of your project.

Dependencies

~7–46MB
~670K SLoC