Files
Graphite/core/editor/src/lib.rs
2021-03-28 00:23:41 +01:00

42 lines
779 B
Rust

mod color;
mod dispatcher;
mod error;
pub mod tools;
pub mod workspace;
#[doc(inline)]
pub use error::EditorError;
#[doc(inline)]
pub use color::Color;
#[doc(inline)]
pub use dispatcher::events;
#[doc(inline)]
pub use dispatcher::Callback;
use dispatcher::Dispatcher;
use tools::ToolState;
use workspace::Workspace;
// TODO: serialize with serde to save the current editor state
pub struct Editor {
pub tools: ToolState,
workspace: Workspace,
dispatcher: Dispatcher,
}
impl Editor {
pub fn new(callback: Callback) -> Self {
Self {
tools: ToolState::new(),
workspace: Workspace::new(),
dispatcher: Dispatcher::new(callback),
}
}
pub fn handle_event(&mut self, event: events::Event) -> Result<(), EditorError> {
self.dispatcher.handle_event(event)
}
}