From 8a2bc443e069d05c89c1af16e2e6dbf2f64b5c06 Mon Sep 17 00:00:00 2001 From: Hakan Seven Date: Tue, 13 Oct 2026 16:14:26 +0300 Subject: [PATCH] feat(options): menu bar, ribbon and HPASSOC switches; see-through command line by default Options > Display gains Window Elements with "Show the menu bar" (MENUBAR) and "Show the ribbon" (RIBBON / RIBBONCLOSE); Options > User Preferences gains a Hatch switch for HPASSOC. The command line now starts at 80 % opacity so the drawing shows through it. Co-Authored-By: Claude Opus 5.5 --- locales/ar-SA/opencadstudio.ftl | 4 ++++ locales/bg-BG/opencadstudio.ftl | 4 ++++ locales/cs-CZ/opencadstudio.ftl | 4 ++++ locales/de-DE/opencadstudio.ftl | 4 ++++ locales/el-GR/opencadstudio.ftl | 4 ++++ locales/en-US/opencadstudio.ftl | 4 ++++ locales/es-ES/opencadstudio.ftl | 4 ++++ locales/fi-FI/opencadstudio.ftl | 4 ++++ locales/fr-FR/opencadstudio.ftl | 4 ++++ locales/hi-IN/opencadstudio.ftl | 4 ++++ locales/hu-HU/opencadstudio.ftl | 4 ++++ locales/it-IT/opencadstudio.ftl | 4 ++++ locales/ja-JP/opencadstudio.ftl | 4 ++++ locales/ko-KR/opencadstudio.ftl | 4 ++++ locales/lo-LA/opencadstudio.ftl | 4 ++++ locales/nl-NL/opencadstudio.ftl | 4 ++++ locales/pl-PL/opencadstudio.ftl | 4 ++++ locales/pt-BR/opencadstudio.ftl | 4 ++++ locales/ru-RU/opencadstudio.ftl | 4 ++++ locales/tr-TR/opencadstudio.ftl | 4 ++++ locales/zh-CN/opencadstudio.ftl | 4 ++++ locales/zh-TW/opencadstudio.ftl | 4 ++++ src/app/mod.rs | 6 +++++ src/app/settings.rs | 2 +- src/app/update/mod.rs | 18 +++++++++++++++ src/app/view/modal.rs | 3 +++ src/locale_catalog.rs | 4 ++++ src/ui/command_line.rs | 4 ++-- src/ui/window/options.rs | 41 +++++++++++++++++++++++++++++++++ 29 files changed, 163 insertions(+), 3 deletions(-) diff --git a/locales/ar-SA/opencadstudio.ftl b/locales/ar-SA/opencadstudio.ftl index e51075327..b6bd611f5 100644 --- a/locales/ar-SA/opencadstudio.ftl +++ b/locales/ar-SA/opencadstudio.ftl @@ -295,6 +295,10 @@ command-copy = .mode = COPY أدخل خيار وضع النسخ [Single/Multiple] : common = + .options-hpassoc = التظليلات الجديدة تتبع حدودها (HPASSOC) + .options-show-ribbon = إظهار الشريط (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = إظهار شريط القوائم (MENUBAR) + .options-window-elements = عناصر النافذة .menu-viewports = منافذ العرض .menu-view-twist = تدوير العرض .menu-tools = أدوات diff --git a/locales/bg-BG/opencadstudio.ftl b/locales/bg-BG/opencadstudio.ftl index 81db75a06..c7ad260eb 100644 --- a/locales/bg-BG/opencadstudio.ftl +++ b/locales/bg-BG/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .displacement = COPY Задайте преместване: .mode = COPY Въведете режим на копиране [Single/Multiple] : common = + .options-hpassoc = Новите щриховки следват границите си (HPASSOC) + .options-show-ribbon = Показване на лентата (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Показване на лентата с менюта (MENUBAR) + .options-window-elements = Елементи на прозореца .menu-viewports = Прозорци .menu-view-twist = Завъртане на изгледа .menu-tools = Инструменти diff --git a/locales/cs-CZ/opencadstudio.ftl b/locales/cs-CZ/opencadstudio.ftl index 3a73f9229..68263d5f3 100644 --- a/locales/cs-CZ/opencadstudio.ftl +++ b/locales/cs-CZ/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY Zadejte režim kopírování [Single/Multiple] : common = + .options-hpassoc = Nové šrafy sledují své hranice (HPASSOC) + .options-show-ribbon = Zobrazit pás karet (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Zobrazit panel nabídek (MENUBAR) + .options-window-elements = Prvky okna .menu-viewports = Výřezy .menu-view-twist = Natočení pohledu .menu-tools = Nástroje diff --git a/locales/de-DE/opencadstudio.ftl b/locales/de-DE/opencadstudio.ftl index c36c1bcd2..b9b321a6a 100644 --- a/locales/de-DE/opencadstudio.ftl +++ b/locales/de-DE/opencadstudio.ftl @@ -283,6 +283,10 @@ command-copy = .mode = COPY Kopiermodus eingeben [Single/Multiple] : common = + .options-hpassoc = Neue Schraffuren folgen ihren Grenzen (HPASSOC) + .options-show-ribbon = Multifunktionsleiste anzeigen (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Menüleiste anzeigen (MENUBAR) + .options-window-elements = Fensterelemente .menu-viewports = Ansichtsfenster .menu-view-twist = Ansicht verdrehen .menu-tools = Werkzeuge diff --git a/locales/el-GR/opencadstudio.ftl b/locales/el-GR/opencadstudio.ftl index 8773d3b89..2e5db57da 100644 --- a/locales/el-GR/opencadstudio.ftl +++ b/locales/el-GR/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY Επιλέξτε λειτουργία αντιγραφής [Single/Multiple] : common = + .options-hpassoc = Οι νέες διαγραμμίσεις ακολουθούν τα όριά τους (HPASSOC) + .options-show-ribbon = Εμφάνιση κορδέλας (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Εμφάνιση γραμμής μενού (MENUBAR) + .options-window-elements = Στοιχεία παραθύρου .menu-viewports = Παράθυρα προβολής .menu-view-twist = Στρέψη όψης .menu-tools = Εργαλεία diff --git a/locales/en-US/opencadstudio.ftl b/locales/en-US/opencadstudio.ftl index bb4d45e0d..b07769fee 100644 --- a/locales/en-US/opencadstudio.ftl +++ b/locales/en-US/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY Enter a copy mode option [Single/Multiple] : common = + .options-hpassoc = New hatches follow their boundaries (HPASSOC) + .options-show-ribbon = Show the ribbon (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Show the menu bar (MENUBAR) + .options-window-elements = Window Elements .menu-viewports = Viewports .menu-view-twist = View Twist .menu-tools = Tools diff --git a/locales/es-ES/opencadstudio.ftl b/locales/es-ES/opencadstudio.ftl index dc784a113..42d7bfe29 100644 --- a/locales/es-ES/opencadstudio.ftl +++ b/locales/es-ES/opencadstudio.ftl @@ -283,6 +283,10 @@ command-copy = .mode = COPY Indique modo de copia [Single/Multiple] : common = + .options-hpassoc = Los sombreados nuevos siguen sus contornos (HPASSOC) + .options-show-ribbon = Mostrar la cinta de opciones (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Mostrar la barra de menús (MENUBAR) + .options-window-elements = Elementos de ventana .menu-viewports = Ventanas gráficas .menu-view-twist = Girar vista .menu-tools = Herramientas diff --git a/locales/fi-FI/opencadstudio.ftl b/locales/fi-FI/opencadstudio.ftl index f2a3cbd51..c010ecf69 100644 --- a/locales/fi-FI/opencadstudio.ftl +++ b/locales/fi-FI/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY Valitse kopiointitila [Single/Multiple] : common = + .options-hpassoc = Uudet viivoitukset seuraavat rajojaan (HPASSOC) + .options-show-ribbon = Näytä valintanauha (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Näytä valikkorivi (MENUBAR) + .options-window-elements = Ikkunan osat .menu-viewports = Näkymäikkunat .menu-view-twist = Näkymän kierto .menu-tools = Työkalut diff --git a/locales/fr-FR/opencadstudio.ftl b/locales/fr-FR/opencadstudio.ftl index 2841d0540..40521ef8c 100644 --- a/locales/fr-FR/opencadstudio.ftl +++ b/locales/fr-FR/opencadstudio.ftl @@ -283,6 +283,10 @@ command-copy = .mode = COPY Entrez le mode de copie [Single/Multiple] : common = + .options-hpassoc = Les nouvelles hachures suivent leurs contours (HPASSOC) + .options-show-ribbon = Afficher le ruban (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Afficher la barre de menus (MENUBAR) + .options-window-elements = Éléments de fenêtre .menu-viewports = Fenêtres .menu-view-twist = Rotation de la vue .menu-tools = Outils diff --git a/locales/hi-IN/opencadstudio.ftl b/locales/hi-IN/opencadstudio.ftl index 5de99e151..eb7531802 100644 --- a/locales/hi-IN/opencadstudio.ftl +++ b/locales/hi-IN/opencadstudio.ftl @@ -271,6 +271,10 @@ command-copy = .mode = COPY कॉपी मोड विकल्प दर्ज करें [Single/Multiple] : common = + .options-hpassoc = नए हैच अपनी सीमाओं का अनुसरण करते हैं (HPASSOC) + .options-show-ribbon = रिबन दिखाएँ (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = मेनू बार दिखाएँ (MENUBAR) + .options-window-elements = विंडो तत्व .menu-viewports = व्यूपोर्ट .menu-view-twist = दृश्य घुमाव .menu-tools = उपकरण diff --git a/locales/hu-HU/opencadstudio.ftl b/locales/hu-HU/opencadstudio.ftl index 5e2669521..ec4681511 100644 --- a/locales/hu-HU/opencadstudio.ftl +++ b/locales/hu-HU/opencadstudio.ftl @@ -281,6 +281,10 @@ command-copy = .mode = COPY Adja meg a másolási módot [Single/Multiple] : common = + .options-hpassoc = Az új sraffozások követik határaikat (HPASSOC) + .options-show-ribbon = Szalag megjelenítése (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Menüsor megjelenítése (MENUBAR) + .options-window-elements = Ablakelemek .menu-viewports = Nézetablakok .menu-view-twist = Nézet elforgatása .menu-tools = Eszközök diff --git a/locales/it-IT/opencadstudio.ftl b/locales/it-IT/opencadstudio.ftl index 4df2fdffe..13c12819e 100644 --- a/locales/it-IT/opencadstudio.ftl +++ b/locales/it-IT/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY Specificare modalità di copia [Single/Multiple] : common = + .options-hpassoc = I nuovi tratteggi seguono i contorni (HPASSOC) + .options-show-ribbon = Mostra la barra multifunzione (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Mostra la barra dei menu (MENUBAR) + .options-window-elements = Elementi della finestra .menu-viewports = Finestre .menu-view-twist = Rotazione vista .menu-tools = Strumenti diff --git a/locales/ja-JP/opencadstudio.ftl b/locales/ja-JP/opencadstudio.ftl index 09a62ccb5..2f1c45691 100644 --- a/locales/ja-JP/opencadstudio.ftl +++ b/locales/ja-JP/opencadstudio.ftl @@ -273,6 +273,10 @@ command-copy = .mode = COPY コピーモードを入力 [Single/Multiple] : common = + .options-hpassoc = 新しいハッチングは境界に従う (HPASSOC) + .options-show-ribbon = リボンを表示 (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = メニュー バーを表示 (MENUBAR) + .options-window-elements = ウィンドウの要素 .menu-viewports = ビューポート .menu-view-twist = ビューのねじれ .menu-tools = ツール diff --git a/locales/ko-KR/opencadstudio.ftl b/locales/ko-KR/opencadstudio.ftl index 88b83713c..37072a199 100644 --- a/locales/ko-KR/opencadstudio.ftl +++ b/locales/ko-KR/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY 복사 모드 옵션 입력 [Single/Multiple] : common = + .options-hpassoc = 새 해치가 경계를 따름 (HPASSOC) + .options-show-ribbon = 리본 표시 (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = 메뉴 막대 표시 (MENUBAR) + .options-window-elements = 창 요소 .menu-viewports = 뷰포트 .menu-view-twist = 뷰 비틀기 .menu-tools = 도구 diff --git a/locales/lo-LA/opencadstudio.ftl b/locales/lo-LA/opencadstudio.ftl index bce9bc51c..850f0ea51 100644 --- a/locales/lo-LA/opencadstudio.ftl +++ b/locales/lo-LA/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY ປ້ອນຕົວເລືອກໂໝດການຄັດລອກ [Single/Multiple] : common = + .options-hpassoc = ການຂີດລາຍໃໝ່ຕິດຕາມຂອບເຂດ (HPASSOC) + .options-show-ribbon = ສະແດງແຖບໂບ (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = ສະແດງແຖບເມນູ (MENUBAR) + .options-window-elements = ອົງປະກອບໜ້າຕ່າງ .menu-viewports = ຊ່ອງມອງ .menu-view-twist = ບິດມຸມມອງ .menu-tools = ເຄື່ອງມື diff --git a/locales/nl-NL/opencadstudio.ftl b/locales/nl-NL/opencadstudio.ftl index 366fb4e47..8b397a7c1 100644 --- a/locales/nl-NL/opencadstudio.ftl +++ b/locales/nl-NL/opencadstudio.ftl @@ -283,6 +283,10 @@ command-copy = .mode = COPY Geef kopieermodus op [Single/Multiple] : common = + .options-hpassoc = Nieuwe arceringen volgen hun grenzen (HPASSOC) + .options-show-ribbon = Lint tonen (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Menubalk tonen (MENUBAR) + .options-window-elements = Vensterelementen .menu-viewports = Viewports .menu-view-twist = Weergave draaien .menu-tools = Extra diff --git a/locales/pl-PL/opencadstudio.ftl b/locales/pl-PL/opencadstudio.ftl index 8a2b7fc0e..5daa9ea5c 100644 --- a/locales/pl-PL/opencadstudio.ftl +++ b/locales/pl-PL/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY Podaj tryb kopiowania [Single/Multiple] : common = + .options-hpassoc = Nowe kreskowania podążają za obwiedniami (HPASSOC) + .options-show-ribbon = Pokaż wstążkę (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Pokaż pasek menu (MENUBAR) + .options-window-elements = Elementy okna .menu-viewports = Rzutnie .menu-view-twist = Skręcenie widoku .menu-tools = Narzędzia diff --git a/locales/pt-BR/opencadstudio.ftl b/locales/pt-BR/opencadstudio.ftl index 811108742..414eba8bc 100644 --- a/locales/pt-BR/opencadstudio.ftl +++ b/locales/pt-BR/opencadstudio.ftl @@ -283,6 +283,10 @@ command-copy = .mode = COPY Informe o modo de cópia [Single/Multiple] : common = + .options-hpassoc = Novas hachuras acompanham seus contornos (HPASSOC) + .options-show-ribbon = Mostrar a faixa de opções (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Mostrar a barra de menus (MENUBAR) + .options-window-elements = Elementos da janela .menu-viewports = Janelas de visualização .menu-view-twist = Girar vista .menu-tools = Ferramentas diff --git a/locales/ru-RU/opencadstudio.ftl b/locales/ru-RU/opencadstudio.ftl index 521533e4f..123383b59 100644 --- a/locales/ru-RU/opencadstudio.ftl +++ b/locales/ru-RU/opencadstudio.ftl @@ -286,6 +286,10 @@ command-copy = .mode = COPY Задайте режим копирования [Single/Multiple] : common = + .options-hpassoc = Новые штриховки следуют за контурами (HPASSOC) + .options-show-ribbon = Показывать ленту (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Показывать строку меню (MENUBAR) + .options-window-elements = Элементы окна .menu-viewports = Видовые экраны .menu-view-twist = Поворот вида .menu-tools = Сервис diff --git a/locales/tr-TR/opencadstudio.ftl b/locales/tr-TR/opencadstudio.ftl index d0fcca985..f9cf72e96 100644 --- a/locales/tr-TR/opencadstudio.ftl +++ b/locales/tr-TR/opencadstudio.ftl @@ -268,6 +268,10 @@ command-copy = .mode = COPY Kopyalama modu seçin [Single/Multiple] : common = + .options-hpassoc = Yeni taramalar sınırlarını izler (HPASSOC) + .options-show-ribbon = Şeridi göster (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = Menü çubuğunu göster (MENUBAR) + .options-window-elements = Pencere Öğeleri .menu-viewports = Görünüm Pencereleri .menu-view-twist = Görünümü Döndür .menu-tools = Araçlar diff --git a/locales/zh-CN/opencadstudio.ftl b/locales/zh-CN/opencadstudio.ftl index 280d09775..2b428a093 100644 --- a/locales/zh-CN/opencadstudio.ftl +++ b/locales/zh-CN/opencadstudio.ftl @@ -270,6 +270,10 @@ command-copy = .mode = COPY 输入复制模式选项 [Single/Multiple] : common = + .options-hpassoc = 新图案填充跟随其边界 (HPASSOC) + .options-show-ribbon = 显示功能区 (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = 显示菜单栏 (MENUBAR) + .options-window-elements = 窗口元素 .menu-viewports = 视口 .menu-view-twist = 视图扭曲 .menu-tools = 工具 diff --git a/locales/zh-TW/opencadstudio.ftl b/locales/zh-TW/opencadstudio.ftl index 40f7b2c13..0deb52375 100644 --- a/locales/zh-TW/opencadstudio.ftl +++ b/locales/zh-TW/opencadstudio.ftl @@ -282,6 +282,10 @@ command-copy = .mode = COPY 輸入複製模式選項 [Single/Multiple] : common = + .options-hpassoc = 新填充線跟隨其邊界 (HPASSOC) + .options-show-ribbon = 顯示功能區 (RIBBON / RIBBONCLOSE) + .options-show-menu-bar = 顯示功能表列 (MENUBAR) + .options-window-elements = 視窗元素 .menu-viewports = 視埠 .menu-view-twist = 視圖扭轉 .menu-tools = 工具 diff --git a/src/app/mod.rs b/src/app/mod.rs index 91872fe56..bf95e5f72 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -2616,6 +2616,12 @@ pub enum Message { /// Toggle reversing the mouse-wheel zoom direction (ZOOMWHEEL). ZoomWheelReversedChanged(bool), TouchpadPanChanged(bool), + /// Options: show the pull-down menus (MENUBAR). + MenuBarChanged(bool), + /// Options: show the ribbon (RIBBON / RIBBONCLOSE). + RibbonVisibleChanged(bool), + /// Options: new hatches are associative (HPASSOC). + HatchAssociativeChanged(bool), /// Interface scale in percent (Options > Display). UiScaleChanged(u16), /// Change how far one wheel notch zooms, from the Options slider diff --git a/src/app/settings.rs b/src/app/settings.rs index 4a89769fd..5f5aefc0c 100644 --- a/src/app/settings.rs +++ b/src/app/settings.rs @@ -904,7 +904,7 @@ impl Default for UserSettings { language: crate::i18n::Language::default(), cliprompt_lines: 3, commandline_fade_ms: 3000, - command_line_opacity: 100, + command_line_opacity: 80, snap_spacing_x: 10.0, snap_spacing_y: 10.0, grid_spacing_x: 10.0, diff --git a/src/app/update/mod.rs b/src/app/update/mod.rs index 256fb5e71..d378d3b6e 100644 --- a/src/app/update/mod.rs +++ b/src/app/update/mod.rs @@ -9082,6 +9082,24 @@ impl OpenCADStudio { Task::none() } + Message::MenuBarChanged(shown) => { + self.show_menu_bar = shown; + self.persist_settings_if_changed(); + Task::none() + } + + Message::RibbonVisibleChanged(shown) => { + self.ribbon_closed = !shown; + self.persist_settings_if_changed(); + Task::none() + } + + Message::HatchAssociativeChanged(associative) => { + self.hatch_associative = associative; + self.persist_settings_if_changed(); + Task::none() + } + Message::TouchpadPanChanged(enabled) => { self.touchpad_pan = enabled; self.persist_settings_if_changed(); diff --git a/src/app/view/modal.rs b/src/app/view/modal.rs index 31920c416..c0cad3593 100644 --- a/src/app/view/modal.rs +++ b/src/app/view/modal.rs @@ -300,6 +300,9 @@ impl OpenCADStudio { cliprompt_lines: self.cliprompt_lines, commandline_fade_ms: self.commandline_fade_ms, command_line_opacity: self.command_line.opacity_percent(), + show_menu_bar: self.show_menu_bar, + show_ribbon: !self.ribbon_closed, + hatch_associative: self.hatch_associative, zoom_wheel_reversed: self.zoom_wheel_reversed, touchpad_pan: self.touchpad_pan, ui_scale_percent: self.ui_scale_percent, diff --git a/src/locale_catalog.rs b/src/locale_catalog.rs index 831ba2a40..fd5b4f3dc 100644 --- a/src/locale_catalog.rs +++ b/src/locale_catalog.rs @@ -3697,6 +3697,10 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "Width factor" => Some(("common", "width-factor-sentence-case")), "Width: %{value}" => Some(("ui", "width-value")), "Window" => Some(("common", "window")), + "Window Elements" => Some(("common", "options-window-elements")), + "Show the menu bar (MENUBAR)" => Some(("common", "options-show-menu-bar")), + "Show the ribbon (RIBBON / RIBBONCLOSE)" => Some(("common", "options-show-ribbon")), + "New hatches follow their boundaries (HPASSOC)" => Some(("common", "options-hpassoc")), "Arc Length" => Some(("common", "menu-arc-length")), "Construction Line" => Some(("common", "menu-construction-line")), "Dimension Style" => Some(("common", "menu-dimension-style")), diff --git a/src/ui/command_line.rs b/src/ui/command_line.rs index f28591c64..9a6596c1c 100644 --- a/src/ui/command_line.rs +++ b/src/ui/command_line.rs @@ -192,7 +192,7 @@ pub struct CommandLine { /// the pinned step prompt still shows. fade_ms: u32, /// COMMANDLINEOPACITY: how opaque the command line's panels are, in - /// percent (20–100, default 100), so the drawing shows through. + /// percent (20–100, default 80), so the drawing shows through. opacity_percent: u8, } @@ -220,7 +220,7 @@ impl Default for CommandLine { step_options: Vec::new(), cliprompt_lines: 3, fade_ms: DEFAULT_COMMANDLINE_FADE_MS, - opacity_percent: 100, + opacity_percent: 80, } } } diff --git a/src/ui/window/options.rs b/src/ui/window/options.rs index 2ca94f0e3..45ad8037a 100644 --- a/src/ui/window/options.rs +++ b/src/ui/window/options.rs @@ -55,6 +55,12 @@ pub struct AppPrefs { pub commandline_fade_ms: i32, /// COMMANDLINEOPACITY: command-line panel opacity in percent. pub command_line_opacity: u8, + /// MENUBAR: the pull-down menus show above the ribbon. + pub show_menu_bar: bool, + /// The ribbon shows (RIBBON / RIBBONCLOSE). + pub show_ribbon: bool, + /// HPASSOC: new hatches follow their boundary objects. + pub hatch_associative: bool, /// ZOOMWHEEL: reverse the mouse-wheel zoom direction. pub zoom_wheel_reversed: bool, /// Scroll pans and Ctrl+scroll zooms (touchpads). @@ -920,6 +926,30 @@ pub fn view_window<'a>( .align_y(iced::Center), ) .push(Space::new().height(24)) + .push(text(crate::t!("Window Elements")).size(15)) + .push(Space::new().height(10)) + .push( + row![ + iced::widget::checkbox(prefs.show_menu_bar) + .on_toggle(Message::MenuBarChanged) + .size(15), + text(crate::t!("Show the menu bar (MENUBAR)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + ) + .push(Space::new().height(8)) + .push( + row![ + iced::widget::checkbox(prefs.show_ribbon) + .on_toggle(Message::RibbonVisibleChanged) + .size(15), + text(crate::t!("Show the ribbon (RIBBON / RIBBONCLOSE)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + ) + .push(Space::new().height(24)) .push(text(crate::t!("Command Line")).size(15)) .push(Space::new().height(10)) .push( @@ -1479,6 +1509,17 @@ pub fn view_window<'a>( ] .spacing(10) .align_y(iced::Center), + Space::new().height(24), + text(crate::t!("Hatch")).size(15), + Space::new().height(10), + row![ + iced::widget::checkbox(prefs.hatch_associative) + .on_toggle(Message::HatchAssociativeChanged) + .size(15), + text(crate::t!("New hatches follow their boundaries (HPASSOC)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), ] .spacing(0) .width(sizing.width);