Skip to content

Commit 45a1e14

Browse files
committed
Populate menu bar
Closes #531
1 parent b84e647 commit 45a1e14

9 files changed

+107
-105
lines changed

editor/src/messages/input_mapper/default_mapping.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,6 @@ pub fn default_mapping() -> Mapping {
190190
standard!(KeyDown(KeyS); modifiers=[KeyControl], action_dispatch=DocumentMessage::SaveDocument),
191191
mac_only!(KeyDown(KeyS); modifiers=[KeyCommand], action_dispatch=DocumentMessage::SaveDocument),
192192
),
193-
entry_multiplatform!(
194-
standard!(KeyDown(Key0); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasToFitAll),
195-
mac_only!(KeyDown(Key0); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasToFitAll),
196-
),
197193
entry_multiplatform!(
198194
standard!(KeyDown(KeyD); modifiers=[KeyControl], action_dispatch=DocumentMessage::DuplicateSelectedLayers),
199195
mac_only!(KeyDown(KeyD); modifiers=[KeyCommand], action_dispatch=DocumentMessage::DuplicateSelectedLayers),
@@ -210,6 +206,18 @@ pub fn default_mapping() -> Mapping {
210206
standard!(KeyDown(KeyN); modifiers=[KeyControl, KeyShift], action_dispatch=DocumentMessage::CreateEmptyFolder { container_path: vec![] }),
211207
mac_only!(KeyDown(KeyN); modifiers=[KeyCommand, KeyShift], action_dispatch=DocumentMessage::CreateEmptyFolder { container_path: vec![] }),
212208
),
209+
entry_multiplatform!(
210+
standard!(KeyDown(Key0); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasToFitAll),
211+
mac_only!(KeyDown(Key0); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasToFitAll),
212+
),
213+
entry_multiplatform!(
214+
standard!(KeyDown(Key1); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasTo100Percent),
215+
mac_only!(KeyDown(Key1); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasTo100Percent),
216+
),
217+
entry_multiplatform!(
218+
standard!(KeyDown(Key2); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasTo200Percent),
219+
mac_only!(KeyDown(Key2); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasTo200Percent),
220+
),
213221
entry_multiplatform!(
214222
standard!(KeyDown(KeyLeftBracket); modifiers=[KeyControl, KeyShift], action_dispatch=DocumentMessage::SelectedLayersLowerToBack),
215223
mac_only!(KeyDown(KeyLeftBracket); modifiers=[KeyCommand, KeyShift], action_dispatch=DocumentMessage::SelectedLayersLowerToBack),
@@ -285,14 +293,6 @@ pub fn default_mapping() -> Mapping {
285293
standard!(KeyDown(KeyMinus); modifiers=[KeyControl], action_dispatch=MovementMessage::DecreaseCanvasZoom { center_on_mouse: false }),
286294
mac_only!(KeyDown(KeyMinus); modifiers=[KeyCommand], action_dispatch=MovementMessage::DecreaseCanvasZoom { center_on_mouse: false }),
287295
),
288-
entry_multiplatform!(
289-
standard!(KeyDown(Key1); modifiers=[KeyControl], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 1. }),
290-
mac_only!(KeyDown(Key1); modifiers=[KeyCommand], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 1. }),
291-
),
292-
entry_multiplatform!(
293-
standard!(KeyDown(Key2); modifiers=[KeyControl], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 2. }),
294-
mac_only!(KeyDown(Key2); modifiers=[KeyCommand], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 2. }),
295-
),
296296
entry!(WheelScroll; modifiers=[KeyControl], action_dispatch=MovementMessage::WheelCanvasZoom),
297297
entry!(WheelScroll; modifiers=[KeyShift], action_dispatch=MovementMessage::WheelCanvasTranslate { use_y_as_x: true }),
298298
entry!(WheelScroll; action_dispatch=MovementMessage::WheelCanvasTranslate { use_y_as_x: false }),

