mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-26 09:38:11 +08:00
Rename MovementMessage to NavigationMessage
This commit is contained in:
@@ -23,7 +23,7 @@ pub enum DocumentMessage {
|
||||
Artboard(ArtboardMessage),
|
||||
#[remain::unsorted]
|
||||
#[child]
|
||||
Movement(MovementMessage),
|
||||
Navigation(NavigationMessage),
|
||||
#[remain::unsorted]
|
||||
#[child]
|
||||
Overlays(OverlaysMessage),
|
||||
|
||||
@@ -51,7 +51,7 @@ pub struct DocumentMessageHandler {
|
||||
pub layer_metadata: HashMap<Vec<LayerId>, LayerMetadata>,
|
||||
layer_range_selection_reference: Vec<LayerId>,
|
||||
|
||||
movement_handler: MovementMessageHandler,
|
||||
navigation_handler: NavigationMessageHandler,
|
||||
#[serde(skip)]
|
||||
overlays_message_handler: OverlaysMessageHandler,
|
||||
pub artboard_message_handler: ArtboardMessageHandler,
|
||||
@@ -79,7 +79,7 @@ impl Default for DocumentMessageHandler {
|
||||
layer_metadata: vec![(vec![], LayerMetadata::new(true))].into_iter().collect(),
|
||||
layer_range_selection_reference: Vec::new(),
|
||||
|
||||
movement_handler: MovementMessageHandler::default(),
|
||||
navigation_handler: NavigationMessageHandler::default(),
|
||||
overlays_message_handler: OverlaysMessageHandler::default(),
|
||||
artboard_message_handler: ArtboardMessageHandler::default(),
|
||||
transform_layer_handler: TransformLayerMessageHandler::default(),
|
||||
@@ -134,8 +134,8 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
|
||||
self.artboard_message_handler.process_message(message, font_cache, responses);
|
||||
}
|
||||
#[remain::unsorted]
|
||||
Movement(message) => {
|
||||
self.movement_handler.process_message(message, (&self.graphene_document, ipp), responses);
|
||||
Navigation(message) => {
|
||||
self.navigation_handler.process_message(message, (&self.graphene_document, ipp), responses);
|
||||
}
|
||||
#[remain::unsorted]
|
||||
Overlays(message) => {
|
||||
@@ -504,7 +504,7 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
|
||||
);
|
||||
responses.push_back(ArtboardMessage::RenderArtboards.into());
|
||||
|
||||
let document_transform_scale = self.movement_handler.snapped_scale();
|
||||
let document_transform_scale = self.navigation_handler.snapped_scale();
|
||||
let scale = 0.5 + ASYMPTOTIC_EFFECT + document_transform_scale * SCALE_EFFECT;
|
||||
let viewport_size = ipp.viewport_bounds.size();
|
||||
let viewport_mid = ipp.viewport_bounds.center();
|
||||
@@ -759,15 +759,15 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
|
||||
self.layer_metadata.insert(layer_path, layer_metadata);
|
||||
}
|
||||
ZoomCanvasTo100Percent => {
|
||||
responses.push_front(MovementMessage::SetCanvasZoom { zoom_factor: 1. }.into());
|
||||
responses.push_front(NavigationMessage::SetCanvasZoom { zoom_factor: 1. }.into());
|
||||
}
|
||||
ZoomCanvasTo200Percent => {
|
||||
responses.push_front(MovementMessage::SetCanvasZoom { zoom_factor: 2. }.into());
|
||||
responses.push_front(NavigationMessage::SetCanvasZoom { zoom_factor: 2. }.into());
|
||||
}
|
||||
ZoomCanvasToFitAll => {
|
||||
if let Some(bounds) = self.document_bounds(font_cache) {
|
||||
responses.push_back(
|
||||
MovementMessage::FitViewportToBounds {
|
||||
NavigationMessage::FitViewportToBounds {
|
||||
bounds,
|
||||
padding_scale_factor: Some(VIEWPORT_ZOOM_TO_FIT_PADDING_SCALE_FACTOR),
|
||||
prevent_zoom_past_100: true,
|
||||
@@ -810,7 +810,7 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
|
||||
);
|
||||
common.extend(select);
|
||||
}
|
||||
common.extend(self.movement_handler.actions());
|
||||
common.extend(self.navigation_handler.actions());
|
||||
common.extend(self.transform_layer_handler.actions());
|
||||
common
|
||||
}
|
||||
@@ -839,7 +839,7 @@ impl DocumentMessageHandler {
|
||||
|
||||
pub fn with_name(name: String, ipp: &InputPreprocessorMessageHandler) -> Self {
|
||||
let mut document = Self { name, ..Self::default() };
|
||||
let starting_root_transform = document.movement_handler.calculate_offset_transform(ipp.viewport_bounds.size() / 2.);
|
||||
let starting_root_transform = document.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.size() / 2.);
|
||||
document.graphene_document.root.transform = starting_root_transform;
|
||||
document.artboard_message_handler.artboards_graphene_document.root.transform = starting_root_transform;
|
||||
document
|
||||
@@ -1358,16 +1358,16 @@ impl DocumentMessageHandler {
|
||||
size: 24,
|
||||
icon: "ZoomIn".into(),
|
||||
tooltip: "Zoom In".into(),
|
||||
tooltip_shortcut: action_keys!(MovementMessageDiscriminant::IncreaseCanvasZoom),
|
||||
on_update: WidgetCallback::new(|_| MovementMessage::IncreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
tooltip_shortcut: action_keys!(NavigationMessageDiscriminant::IncreaseCanvasZoom),
|
||||
on_update: WidgetCallback::new(|_| NavigationMessage::IncreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
..IconButton::default()
|
||||
})),
|
||||
WidgetHolder::new(Widget::IconButton(IconButton {
|
||||
size: 24,
|
||||
icon: "ZoomOut".into(),
|
||||
tooltip: "Zoom Out".into(),
|
||||
tooltip_shortcut: action_keys!(MovementMessageDiscriminant::DecreaseCanvasZoom),
|
||||
on_update: WidgetCallback::new(|_| MovementMessage::DecreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
tooltip_shortcut: action_keys!(NavigationMessageDiscriminant::DecreaseCanvasZoom),
|
||||
on_update: WidgetCallback::new(|_| NavigationMessage::DecreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
..IconButton::default()
|
||||
})),
|
||||
WidgetHolder::new(Widget::IconButton(IconButton {
|
||||
@@ -1375,7 +1375,7 @@ impl DocumentMessageHandler {
|
||||
icon: "ZoomReset".into(),
|
||||
tooltip: "Zoom to 100%".into(),
|
||||
tooltip_shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasTo100Percent),
|
||||
on_update: WidgetCallback::new(|_| MovementMessage::SetCanvasZoom { zoom_factor: 1. }.into()),
|
||||
on_update: WidgetCallback::new(|_| NavigationMessage::SetCanvasZoom { zoom_factor: 1. }.into()),
|
||||
..IconButton::default()
|
||||
})),
|
||||
WidgetHolder::new(Widget::Separator(Separator {
|
||||
@@ -1384,22 +1384,22 @@ impl DocumentMessageHandler {
|
||||
})),
|
||||
WidgetHolder::new(Widget::NumberInput(NumberInput {
|
||||
unit: "%".into(),
|
||||
value: Some(self.movement_handler.snapped_scale() * 100.),
|
||||
value: Some(self.navigation_handler.snapped_scale() * 100.),
|
||||
min: Some(0.000001),
|
||||
max: Some(1000000.),
|
||||
on_update: WidgetCallback::new(|number_input: &NumberInput| {
|
||||
MovementMessage::SetCanvasZoom {
|
||||
NavigationMessage::SetCanvasZoom {
|
||||
zoom_factor: number_input.value.unwrap() / 100.,
|
||||
}
|
||||
.into()
|
||||
}),
|
||||
increment_behavior: NumberInputIncrementBehavior::Callback,
|
||||
increment_callback_decrease: WidgetCallback::new(|_| MovementMessage::DecreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
increment_callback_increase: WidgetCallback::new(|_| MovementMessage::IncreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
increment_callback_decrease: WidgetCallback::new(|_| NavigationMessage::DecreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
increment_callback_increase: WidgetCallback::new(|_| NavigationMessage::IncreaseCanvasZoom { center_on_mouse: false }.into()),
|
||||
..NumberInput::default()
|
||||
})),
|
||||
];
|
||||
let rotation_value = self.movement_handler.snapped_angle() / (std::f64::consts::PI / 180.);
|
||||
let rotation_value = self.navigation_handler.snapped_angle() / (std::f64::consts::PI / 180.);
|
||||
if rotation_value.abs() > 0.00001 {
|
||||
widgets.extend([
|
||||
WidgetHolder::new(Widget::Separator(Separator {
|
||||
@@ -1411,7 +1411,7 @@ impl DocumentMessageHandler {
|
||||
value: Some(rotation_value),
|
||||
increment_factor: 15.,
|
||||
on_update: WidgetCallback::new(|number_input: &NumberInput| {
|
||||
MovementMessage::SetCanvasRotation {
|
||||
NavigationMessage::SetCanvasRotation {
|
||||
angle_radians: number_input.value.unwrap() * (std::f64::consts::PI / 180.),
|
||||
}
|
||||
.into()
|
||||
|
||||
@@ -2,7 +2,7 @@ mod document_message;
|
||||
mod document_message_handler;
|
||||
|
||||
pub mod artboard;
|
||||
pub mod movement;
|
||||
pub mod navigation;
|
||||
pub mod overlays;
|
||||
pub mod properties_panel;
|
||||
pub mod transform_layer;
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
mod movement_message;
|
||||
mod movement_message_handler;
|
||||
|
||||
#[doc(inline)]
|
||||
pub use movement_message::{MovementMessage, MovementMessageDiscriminant};
|
||||
#[doc(inline)]
|
||||
pub use movement_message_handler::MovementMessageHandler;
|
||||
@@ -0,0 +1,7 @@
|
||||
mod navigation_message;
|
||||
mod navigation_message_handler;
|
||||
|
||||
#[doc(inline)]
|
||||
pub use navigation_message::{NavigationMessage, NavigationMessageDiscriminant};
|
||||
#[doc(inline)]
|
||||
pub use navigation_message_handler::NavigationMessageHandler;
|
||||
+2
-2
@@ -5,9 +5,9 @@ use glam::DVec2;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[remain::sorted]
|
||||
#[impl_message(Message, DocumentMessage, Movement)]
|
||||
#[impl_message(Message, DocumentMessage, Navigation)]
|
||||
#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
|
||||
pub enum MovementMessage {
|
||||
pub enum NavigationMessage {
|
||||
// Messages
|
||||
DecreaseCanvasZoom {
|
||||
center_on_mouse: bool,
|
||||
+9
-9
@@ -12,7 +12,7 @@ use glam::{DAffine2, DVec2};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||
pub struct MovementMessageHandler {
|
||||
pub struct NavigationMessageHandler {
|
||||
pub pan: DVec2,
|
||||
panning: bool,
|
||||
snap_tilt: bool,
|
||||
@@ -28,7 +28,7 @@ pub struct MovementMessageHandler {
|
||||
mouse_position: ViewportPosition,
|
||||
}
|
||||
|
||||
impl Default for MovementMessageHandler {
|
||||
impl Default for NavigationMessageHandler {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
pan: DVec2::ZERO,
|
||||
@@ -48,10 +48,10 @@ impl Default for MovementMessageHandler {
|
||||
}
|
||||
}
|
||||
|
||||
impl MessageHandler<MovementMessage, (&Document, &InputPreprocessorMessageHandler)> for MovementMessageHandler {
|
||||
impl MessageHandler<NavigationMessage, (&Document, &InputPreprocessorMessageHandler)> for NavigationMessageHandler {
|
||||
#[remain::check]
|
||||
fn process_message(&mut self, message: MovementMessage, data: (&Document, &InputPreprocessorMessageHandler), responses: &mut VecDeque<Message>) {
|
||||
use MovementMessage::*;
|
||||
fn process_message(&mut self, message: NavigationMessage, data: (&Document, &InputPreprocessorMessageHandler), responses: &mut VecDeque<Message>) {
|
||||
use NavigationMessage::*;
|
||||
|
||||
let (document, ipp) = data;
|
||||
|
||||
@@ -263,7 +263,7 @@ impl MessageHandler<MovementMessage, (&Document, &InputPreprocessorMessageHandle
|
||||
}
|
||||
|
||||
fn actions(&self) -> ActionList {
|
||||
let mut common = actions!(MovementMessageDiscriminant;
|
||||
let mut common = actions!(NavigationMessageDiscriminant;
|
||||
TranslateCanvasBegin,
|
||||
RotateCanvasBegin,
|
||||
ZoomCanvasBegin,
|
||||
@@ -277,7 +277,7 @@ impl MessageHandler<MovementMessage, (&Document, &InputPreprocessorMessageHandle
|
||||
);
|
||||
|
||||
if self.panning || self.tilting || self.zooming {
|
||||
let transforming = actions!(MovementMessageDiscriminant;
|
||||
let transforming = actions!(NavigationMessageDiscriminant;
|
||||
PointerMove,
|
||||
TransformCanvasEnd,
|
||||
);
|
||||
@@ -287,7 +287,7 @@ impl MessageHandler<MovementMessage, (&Document, &InputPreprocessorMessageHandle
|
||||
}
|
||||
}
|
||||
|
||||
impl MovementMessageHandler {
|
||||
impl NavigationMessageHandler {
|
||||
pub fn snapped_angle(&self) -> f64 {
|
||||
let increment_radians: f64 = VIEWPORT_ROTATE_SNAP_INTERVAL.to_radians();
|
||||
if self.snap_tilt {
|
||||
@@ -346,6 +346,6 @@ impl MovementMessageHandler {
|
||||
let mouse_fraction = mouse / viewport_bounds;
|
||||
let delta = delta_size * (DVec2::splat(0.5) - mouse_fraction);
|
||||
|
||||
MovementMessage::TranslateCanvas { delta }.into()
|
||||
NavigationMessage::TranslateCanvas { delta }.into()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user