SetMinSize(), ein Frame und ein Splitter

Plattformunabhängige GUIs mit wxWidgets.
Antworten
bonaire
User
Beiträge: 13
Registriert: Mittwoch 27. August 2008, 12:27
Wohnort: Karlsruhe

Hallo,


folgende Situation überfordert mich gerade ziemlich:
Ich habe einen Frame, indem ein Panel liegt, indem ein Splitter liegt.
In der linken Hälfte des Splitters befindet sich ein Panel mit TreeCtrl und in der rechten Hälte ein Panel mit einem BoxSizer (mit Inhalten).
Wenn der Benutzer ein Item des TreeCtrl auswählt, verändern sich die Inhalte des Panels im rechten Splitter-Window und damit auch deren minimale Größe.

Jetzt möchte ich erreichen, dass sich die minimale Größe des übergeordneten Frames anhand der Größe des linken Splitter-Windows und des BoxSizers bzw. Panels im rechten Splitter-Window orientiert, sprich der Frame nicht kleiner wird als das linke plus das rechte Splitter-Window.

Das klappt aber irgendwie überhaupt nicht.
Ich habe schon versucht irgendwie herumzutricksen, indem ich versucht habe GetEffectiveMinSize() des Panels im rechten Splitter-Window und GetSashPosition() zu addieren und dem Frame per SetMinSize() zuzuweisen. Das klappt aber nur leidlich, weil Statusleiste und Toolbar dann nicht berücksichtigt werden.
Auch schaffe ich es nicht, dass sich der Frame automatisch an die gewünschte minimale Größe anpasst, wenn er vorher kleiner war/ist. Weder Refresh() noch Update() funktionieren. Erst, wenn ich die Größe des Frames danach mit der Maus verändere springt der Frame plötzlich auf die gewünschte minimale Größe.

Hat da vielleicht jemand eine Anregung?
Kann man möglicherweise SetMinimumPaneSize() für jedes Splitter-Window getrennt angeben?


cu
Antworten