tarsila 0.1.1

GUI image editor for pixel art
pub mod bindings;
pub mod manager;
pub mod mapper;

pub use bindings::KeyBindings;
pub use mapper::InputMapper;

use lapix::Point;
use macroquad::prelude as mq;

#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct MouseButton(mq::MouseButton);
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct KeyboardKey(mq::KeyCode);
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum KeyboardModifier {
    Shift,
    Control,
    Alt,
    Super,
}

impl From<mq::KeyCode> for KeyboardKey {
    fn from(value: mq::KeyCode) -> Self {
        Self(value)
    }
}

impl From<mq::MouseButton> for MouseButton {
    fn from(value: mq::MouseButton) -> Self {
        Self(value)
    }
}

#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum InputEvent {
    KeyPress(KeyboardKey),
    KeyDown(KeyboardKey),
    KeyRelease(KeyboardKey),
    KeyModifier(KeyboardModifier),
    MouseButtonPress(MouseButton),
    MouseButtonDown(MouseButton),
    MouseButtonRelease(MouseButton),
    MouseScrollUp,
    MouseScrollDown,
    MouseRealMove(Point<i32>),
    MouseCanvasMove(Point<i32>),
}