mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 13:20:05 -04:00
Multiple mouse button support (#135)
Add support for primary, secondary and middle mouse buttons. Also improve ability to click things in low FPS situations.
This introduces a lot of breaking changes:
Backends/integrations now pass mouse events via the even stream.
Response has an interface of mostly methods instead of public members.
input.mouse is now input.pointer and has new interface.
* Rename 'mouse' to 'pointer' everywhere (pointer = mouse or touch)
* Make Response::clicked and Response::double_clicked into methods
* Remove Response::active and add dragged() and interact_pointer_pos()
* Support multiple mouse buttons
* Make PointerState interface all methods
* Make most members of Response private
This commit is contained in:
@@ -21,6 +21,9 @@ pub const fn vec2(x: f32, y: f32) -> Vec2 {
|
||||
Vec2 { x, y }
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Compatibility and convenience conversions to and from [f32; 2]:
|
||||
|
||||
impl From<[f32; 2]> for Vec2 {
|
||||
fn from(v: [f32; 2]) -> Self {
|
||||
Self { x: v[0], y: v[1] }
|
||||
@@ -33,6 +36,47 @@ impl From<&[f32; 2]> for Vec2 {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Vec2> for [f32; 2] {
|
||||
fn from(v: Vec2) -> Self {
|
||||
[v.x, v.y]
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&Vec2> for [f32; 2] {
|
||||
fn from(v: &Vec2) -> Self {
|
||||
[v.x, v.y]
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Compatibility and convenience conversions to and from (f32, f32):
|
||||
|
||||
impl From<(f32, f32)> for Vec2 {
|
||||
fn from(v: (f32, f32)) -> Self {
|
||||
Self { x: v.0, y: v.1 }
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&(f32, f32)> for Vec2 {
|
||||
fn from(v: &(f32, f32)) -> Self {
|
||||
Self { x: v.0, y: v.1 }
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Vec2> for (f32, f32) {
|
||||
fn from(v: Vec2) -> Self {
|
||||
(v.x, v.y)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&Vec2> for (f32, f32) {
|
||||
fn from(v: &Vec2) -> Self {
|
||||
(v.x, v.y)
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
impl Vec2 {
|
||||
pub const X: Vec2 = Vec2 { x: 1.0, y: 0.0 };
|
||||
pub const Y: Vec2 = Vec2 { x: 0.0, y: 1.0 };
|
||||
|
||||
Reference in New Issue
Block a user