editor/src/messages/input_preprocessor/input_preprocessor_message.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use crate::messages::input_mapper::utility_types::input_keyboard::{Key, Modifier
22
use crate::messages::input_mapper::utility_types::input_mouse::{EditorMouseState, ViewportBounds};
33
use crate::messages::prelude::*;
44

5-
#[doc(inline)]
65
pub use graphene::DocumentResponse;
76

87
use serde::{Deserialize, Serialize};

editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use crate::messages::input_mapper::utility_types::input_mouse::{MouseKeys, Mouse
33
use crate::messages::portfolio::document::utility_types::misc::KeyboardPlatformLayout;
44
use crate::messages::prelude::*;
55

6-
#[doc(inline)]
76
pub use graphene::DocumentResponse;
87

98
use glam::DVec2;

editor/src/messages/portfolio/document/artboard/artboard_message.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ pub enum ArtboardMessage {
1919
position: (f64, f64),
2020
size: (f64, f64),
2121
},
22+
ClearArtboards,
2223
DeleteArtboard {
2324
artboard: LayerId,
2425
},

editor/src/messages/portfolio/document/artboard/artboard_message_handler.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ impl MessageHandler<ArtboardMessage, &FontCache> for ArtboardMessageHandler {
6363

6464
responses.push_back(DocumentMessage::RenderDocument.into());
6565
}
66+
ClearArtboards => {
67+
for &artboard in self.artboard_ids.iter() {
68+
responses.push_front(ArtboardMessage::DeleteArtboard { artboard }.into());
69+
}
70+
}
6671
DeleteArtboard { artboard } => {
6772
self.artboard_ids.retain(|&id| id != artboard);
6873

editor/src/messages/portfolio/document/document_message.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ pub enum DocumentMessage {
169169
layer_path: Vec<LayerId>,
170170
layer_metadata: LayerMetadata,
171171
},
172+
ZoomCanvasTo100Percent,
173+
ZoomCanvasTo200Percent,
172174
ZoomCanvasToFitAll,
173175
}
174176

editor/src/messages/portfolio/document/document_message_handler.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,12 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
758758
UpdateLayerMetadata { layer_path, layer_metadata } => {
759759
self.layer_metadata.insert(layer_path, layer_metadata);
760760
}
761+
ZoomCanvasTo100Percent => {
762+
responses.push_front(MovementMessage::SetCanvasZoom { zoom_factor: 1. }.into());
763+
}
764+
ZoomCanvasTo200Percent => {
765+
responses.push_front(MovementMessage::SetCanvasZoom { zoom_factor: 2. }.into());
766+
}
761767
ZoomCanvasToFitAll => {
762768
if let Some(bounds) = self.document_bounds(font_cache) {
763769
responses.push_back(
@@ -785,6 +791,8 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
785791
SetSnapping,
786792
DebugPrintDocument,
787793
ZoomCanvasToFitAll,
794+
ZoomCanvasTo100Percent,
795+
ZoomCanvasTo200Percent,
788796
CreateEmptyFolder,
789797
);
790798

editor/src/messages/portfolio/document/movement/movement_message_handler.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ impl MessageHandler<MovementMessage, (&Document, &InputPreprocessorMessageHandle
267267
TranslateCanvasBegin,
268268
RotateCanvasBegin,
269269
ZoomCanvasBegin,
270-
SetCanvasZoom,
271270
SetCanvasRotation,
272271
WheelCanvasZoom,
273272
IncreaseCanvasZoom,

editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs

Lines changed: 79 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -44,47 +44,6 @@ impl PropertyHolder for MenuBarMessageHandler {
4444
action: MenuEntry::create_action(|_| PortfolioMessage::OpenDocument.into()),
4545
..MenuEntry::default()
4646
},
47-
MenuEntry {
48-
label: "Open Recent".into(),
49-
shortcut: None,
50-
action: MenuEntry::no_action(),
51-
icon: None,
52-
children: MenuEntryGroups(vec![
53-
vec![
54-
MenuEntry {
55-
label: "Reopen Last Closed".into(),
56-
// shortcut: [Key::KeyControl, Key::KeyShift, Key::KeyT],
57-
..MenuEntry::default()
58-
},
59-
MenuEntry {
60-
label: "Clear Recently Opened".into(),
61-
..MenuEntry::default()
62-
},
63-
],
64-
vec![
65-
MenuEntry {
66-
label: "Some Recent File.gdd".into(),
67-
..MenuEntry::default()
68-
},
69-
MenuEntry {
70-
label: "Another Recent File.gdd".into(),
71-
..MenuEntry::default()
72-
},
73-
MenuEntry {
74-
label: "An Older File.gdd".into(),
75-
..MenuEntry::default()
76-
},
77-
MenuEntry {
78-
label: "Some Other Older File.gdd".into(),
79-
..MenuEntry::default()
80-
},
81-
MenuEntry {
82-
label: "Yet Another Older File.gdd".into(),
83-
..MenuEntry::default()
84-
},
85-
],
86-
]),
87-
},
8847
],
8948
vec![
9049
MenuEntry {
@@ -100,29 +59,12 @@ impl PropertyHolder for MenuBarMessageHandler {
10059
..MenuEntry::default()
10160
},
10261
],
103-
vec![
104-
MenuEntry {
105-
label: "Save".into(),
106-
shortcut: action_keys!(DocumentMessageDiscriminant::SaveDocument),
107-
action: MenuEntry::create_action(|_| DocumentMessage::SaveDocument.into()),
108-
..MenuEntry::default()
109-
},
110-
MenuEntry {
111-
label: "Save As…".into(),
112-
// shortcut: [Key::KeyControl, Key::KeyShift, Key::KeyS],
113-
..MenuEntry::default()
114-
},
115-
MenuEntry {
116-
label: "Save All".into(),
117-
// shortcut: [Key::KeyControl, Key::KeyAlt, Key::KeyS],
118-
..MenuEntry::default()
119-
},
120-
MenuEntry {
121-
label: "Auto-Save".into(),
122-
icon: Some("CheckboxChecked".into()),
123-
..MenuEntry::default()
124-
},
125-
],
62+
vec![MenuEntry {
63+
label: "Save".into(),
64+
shortcut: action_keys!(DocumentMessageDiscriminant::SaveDocument),
65+
action: MenuEntry::create_action(|_| DocumentMessage::SaveDocument.into()),
66+
..MenuEntry::default()
67+
}],
12668
vec![
12769
MenuEntry {
12870
label: "Import…".into(),
@@ -137,11 +79,6 @@ impl PropertyHolder for MenuBarMessageHandler {
13779
..MenuEntry::default()
13880
},
13981
],
140-
vec![MenuEntry {
141-
label: "Quit".into(),
142-
// shortcut: [Key::KeyControl, Key::KeyQ],
143-
..MenuEntry::default()
144-
}],
14582
]),
14683
},
14784
MenuColumn {
@@ -187,20 +124,49 @@ impl PropertyHolder for MenuBarMessageHandler {
187124
},
188125
MenuColumn {
189126
label: "Layer".into(),
190-
children: MenuEntryGroups(vec![vec![
191-
MenuEntry {
192-
label: "Select All".into(),
193-
shortcut: action_keys!(DocumentMessageDiscriminant::SelectAllLayers),
194-
action: MenuEntry::create_action(|_| DocumentMessage::SelectAllLayers.into()),
195-
..MenuEntry::default()
196-
},
197-
MenuEntry {
198-
label: "Deselect All".into(),
199-
shortcut: action_keys!(DocumentMessageDiscriminant::DeselectAllLayers),
200-
action: MenuEntry::create_action(|_| DocumentMessage::DeselectAllLayers.into()),
127+
children: MenuEntryGroups(vec![
128+
vec![
129+
MenuEntry {
130+
label: "Select All".into(),
131+
shortcut: action_keys!(DocumentMessageDiscriminant::SelectAllLayers),
132+
action: MenuEntry::create_action(|_| DocumentMessage::SelectAllLayers.into()),
133+
..MenuEntry::default()
134+
},
135+
MenuEntry {
136+
label: "Deselect All".into(),
137+
shortcut: action_keys!(DocumentMessageDiscriminant::DeselectAllLayers),
138+
action: MenuEntry::create_action(|_| DocumentMessage::DeselectAllLayers.into()),
139+
..MenuEntry::default()
140+
},
141+
],
142+
vec![MenuEntry {
143+
label: "Delete Selected".into(),
144+
icon: Some("Trash".into()),
145+
shortcut: action_keys!(DocumentMessageDiscriminant::DeleteSelectedLayers),
146+
action: MenuEntry::create_action(|_| DocumentMessage::DeleteSelectedLayers.into()),
201147
..MenuEntry::default()
202-
},
203-
MenuEntry {
148+
}],
149+
vec![
150+
MenuEntry {
151+
label: "Grab Selected".into(),
152+
shortcut: action_keys!(TransformLayerMessageDiscriminant::BeginGrab),
153+
action: MenuEntry::create_action(|_| TransformLayerMessage::BeginGrab.into()),
154+
..MenuEntry::default()
155+
},
156+
MenuEntry {
157+
label: "Rotate Selected".into(),
158+
shortcut: action_keys!(TransformLayerMessageDiscriminant::BeginRotate),
159+
action: MenuEntry::create_action(|_| TransformLayerMessage::BeginRotate.into()),
160+
..MenuEntry::default()
161+
},
162+
MenuEntry {
163+
label: "Scale Selected".into(),
164+
shortcut: action_keys!(TransformLayerMessageDiscriminant::BeginScale),
165+
action: MenuEntry::create_action(|_| TransformLayerMessage::BeginScale.into()),
166+
..MenuEntry::default()
167+
},
168+
],
169+
vec![MenuEntry {
204170
label: "Order".into(),
205171
action: MenuEntry::no_action(),
206172
children: MenuEntryGroups(vec![vec![
@@ -230,23 +196,46 @@ impl PropertyHolder for MenuBarMessageHandler {
230196
},
231197
]]),
232198
..MenuEntry::default()
233-
},
234-
]]),
199+
}],
200+
]),
235201
},
236202
MenuColumn {
237203
label: "Document".into(),
238204
children: MenuEntryGroups(vec![vec![MenuEntry {
239-
label: "Menu entries coming soon".into(),
205+
label: "Clear Artboards".into(),
206+
action: MenuEntry::create_action(|_| ArtboardMessage::ClearArtboards.into()),
240207
..MenuEntry::default()
241208
}]]),
242209
},
243210
MenuColumn {
244211
label: "View".into(),
245-
children: MenuEntryGroups(vec![vec![MenuEntry {
246-
label: "Show/Hide Node Graph (In Development)".into(),
247-
action: MenuEntry::create_action(|_| WorkspaceMessage::NodeGraphToggleVisibility.into()),
248-
..MenuEntry::default()
249-
}]]),
212+
children: MenuEntryGroups(vec![
213+
vec![
214+
MenuEntry {
215+
label: "Zoom to Fit".into(),
216+
shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasToFitAll),
217+
action: MenuEntry::create_action(|_| DocumentMessage::ZoomCanvasToFitAll.into()),
218+
..MenuEntry::default()
219+
},
220+
MenuEntry {
221+
label: "Zoom to 100%".into(),
222+
shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasTo100Percent),
223+
action: MenuEntry::create_action(|_| DocumentMessage::ZoomCanvasTo100Percent.into()),
224+
..MenuEntry::default()
225+
},
226+
MenuEntry {
227+
label: "Zoom to 200%".into(),
228+
shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasTo200Percent),
229+
action: MenuEntry::create_action(|_| DocumentMessage::ZoomCanvasTo200Percent.into()),
230+
..MenuEntry::default()
231+
},
232+
],
233+
vec![MenuEntry {
234+
label: "Node Graph (In Development)".into(),
235+
action: MenuEntry::create_action(|_| WorkspaceMessage::NodeGraphToggleVisibility.into()),
236+
..MenuEntry::default()
237+
}],
238+
]),
250239
},
251240
MenuColumn {
252241
label: "Help".into(),

0 commit comments

Comments
 (0)