use num_enum::{IntoPrimitive, TryFromPrimitive};
use std::os::raw::c_void;
#[allow(unused_variables)]
pub trait Editor {
fn size(&self) -> (i32, i32);
fn position(&self) -> (i32, i32);
fn idle(&mut self) {}
fn close(&mut self) {}
fn open(&mut self, parent: *mut c_void) -> bool;
fn is_open(&mut self) -> bool;
fn set_knob_mode(&mut self, mode: KnobMode) -> bool {
false
}
fn key_up(&mut self, keycode: KeyCode) -> bool {
false
}
fn key_down(&mut self, keycode: KeyCode) -> bool {
false
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Debug)]
pub struct Rect {
pub top: i16,
pub left: i16,
pub bottom: i16,
pub right: i16,
}
#[derive(Copy, Clone, Debug)]
pub struct KeyCode {
pub character: char,
pub key: Key,
pub modifier: u8,
}
#[repr(isize)]
#[derive(Copy, Clone, Debug, TryFromPrimitive, IntoPrimitive)]
#[allow(missing_docs)]
pub enum KnobMode {
Circular,
CircularRelative,
Linear,
}
#[allow(missing_docs)]
#[repr(isize)]
#[derive(Debug, Copy, Clone, TryFromPrimitive, IntoPrimitive)]
pub enum Key {
None = 0,
Back,
Tab,
Clear,
Return,
Pause,
Escape,
Space,
Next,
End,
Home,
Left,
Up,
Right,
Down,
PageUp,
PageDown,
Select,
Print,
Enter,
Snapshot,
Insert,
Delete,
Help,
Numpad0,
Numpad1,
Numpad2,
Numpad3,
Numpad4,
Numpad5,
Numpad6,
Numpad7,
Numpad8,
Numpad9,
Multiply,
Add,
Separator,
Subtract,
Decimal,
Divide,
F1,
F2,
F3,
F4,
F5,
F6,
F7,
F8,
F9,
F10,
F11,
F12,
Numlock,
Scroll,
Shift,
Control,
Alt,
Equals,
}