mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-12-23 10:11:54 +00:00
Rename "state" to "fsm_state" to avoid confusion
This commit is contained in:
parent
b88c246c87
commit
59f7af3f47
5 changed files with 28 additions and 28 deletions
|
|
@ -20,11 +20,11 @@ pub use dispatcher::Callback;
|
|||
|
||||
use dispatcher::Dispatcher;
|
||||
use document_core::Document;
|
||||
use tools::ToolState;
|
||||
use tools::ToolFsmState;
|
||||
use workspace::Workspace;
|
||||
|
||||
pub struct EditorState {
|
||||
tool_state: ToolState,
|
||||
tool_state: ToolFsmState,
|
||||
workspace: Workspace,
|
||||
document: Document,
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ impl Editor {
|
|||
pub fn new(callback: Callback) -> Self {
|
||||
Self {
|
||||
state: EditorState {
|
||||
tool_state: ToolState::new(),
|
||||
tool_state: ToolFsmState::new(),
|
||||
workspace: Workspace::new(),
|
||||
document: Document::default(),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -6,46 +6,46 @@ use document_core::Operation;
|
|||
|
||||
#[derive(Default)]
|
||||
pub struct Ellipse {
|
||||
state: EllipseToolState,
|
||||
fsm_state: EllipseToolFsmState,
|
||||
}
|
||||
|
||||
impl Tool for Ellipse {
|
||||
fn handle_input(&mut self, event: &Event, document: &Document) -> (Vec<Response>, Vec<Operation>) {
|
||||
let mut responses = Vec::new();
|
||||
let mut operations = Vec::new();
|
||||
self.state = self.state.transition(event, document, &mut responses, &mut operations);
|
||||
self.fsm_state = self.fsm_state.transition(event, document, &mut responses, &mut operations);
|
||||
|
||||
(responses, operations)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
enum EllipseToolState {
|
||||
enum EllipseToolFsmState {
|
||||
Ready,
|
||||
LmbDown,
|
||||
TransformSelected,
|
||||
}
|
||||
|
||||
impl Default for EllipseToolState {
|
||||
impl Default for EllipseToolFsmState {
|
||||
fn default() -> Self {
|
||||
EllipseToolState::Ready
|
||||
EllipseToolFsmState::Ready
|
||||
}
|
||||
}
|
||||
|
||||
impl Fsm for EllipseToolState {
|
||||
impl Fsm for EllipseToolFsmState {
|
||||
fn transition(self, event: &Event, document: &Document, responses: &mut Vec<Response>, operations: &mut Vec<Operation>) -> Self {
|
||||
match (self, event) {
|
||||
(EllipseToolState::Ready, Event::MouseDown(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => EllipseToolState::LmbDown,
|
||||
(EllipseToolFsmState::Ready, Event::MouseDown(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => EllipseToolFsmState::LmbDown,
|
||||
|
||||
// TODO - Check for left mouse button
|
||||
(EllipseToolState::LmbDown, Event::MouseUp(mouse_state)) => {
|
||||
(EllipseToolFsmState::LmbDown, Event::MouseUp(mouse_state)) => {
|
||||
operations.push(Operation::AddCircle {
|
||||
cx: mouse_state.position.x as f64,
|
||||
cy: mouse_state.position.y as f64,
|
||||
r: 10.0,
|
||||
});
|
||||
|
||||
EllipseToolState::Ready
|
||||
EllipseToolFsmState::Ready
|
||||
}
|
||||
|
||||
_ => self,
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ pub trait Fsm {
|
|||
fn transition(self, event: &Event, document: &Document, responses: &mut Vec<Response>, operations: &mut Vec<Operation>) -> Self;
|
||||
}
|
||||
|
||||
pub struct ToolState {
|
||||
pub struct ToolFsmState {
|
||||
pub mouse_state: MouseState,
|
||||
pub mod_keys: ModKeys,
|
||||
pub trace: Trace,
|
||||
|
|
@ -35,9 +35,9 @@ pub struct ToolState {
|
|||
tool_settings: HashMap<ToolType, ToolSettings>,
|
||||
}
|
||||
|
||||
impl Default for ToolState {
|
||||
impl Default for ToolFsmState {
|
||||
fn default() -> Self {
|
||||
ToolState {
|
||||
ToolFsmState {
|
||||
mouse_state: MouseState::default(),
|
||||
mod_keys: ModKeys::default(),
|
||||
trace: Trace::new(),
|
||||
|
|
@ -61,7 +61,7 @@ impl Default for ToolState {
|
|||
}
|
||||
}
|
||||
|
||||
impl ToolState {
|
||||
impl ToolFsmState {
|
||||
pub fn new() -> Self {
|
||||
Self::default()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ impl Tool for Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
enum RectangleToolState {
|
||||
enum RectangleToolFsmState {
|
||||
Ready,
|
||||
Dragging,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,44 +6,44 @@ use document_core::Operation;
|
|||
|
||||
#[derive(Default)]
|
||||
pub struct Select {
|
||||
state: SelectToolState,
|
||||
fsm_state: SelectToolFsmState,
|
||||
}
|
||||
|
||||
impl Tool for Select {
|
||||
fn handle_input(&mut self, event: &Event, document: &Document) -> (Vec<Response>, Vec<Operation>) {
|
||||
let mut responses = Vec::new();
|
||||
let mut operations = Vec::new();
|
||||
self.state = self.state.transition(event, document, &mut responses, &mut operations);
|
||||
self.fsm_state = self.fsm_state.transition(event, document, &mut responses, &mut operations);
|
||||
|
||||
(responses, operations)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
enum SelectToolState {
|
||||
enum SelectToolFsmState {
|
||||
Ready,
|
||||
LmbDown,
|
||||
TransformSelected,
|
||||
}
|
||||
|
||||
impl Default for SelectToolState {
|
||||
impl Default for SelectToolFsmState {
|
||||
fn default() -> Self {
|
||||
SelectToolState::Ready
|
||||
SelectToolFsmState::Ready
|
||||
}
|
||||
}
|
||||
|
||||
impl Fsm for SelectToolState {
|
||||
impl Fsm for SelectToolFsmState {
|
||||
fn transition(self, event: &Event, document: &Document, responses: &mut Vec<Response>, operations: &mut Vec<Operation>) -> Self {
|
||||
match (self, event) {
|
||||
(SelectToolState::Ready, Event::MouseDown(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => SelectToolState::LmbDown,
|
||||
(SelectToolFsmState::Ready, Event::MouseDown(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => SelectToolFsmState::LmbDown,
|
||||
|
||||
(SelectToolState::LmbDown, Event::MouseUp(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => SelectToolState::Ready,
|
||||
(SelectToolFsmState::LmbDown, Event::MouseUp(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => SelectToolFsmState::Ready,
|
||||
|
||||
(SelectToolState::LmbDown, Event::MouseMove(mouse_state)) => SelectToolState::TransformSelected,
|
||||
(SelectToolFsmState::LmbDown, Event::MouseMove(mouse_state)) => SelectToolFsmState::TransformSelected,
|
||||
|
||||
(SelectToolState::TransformSelected, Event::MouseMove(mouse_state)) => self,
|
||||
(SelectToolFsmState::TransformSelected, Event::MouseMove(mouse_state)) => self,
|
||||
|
||||
(SelectToolState::TransformSelected, Event::MouseUp(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => SelectToolState::Ready,
|
||||
(SelectToolFsmState::TransformSelected, Event::MouseUp(mouse_state)) if mouse_state.mouse_keys.contains(MouseKeys::LEFT) => SelectToolFsmState::Ready,
|
||||
|
||||
_ => self,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue