From 6977e836bcadd76e0180d23aa9c5fccd758b68a3 Mon Sep 17 00:00:00 2001 From: rowan Date: Sun, 26 Jan 2025 22:35:03 -0600 Subject: [PATCH] chore: start work on callback refactor --- Cargo.lock | 3 +-- src/lib.rs | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b496767..88cc4cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -635,11 +635,10 @@ dependencies = [ ] [[package]] -name = "wmenu" +name = "wmenu-rs" version = "0.1.0" dependencies = [ "gag", - "pangocairo-sys", "wmenu-sys", ] diff --git a/src/lib.rs b/src/lib.rs index 1d36036..5fe93e3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,6 +7,8 @@ use std::{ use wmenu_sys::bindings; +type Callback = fn(menu: &mut Menu, text: &str) -> bool; + unsafe extern "C" fn print_item(menu: *mut bindings::menu, text: *mut i8, exit: bool) { wmenu_sys::bindings::puts(text); wmenu_sys::bindings::fflush(bindings::stdout); @@ -45,9 +47,9 @@ pub struct Menu { } impl Menu { - pub fn new() -> Menu { + pub fn new(callback: Callback) -> Menu { Self { - ctx: unsafe { bindings::menu_create(Some(print_item)) }, + ctx: unsafe { bindings::menu_create(Some(callback)) }, } }