libnotcurses_sys/widgets/menu/methods/
mod.rs1use super::{NcMenuItem, NcMenuSection};
4use crate::{cstring, NcInput};
5use core::ptr::null_mut;
6
7#[allow(unused_imports)] use crate::widgets::NcMenu;
9
10mod menu;
11mod options;
12
13pub use menu::*;
14pub use options::*;
15
16impl NcMenuItem {
18 pub fn new(desc: &str, shortcut: NcInput) -> Self {
20 let cs = cstring![desc];
21 Self {
22 desc: cs.into_raw(),
24
25 shortcut,
27 }
28 }
29
30 pub fn new_empty() -> Self {
32 Self { desc: null_mut(), shortcut: NcInput::new_empty() }
33 }
34}
35
36impl NcMenuSection {
40 pub fn new(name: &str, items: &mut [NcMenuItem], shortcut: NcInput) -> Self {
42 let cs = cstring![name];
43 Self {
44 name: cs.into_raw(),
46
47 items: items.as_mut_ptr(),
49
50 itemcount: items.len() as i32,
52
53 shortcut,
55 }
56 }
57
58 pub fn new_separator() -> Self {
61 Self { name: null_mut(), items: null_mut(), itemcount: 0, shortcut: NcInput::new_empty() }
62 }
63}