Phase 6-07a: Fensterlokale Control-Menüs und Windows-Testkorrekturen
Control-Menüs öffnen für alle Fensterarten am [≡]-Symbol des aktiven Fensters: eigener Auswahlzustand statt Kopplung an die Menüleiste, bevorzugt unter der Titelzeile, bei Platzmangel nach oben aufgeklappt, am rechten Rand nur so weit nach links wie nötig. Regressionstest über TestBackend für Code-, Projekt-, Output-, Immediate-, Debug- und Hilfefenster, maximiert, minimiert, Rand und Maus. Nebenbefunde der Windows-Testausführung: Temporärdatei vor sync_all schreibend öffnen (Zugriff verweigert), relative Projektverweise immer mit / schreiben, zeilenendenneutrale Vergleiche in Referenzmatrix-, Kompatibilitäts- und MAK-Beispieltests, DriveListBox-Zeichenbild plattformneutral. Korpus-Sollausgaben per .gitattributes auf LF. Specs ide-oberflaeche und ide-projekte synchronisiert, Change archiviert. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,8 @@ Alle Befehle aus docs/ide-referenz.md SHALL im jeweils beschriebenen Menü ersch
|
||||
### Requirement: MDI-Fenster und Fokus
|
||||
Fenster SHALL Titelleiste, Control-Menü, Rahmen und bei Bedarf Scrollbalken erhalten. New Window SHALL eine zusätzliche Ansicht erzeugen; Arrange All SHALL geöffnete Fenster kacheln. F6/Ctrl+F6, Shift+F6, Ctrl+F4, Ctrl+F7/F8/F9/F10/F5 und Alt+Minus SHALL Wechseln, Schließen, Verschieben, Skalieren, Minimieren, Maximieren, Wiederherstellen und Control-Menü bedienen. Die Window-Liste SHALL das aktive Codefenster markieren. Projektbuttons Form/Code und Enter SHALL die entsprechende Ansicht öffnen.
|
||||
|
||||
Das Control-Menü SHALL für alle Fensterarten (Code, Projekt, Output/Run, Immediate, Debug, Calls, Hilfe, Toolbox, Palette, Menüdesign) nach derselben Regel fensterlokal erscheinen. Es SHALL sich nur für das aktive Fenster öffnen, per Alt+Minus und per Klick auf das Control-Menü-Symbol `[≡]` identisch. Der Aufklappbereich SHALL an das Symbol angehängt sein: seine linke Spalte SHALL der Spalte des Symbols in der Titelleiste des aktuellen Fensterrechtecks entsprechen (normal, maximiert oder minimiert), und er SHALL bevorzugt unmittelbar unter der Titelzeile beginnen. Reicht der Platz unterhalb bis zur Statuszeile nicht aus, SHALL der Aufklappbereich stattdessen nach oben aufklappen, sodass seine unterste Zeile unmittelbar über der Titelzeile endet. Reicht der Platz rechts nicht aus, SHALL er nur so weit nach links verschoben werden, dass er in die Arbeitsfläche passt und die Symbolspalte weiterhin überdeckt. Der Aufklappbereich SHALL stets vollständig innerhalb der Arbeitsfläche zwischen Menüleiste und Statuszeile liegen und MUST NOT die Titelzeile des eigenen Fensters überdecken. Ein offenes Control-Menü MUST NOT einen Titel der Menüleiste hervorheben oder als Menüleistenauswahl gelten; Auf/Ab, Enter, Mnemonics und Esc SHALL die Einträge bedienen, Esc und ein Klick außerhalb SHALL das Control-Menü schließen und den Fokus im Fenster belassen.
|
||||
|
||||
#### Scenario: Fenster wiederherstellen
|
||||
- **WHEN** ein Codefenster verschoben, skaliert, minimiert, maximiert und wiederhergestellt wird
|
||||
- **THEN** bleiben Dokument, Cursor und vorherige Normalgeometrie erhalten und alle Bedienelemente erreichbar
|
||||
@@ -35,6 +37,22 @@ Fenster SHALL Titelleiste, Control-Menü, Rahmen und bei Bedarf Scrollbalken erh
|
||||
- **WHEN** ein modaler Dialog geöffnet und anschließend abgebrochen wird
|
||||
- **THEN** empfängt nur der Dialog die Eingaben und danach erhält das vorher aktive Fenster den Fokus zurück
|
||||
|
||||
#### Scenario: Control-Menü am Fenstersymbol
|
||||
- **WHEN** ein beliebiges Fenster (etwa Run, Code oder Projekt) aktiv ist, unter seiner Titelzeile genug Platz besteht und der Benutzer Alt+Minus drückt oder auf `[≡]` in dessen Titelleiste klickt
|
||||
- **THEN** erscheint das Control-Menü mit Restore, Move, Size, Minimize, Maximize und Close direkt unterhalb der Titelzeile, mit linker Spalte gleich der Symbolspalte, kein Titel der Menüleiste ist hervorgehoben, und Esc schließt es, ohne den Fokus zu ändern
|
||||
|
||||
#### Scenario: Control-Menü klappt nach oben
|
||||
- **WHEN** das aktive Fenster minimiert am unteren Rand liegt oder so weit nach unten verschoben wurde, dass das Control-Menü unterhalb der Titelzeile nicht mehr in die Arbeitsfläche passt
|
||||
- **THEN** öffnet sich das Control-Menü oberhalb der Titelzeile, seine unterste Zeile grenzt an die Titelzeile, seine linke Spalte ist die Symbolspalte, und alle Einträge liegen innerhalb der Arbeitsfläche
|
||||
|
||||
#### Scenario: Control-Menü am rechten Rand und bei maximiertem Fenster
|
||||
- **WHEN** das aktive Fenster so weit rechts liegt, dass das Control-Menü über die Arbeitsfläche hinausragen würde, oder das Fenster maximiert ist
|
||||
- **THEN** wird das Control-Menü nur so weit nach links gerückt, dass es in die Arbeitsfläche passt und die Symbolspalte weiterhin überdeckt; bei maximiertem Fenster öffnet es sich unter der Titelzeile des maximierten Rechtecks
|
||||
|
||||
#### Scenario: Gleiche Regel für alle Fensterarten
|
||||
- **WHEN** nacheinander Code-, Projekt-, Output-, Immediate-, Debug- und Hilfefenster aktiviert und ihr Control-Menü geöffnet wird
|
||||
- **THEN** ergibt sich die Position jedes Menüs ausschließlich aus dem aktuellen Rechteck und der Titelzeile des jeweils aktiven Fensters nach derselben Anheft- und Aufklappregel
|
||||
|
||||
### Requirement: Farben und Statusanzeige
|
||||
Die IDE SHALL das anhand belegter VBDOS-Ansichten dokumentierte Farbschema aus docs/ide-referenz.md verwenden, insbesondere dunkelblaue Codefläche mit heller Schrift, weiße aktive Titel auf dunklem Magenta, graue Menüs und schwarze Statusschrift auf Cyan. Alle IDE-Farben SHALL als feste 24-Bit-RGB-Werte ausgegeben werden, unabhängig von TERM, COLORTERM, NO_COLOR und der ANSI-Palette. Ein Rückfall auf Index- oder Profilfarben MUST NOT erfolgen; die IDE MUST NOT die globale Terminalpalette verändern. Fensterflächen SHALL vor dem Zeichnen vorhandene Desktopzeichen und verdeckte Fensterinhalte löschen, sodass unbeschriebene Fläche und Texthintergrund dieselbe Farbe besitzen. Die Statuszeile SHALL kontextuelle klickbare Kürzel und Zeile/Spalte im Format 00001:001 zeigen. Display SHALL Vorder-/Hintergrund aus 16 Farben, Desktop-Füllzeichen und Tabweite ändern können. Bestehende gespeicherte Farbauswahlen SHALL gültig bleiben und MUST NOT stillschweigend überschrieben werden.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user