[![Build Status](https://github.com/idanarye/bevy-egui-kbgp/workflows/CI/badge.svg)](https://github.com/idanarye/bevy-egui-kbgp/actions) [![Latest Version](https://img.shields.io/crates/v/bevy-egui-kbgp.svg)](https://crates.io/crates/bevy-egui-kbgp) [![Rust Documentation](https://img.shields.io/badge/api-rustdoc-blue.svg)](https://idanarye.github.io/bevy-egui-kbgp/) # Bevy egui KBGP - improved keyboard and gamepad usage for egui in Bevy [egui](https://github.com/emilk/egui) is an immediate mode GUI framework, that can be used inside the [Bevy game engine](https://bevyengine.org/) with [the bevy_egui crate](https://github.com/mvlabat/bevy_egui). egui is very mouse-oriented, and while it does support tab-navigation, game menus should be navigatable by the arrow keys (and/or by WASD) and by gamepads. This is where the bevy-egui-kbgp crate comes in. It allows to navigate egui widgets using the keyboard's arrow keys and using a gamepad's d-pad and left joystick (by default - all the controls can be redfined). It also allows activating these buttons from the gamepad. Try it out in https://idanarye.github.io/bevy-egui-kbgp/demos/example ## Features * Navigate the GUI using arrow keys and gamepads. * Activate buttons from gamepads (egui already supports activation from keyboard with Space/Enter) * User defined actions for the entire UI or for individual widgets. * Customize all these controls. * Key assignment. ## Planned features * Support for comboboxes. * Figure out how to support navigating out of textboxes. ## Versions | bevy | bevy_egui | bevy-egui-kbgp | |------|-----------|----------------| | 0.14 | 0.28 | 0.20 | | 0.13 | 0.27 | 0.19 | | 0.13 | 0.26 | 0.18 | | 0.13 | 0.25 | 0.17 | | 0.12 | 0.23 | 0.16 | | 0.11 | 0.22 | 0.15 | | 0.11 | 0.21 | 0.14 | | 0.10 | 0.20 | 0.12, 0.13 | | 0.9 | 0.19 | 0.11 | | 0.9 | 0.18 | 0.10 | | 0.9 | 0.17 | 0.9 | | 0.8 | 0.16 | 0.8 | | 0.8 | 0.15 | 0.7 | | 0.7 | 0.14 | 0.6 | | 0.7 | 0.13 | 0.5 | | 0.6 | 0.12 | 0.1 - 0.4 | ## License Licensed under either of * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. ### Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.