use crate::sys;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[repr(i32)]
#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum MouseButton {
Left = sys::ImGuiMouseButton_Left as i32,
Right = sys::ImGuiMouseButton_Right as i32,
Middle = sys::ImGuiMouseButton_Middle as i32,
Extra1 = 3,
Extra2 = 4,
}
#[repr(i32)]
#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum MouseCursor {
None = sys::ImGuiMouseCursor_None as i32,
Arrow = sys::ImGuiMouseCursor_Arrow as i32,
TextInput = sys::ImGuiMouseCursor_TextInput as i32,
ResizeAll = sys::ImGuiMouseCursor_ResizeAll as i32,
ResizeNS = sys::ImGuiMouseCursor_ResizeNS as i32,
ResizeEW = sys::ImGuiMouseCursor_ResizeEW as i32,
ResizeNESW = sys::ImGuiMouseCursor_ResizeNESW as i32,
ResizeNWSE = sys::ImGuiMouseCursor_ResizeNWSE as i32,
Hand = sys::ImGuiMouseCursor_Hand as i32,
NotAllowed = sys::ImGuiMouseCursor_NotAllowed as i32,
}
#[repr(i32)]
#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum MouseSource {
Mouse = sys::ImGuiMouseSource_Mouse as i32,
TouchScreen = sys::ImGuiMouseSource_TouchScreen as i32,
Pen = sys::ImGuiMouseSource_Pen as i32,
}
impl From<MouseButton> for sys::ImGuiMouseButton {
#[inline]
fn from(value: MouseButton) -> sys::ImGuiMouseButton {
value as sys::ImGuiMouseButton
}
}
impl From<MouseSource> for sys::ImGuiMouseSource {
#[inline]
fn from(value: MouseSource) -> sys::ImGuiMouseSource {
value as sys::ImGuiMouseSource
}
}