- Enforce status.locked in pan_active_viewport and zoom_active_viewport: locked viewports now reject pan/zoom inputs entirely - Add perspective, render_mode, shade_plot_mode, hide_plot, ucs_icon_visible fields to the viewport property panel with appropriate pickers/toggles - Add VPORTS command: lists all user viewports in the current layout (id, size, position, scale, on/locked state) in the command line - Add VPLAYER command: per-viewport layer freeze/thaw from the command line (F <layer> to freeze, T <layer> to thaw, Enter to exit) - Add CmdResult::VpLayerUpdate variant and its handler in apply_cmd_result Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.3 KiB
Rust
46 lines
1.3 KiB
Rust
// Layout module — paper space tools (viewports, scale, plot settings).
|
|
// This tab is only shown when the active layout is not "Model".
|
|
|
|
pub mod mview;
|
|
pub mod vplayer;
|
|
|
|
use crate::modules::{CadModule, IconKind, ModuleEvent, RibbonGroup, ToolDef};
|
|
|
|
pub struct LayoutModule;
|
|
|
|
impl CadModule for LayoutModule {
|
|
fn id(&self) -> &'static str {
|
|
"layout"
|
|
}
|
|
fn title(&self) -> &'static str {
|
|
"Layout"
|
|
}
|
|
|
|
fn ribbon_groups(&self) -> Vec<RibbonGroup> {
|
|
vec![
|
|
RibbonGroup {
|
|
title: "Viewport",
|
|
tools: vec![mview::tool().into()],
|
|
},
|
|
RibbonGroup {
|
|
title: "Plot",
|
|
tools: vec![
|
|
ToolDef {
|
|
id: "PAGESETUP",
|
|
label: "Page Setup",
|
|
icon: IconKind::Glyph("📋"),
|
|
event: ModuleEvent::Command("PAGESETUP".to_string()),
|
|
}
|
|
.into(),
|
|
ToolDef {
|
|
id: "PLOT",
|
|
label: "Export PDF",
|
|
icon: IconKind::Glyph("🖨"),
|
|
event: ModuleEvent::Command("PLOT".to_string()),
|
|
}
|
|
.into(),
|
|
],
|
|
},
|
|
]
|
|
}
|
|
}
|