Hi,
das schaut doch schon recht gut aus ![]()
Ich hab das gleiche vor kurzem in JavaFX gemacht um bei nem Fenster Darktheme zu unterstützen.
Deshalb hab ich ein paar Verbesserungsvorschläge für dich ![]()
Erstmal ein Fehler (vmtl. vom posten des Codes):
1. Bei mir haben der Schließen (Í) und Maximieren-button (£) ein falsches Symbol (auch hier auf der Webseite; keine Ahnung, wo es falsch konvertiert wurde). Ich würde empfehlen mit ChrW die UTF-codes direkt zu nutzen, dann kann sowas nicht passieren. Für mein Tool hab ich z.B. minimize: ChrW(0x2015), maximize: ChrW(0x2610) und close: ChrW(0x2715)
Verbesserung:
1. Doppelkick auf die Titleleiste maximiert/entmaximiert ein Fenster, sollte recht leicht zu implementieren sein.
2. Eigenes resize implementieren; relativ einfach, aber aufwändiger.
3. AeroSnap: Wenn man ein Fenster an den Bildschirmrand zieht, füllt es je nach Rand einen Bereich. Linker Rand: linke hälfte, Ecke links oben/unten jeweiles die obere/untere linke Hälfte und das gleiche auch Rechts. Der obere Rand maximiert.
Dafür muss man aber die Maus fangen und verhindern, dass sie auf andere Bildschirme an dem Rand übergeht, wenn man die Maus nicht zu schnell über die Kante bewegt. Außerdem zeigt Windows mittlerweile die Option, die andere freie Hälfte mit nem anderen Tool zu füllen,...
Leider gibt es keine API dafür, sodass es nicht möglich ist das ganze exakt umzusetzen, aber zumindest die eigene Fenstergröße kann man anpassen. Auch wenn es nicht ganz so einfach ist.
?4. Vor kurzem hab ich mitbekommen, dass es mittlerweile in Windows auch FancyPages gibt; So ähnlich wie AeroSnap, nur mit mehr möglichkeiten, ABER auch wieder ohne API... ![]()
Das standard Verhalten von GUIs nachzubauen ist also leider ziemlich schwer... (insbesondere, wenn man wie ich mit JavaFX auch Linux/Mac unterstützen will).
Es ist leider ziemlich nervig, dass sobald man die Standard Titlebar wegnimmt (Window style undecorated), fast alle Funktionalität für ein normales Fenster mit verschwindet... Vor allem, weil auch die Standard Testenkombinationen mit wegfallen. Win+Left funktioniert z.B. nicht mehr um ein Fenster auf die linke Bildschirmhälfte zu packen (AeroSnap),... Das alles nachzubauen ist echt nervig. ![]()