d9937e5afa
- Marke (DOSSIER-Wortmarke) + Ressourcen-Icon ganz links, wie im Rhino-Plugin; Settings-Icon folgt über den neuen Einstellungs-Dialog. - Massstab/Zoom-Cluster bereinigt: doppelte Massstab-Dropdown entfernt, Zoom-Aktionen unter dem Massstab-Dropdown gestapelt (gleiche Breite), Ring bei "am Massstab" statt Flächen-Aufhellung. - PDF/DXF-Export aus der Leiste raus, zusammen mit Speichern/Öffnen/ Import in einem neuen Datei-Burger-Menü ganz rechts. Speichern/Öffnen sind echte JSON-Download/-Upload-Handler fürs ganze Projekt. - Einstellungs-Fenster (neu): Accent-Palette, Auswahlrahmen-/Snap-Farbe editierbar (freier Picker + Presets), Projekt-Referenzhöhe (m ü. M.) als Feld. - LayoutMenu auf die eigene Dropdown-Komponente umgestellt (war noch natives <select>). - Custom Fenstersteuerung (_/□/X) für die randlose Electron-Shell via Preload+IPC, eigener Look statt OS-Chrome; Oberleiste als Drag-Region. - Dark-Theme ist jetzt fester Standard (vorher an OS-Präferenz gekoppelt, zeigte je nach Umgebung fälschlich Light) — Light bleibt als Opt-in (`[data-theme="light"]`) für einen künftigen Umschalter. Alle Oberleisten-Pillen (Dropdown-Trigger, Segmente, Icon-Knöpfe, Ansichts-Icons) auf dieselbe dunkle Fläche wie das Kontextmenü vereinheitlicht. Panel-Köpfe nicht mehr separat aufgehellt, feste Höhe (40px) unabhängig von optionalem Darstellungsmodus-Dropdown. - 2D-Zoom-Grenzen deutlich erweitert (20000x/0.005x statt 50x/0.2x).
20 lines
953 B
JavaScript
20 lines
953 B
JavaScript
// electron-preload.cjs — Bruecke zwischen dem isolierten Renderer (contextIsolation)
|
|
// und dem Electron-Hauptprozess. Braucht es NUR fuer die custom Fenstersteuerung
|
|
// (Minimieren/Maximieren/Schliessen) im randlosen Fenster (frame:false, siehe
|
|
// electron-main.cjs) — sonst gaebe es keine Moeglichkeit, das Fenster ueberhaupt
|
|
// zu steuern.
|
|
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("dossierWindow", {
|
|
minimize: () => ipcRenderer.send("window:minimize"),
|
|
toggleMaximize: () => ipcRenderer.send("window:toggle-maximize"),
|
|
close: () => ipcRenderer.send("window:close"),
|
|
isMaximized: () => ipcRenderer.invoke("window:is-maximized"),
|
|
onMaximizedChange: (callback) => {
|
|
const listener = (_event, isMaximized) => callback(isMaximized);
|
|
ipcRenderer.on("window:maximized-changed", listener);
|
|
return () => ipcRenderer.removeListener("window:maximized-changed", listener);
|
|
},
|
|
});
|