diff --git a/src/editor/cursor.rs b/src/editor/cursor.rs new file mode 100644 index 0000000..4bd95f8 --- /dev/null +++ b/src/editor/cursor.rs @@ -0,0 +1,81 @@ +use std::collections::HashMap; +use skulpin::skia_safe::Color4f; + +use super::style::{Style, Colors}; + +#[derive(Debug, Clone, PartialEq)] +pub enum CursorShape { + Block, + Horizontal, + Vertical +} + +impl CursorShape { + pub fn from_type_name(name: &str) -> Option { + match name { + "block" => Some(CursorShape::Block), + "horizontal" => Some(CursorShape::Horizontal), + "vertical" => Some(CursorShape::Vertical), + _ => None + } + } +} + +#[derive(new, Debug, Clone, PartialEq)] +pub struct CursorMode { + #[new(default)] + pub shape: Option, + #[new(default)] + pub style_id: Option +} + +#[derive(Clone)] +pub struct Cursor { + pub position: (u64, u64), + pub shape: CursorShape, + pub style: Option