mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-03 23:38:12 +08:00
Add option to toggle ruler visibility (#1479)
* Sending Toggle Ruler message and setting visibility. Text and markers not working * Added resize on mount for Ruler Input * Set default for rulers_visible to pass test * Ruler Visibility portfolio wide instead of document * Sending Toggle Ruler message and setting visibility. Text and markers not working * Ruler Visibility portfolio wide instead of document * Cleanup * Reorganize the View menu bar; add toggle rulers hotkey * Remove non-working redundant bools, and make rulers set per-document --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
4fdf8410cf
commit
4fead6e7ec
@@ -6,14 +6,15 @@ use crate::messages::prelude::*;
|
||||
#[derive(Debug, Clone, Default)]
|
||||
pub struct MenuBarMessageHandler {
|
||||
no_active_document: bool,
|
||||
rulers_hidden: bool,
|
||||
}
|
||||
|
||||
impl MessageHandler<MenuBarMessage, bool> for MenuBarMessageHandler {
|
||||
impl MessageHandler<MenuBarMessage, (bool, bool)> for MenuBarMessageHandler {
|
||||
#[remain::check]
|
||||
fn process_message(&mut self, message: MenuBarMessage, responses: &mut VecDeque<Message>, has_active_document: bool) {
|
||||
fn process_message(&mut self, message: MenuBarMessage, responses: &mut VecDeque<Message>, (has_active_document, rulers_hidden): (bool, bool)) {
|
||||
use MenuBarMessage::*;
|
||||
self.no_active_document = !has_active_document;
|
||||
|
||||
self.rulers_hidden = rulers_hidden;
|
||||
#[remain::sorted]
|
||||
match message {
|
||||
SendLayout => self.send_layout(responses, LayoutTarget::MenuBar),
|
||||
@@ -289,8 +290,17 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||
disabled: no_active_document,
|
||||
..MenuBarEntry::default()
|
||||
},
|
||||
],
|
||||
vec![
|
||||
MenuBarEntry {
|
||||
label: "Zoom to Fit".into(),
|
||||
label: "Zoom to Fit Selection".into(),
|
||||
shortcut: action_keys!(NavigationMessageDiscriminant::FitViewportToSelection),
|
||||
action: MenuBarEntry::create_action(|_| NavigationMessage::FitViewportToSelection.into()),
|
||||
disabled: no_active_document,
|
||||
..MenuBarEntry::default()
|
||||
},
|
||||
MenuBarEntry {
|
||||
label: "Zoom to Fit All".into(),
|
||||
shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasToFitAll),
|
||||
action: MenuBarEntry::create_action(|_| DocumentMessage::ZoomCanvasToFitAll.into()),
|
||||
disabled: no_active_document,
|
||||
@@ -312,9 +322,10 @@ impl LayoutHolder for MenuBarMessageHandler {
|
||||
},
|
||||
],
|
||||
vec![MenuBarEntry {
|
||||
label: "Frame Selected".into(),
|
||||
shortcut: action_keys!(NavigationMessageDiscriminant::FitViewportToSelection),
|
||||
action: MenuBarEntry::create_action(|_| NavigationMessage::FitViewportToSelection.into()),
|
||||
label: "Rulers".into(),
|
||||
icon: Some(if self.rulers_hidden { "CheckboxUnchecked" } else { "CheckboxChecked" }.into()),
|
||||
shortcut: action_keys!(PortfolioMessageDiscriminant::ToggleRulers),
|
||||
action: MenuBarEntry::create_action(|_| PortfolioMessage::ToggleRulers.into()),
|
||||
disabled: no_active_document,
|
||||
..MenuBarEntry::default()
|
||||
}],
|
||||
|
||||
Reference in New Issue
Block a user