Skip to content

Commit d9e4c1b

Browse files
committed
loose initial keyboard shortcuts setup
1 parent 0b26d86 commit d9e4c1b

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

src/ui/src/actions.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
use gpui::actions;
2+
3+
actions!(scope, [Quit]);

src/ui/src/main.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1+
pub mod actions;
12
pub mod app;
23
pub mod app_state;
34
pub mod channel;
5+
pub mod menu;
46

57
use std::sync::Arc;
68

79
use app_state::AppState;
810
use components::theme::{Theme, ThemeColor, ThemeMode};
911
use gpui::*;
1012
use http_client::anyhow;
13+
use menu::app_menus;
1114

1215
#[derive(rust_embed::RustEmbed)]
1316
#[folder = "../../assets"]
@@ -33,6 +36,10 @@ fn init(_: Arc<AppState>, cx: &mut AppContext) -> Result<()> {
3336
Ok(())
3437
}
3538

39+
fn quit(_: &actions::Quit, cx: &mut AppContext) {
40+
cx.quit();
41+
}
42+
3643
#[tokio::main]
3744
async fn main() {
3845
env_logger::init();
@@ -47,6 +54,10 @@ async fn main() {
4754
return;
4855
}
4956

57+
cx.bind_keys(vec![KeyBinding::new("cmd-q", actions::Quit, None)]);
58+
cx.on_action(quit);
59+
cx.set_menus(app_menus());
60+
5061
let mut theme = Theme::from(ThemeColor::dark());
5162
theme.mode = ThemeMode::Dark;
5263
theme.accent = hsla(335.0 / 360.0, 97.0 / 100.0, 61.0 / 100.0, 1.0);

src/ui/src/menu.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
use gpui::{Menu, MenuItem};
2+
3+
use crate::actions;
4+
5+
pub fn app_menus() -> Vec<Menu> {
6+
vec![Menu {
7+
name: "Scope".into(),
8+
items: vec![MenuItem::action("Quit", actions::Quit)],
9+
}]
10+
}

0 commit comments

Comments
 (0)