mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-09 19:00:46 +00:00
Update ncurses backend to use mouse_v1
This commit is contained in:
parent
b0a86ceb61
commit
3b81305b16
@ -10,6 +10,7 @@ name = "cursive"
|
|||||||
readme = "Readme.md"
|
readme = "Readme.md"
|
||||||
repository = "https://github.com/gyscos/Cursive"
|
repository = "https://github.com/gyscos/Cursive"
|
||||||
version = "0.9.3-alpha.0"
|
version = "0.9.3-alpha.0"
|
||||||
|
build = "build.rs"
|
||||||
|
|
||||||
[badges.travis-ci]
|
[badges.travis-ci]
|
||||||
repository = "gyscos/Cursive"
|
repository = "gyscos/Cursive"
|
||||||
@ -17,6 +18,9 @@ repository = "gyscos/Cursive"
|
|||||||
[badges.appveyor]
|
[badges.appveyor]
|
||||||
repository = "gyscos/Cursive"
|
repository = "gyscos/Cursive"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
ncurses = {optional = true, version = "5.96"}
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
enum-map = "0.4"
|
enum-map = "0.4"
|
||||||
enumset = "0.3"
|
enumset = "0.3"
|
||||||
@ -45,7 +49,7 @@ version = "1.3"
|
|||||||
[dependencies.ncurses]
|
[dependencies.ncurses]
|
||||||
features = ["wide"]
|
features = ["wide"]
|
||||||
optional = true
|
optional = true
|
||||||
version = "5.91"
|
version = "5.96"
|
||||||
|
|
||||||
[dependencies.pancurses]
|
[dependencies.pancurses]
|
||||||
features = ["wide"]
|
features = ["wide"]
|
||||||
|
9
build.rs
Normal file
9
build.rs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fn main() {
|
||||||
|
#[cfg(feature = "ncurses-backend")]
|
||||||
|
{
|
||||||
|
extern crate ncurses;
|
||||||
|
if ncurses::NCURSES_MOUSE_VERSION == 1 {
|
||||||
|
print!(r#"cargo:rustc-cfg=feature="ncurses.mouse_v1""#);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -420,6 +420,7 @@ fn get_mouse_button(bare_event: i32) -> MouseButton {
|
|||||||
| ncurses::BUTTON4_CLICKED
|
| ncurses::BUTTON4_CLICKED
|
||||||
| ncurses::BUTTON4_DOUBLE_CLICKED
|
| ncurses::BUTTON4_DOUBLE_CLICKED
|
||||||
| ncurses::BUTTON4_TRIPLE_CLICKED => MouseButton::Button4,
|
| ncurses::BUTTON4_TRIPLE_CLICKED => MouseButton::Button4,
|
||||||
|
#[cfg(not(feature = "ncurses.mouse_v1"))]
|
||||||
ncurses::BUTTON5_RELEASED
|
ncurses::BUTTON5_RELEASED
|
||||||
| ncurses::BUTTON5_PRESSED
|
| ncurses::BUTTON5_PRESSED
|
||||||
| ncurses::BUTTON5_CLICKED
|
| ncurses::BUTTON5_CLICKED
|
||||||
@ -442,41 +443,18 @@ where
|
|||||||
{
|
{
|
||||||
let button = get_mouse_button(bare_event);
|
let button = get_mouse_button(bare_event);
|
||||||
match bare_event {
|
match bare_event {
|
||||||
ncurses::BUTTON4_PRESSED => f(MouseEvent::WheelUp),
|
|
||||||
ncurses::BUTTON5_PRESSED => f(MouseEvent::WheelDown),
|
|
||||||
ncurses::BUTTON1_RELEASED
|
ncurses::BUTTON1_RELEASED
|
||||||
| ncurses::BUTTON2_RELEASED
|
| ncurses::BUTTON2_RELEASED
|
||||||
| ncurses::BUTTON3_RELEASED
|
| ncurses::BUTTON3_RELEASED
|
||||||
| ncurses::BUTTON4_RELEASED
|
| ncurses::BUTTON4_RELEASED => f(MouseEvent::Release(button)),
|
||||||
| ncurses::BUTTON5_RELEASED => f(MouseEvent::Release(button)),
|
#[cfg(not(feature = "ncurses.mouse_v1"))]
|
||||||
|
ncurses::BUTTON5_RELEASED => f(MouseEvent::Release(button)),
|
||||||
ncurses::BUTTON1_PRESSED
|
ncurses::BUTTON1_PRESSED
|
||||||
| ncurses::BUTTON2_PRESSED
|
| ncurses::BUTTON2_PRESSED
|
||||||
| ncurses::BUTTON3_PRESSED => f(MouseEvent::Press(button)),
|
| ncurses::BUTTON3_PRESSED => f(MouseEvent::Press(button)),
|
||||||
ncurses::BUTTON1_CLICKED
|
ncurses::BUTTON4_PRESSED => f(MouseEvent::WheelUp),
|
||||||
| ncurses::BUTTON2_CLICKED
|
#[cfg(not(feature = "ncurses.mouse_v1"))]
|
||||||
| ncurses::BUTTON3_CLICKED
|
ncurses::BUTTON5_PRESSED => f(MouseEvent::WheelDown),
|
||||||
| ncurses::BUTTON4_CLICKED
|
|
||||||
| ncurses::BUTTON5_CLICKED => {
|
|
||||||
f(MouseEvent::Press(button));
|
|
||||||
f(MouseEvent::Release(button));
|
|
||||||
}
|
|
||||||
// Well, we disabled click detection
|
|
||||||
ncurses::BUTTON1_DOUBLE_CLICKED
|
|
||||||
| ncurses::BUTTON2_DOUBLE_CLICKED
|
|
||||||
| ncurses::BUTTON3_DOUBLE_CLICKED
|
|
||||||
| ncurses::BUTTON4_DOUBLE_CLICKED
|
|
||||||
| ncurses::BUTTON5_DOUBLE_CLICKED => for _ in 0..2 {
|
|
||||||
f(MouseEvent::Press(button));
|
|
||||||
f(MouseEvent::Release(button));
|
|
||||||
},
|
|
||||||
ncurses::BUTTON1_TRIPLE_CLICKED
|
|
||||||
| ncurses::BUTTON2_TRIPLE_CLICKED
|
|
||||||
| ncurses::BUTTON3_TRIPLE_CLICKED
|
|
||||||
| ncurses::BUTTON4_TRIPLE_CLICKED
|
|
||||||
| ncurses::BUTTON5_TRIPLE_CLICKED => for _ in 0..3 {
|
|
||||||
f(MouseEvent::Press(button));
|
|
||||||
f(MouseEvent::Release(button));
|
|
||||||
},
|
|
||||||
_ => debug!("Unknown event: {:032b}", bare_event),
|
_ => debug!("Unknown event: {:032b}", bare_event),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user