Höhe Titelleiste + Fensterrahmen unter Linux?

Antworten
MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von MmVisual »

Hallo,

Ich wüste gerne wie ich diese Zahlen unter Linux erfahre...

So geht das unter Windows:

Code: Alles auswählen

iH := GetSystemMetricsMm(4) + (GetSystemMetricsMm(32) * 2); // Höhe Titelleiste + Fensterrahmen
iW := ...


Für Linux hab ich nichts gefunden.

Könnt Ihr mir helfen?

Vielen Dank.

Grüße Markus.
Zuletzt geändert von Lori am Fr 9. Dez 2011, 15:39, insgesamt 1-mal geändert.
Grund: Highlighter
EleLa - Elektronik Lagerverwaltung - www.elela.de

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von mse »

_NET_FRAME_EXTENTS wenn der window manager es unterstützt
http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html
oder das Dekorationsfenster herausfinden und den Rahmen aus den Fensterpositionen und Abmessungen errechnen.
MSEgui hat für den Zweck getwindowframe() in lib/common/kernel/i386-linux/mseguiintf.pas. Zudem ist twidget.widgetrect immer der client Bereich, die Abmessungen des Rahmenfensters können mit den twidget.window.decorated* properties abgefragt werden.

Martin

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von theo »

MmVisual hat geschrieben:Für Linux hab ich nichts gefunden.
Könnt Ihr mir helfen?


Die interessanteste Frage ist: Wozu?

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von MmVisual »

Ich habe ein Bildvorschaufenster, mit Scrollbox und TImage.
Das Fenster wird je nach Bild automatisch der Screen.WorkArea angepasst und man kann darin auch noch mit dem Maus-Rad zoomen, wobei dann das Fenster bis zur maximalen Screen.WorkArea vergrößert wird und danach erscheinen die Scrollbalken.

Unter Windows sieht das jetzt nicht so schlecht aus, aber ich muss extra die Fenster-Rahmen mit berechnen, ansonsten sitzt das Fenster so halb neben dem Bildschirm und das sieht kacke aus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von theo »

Ich würde mse's Hinweis nachgehen.
Vllt. kann dir meine Winlist Demo behilflich sein mit den X-Zeug. http://www.theo.ch/lazarus/winlist.zip

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von MmVisual »

Vielen Dank, theo.

Ich habe mein Code mal in der Virtual Box unter Ubuntu kompiliert und gestartet. Wenn ich zoome, dann wird das Fenster so vergrößert, dass die Rand-Leisten nicht überdeckt werden. Ich vermute, das macht Linux automatisch so (oder die GUI), ich weiß es nicht so genau.
In jedem Fall sieht das Resultat nicht so schlecht aus.
Daher lasse ich das erst mal so.
Ich arbeite ohnehin nicht mit Linux, wenn jemand die EXE unter Linux benutzt und es tut nicht richtig, dann soll derjenige mich anschreiben und ich kümmere mich dann weiter.

Die MSEGui kann ich nicht verwenden und wollte diese jetzt auch nicht installieren.

Ich dachte, es gäbe eine einfache Möglichkeit oder da gibt es schon was im FPC, aber offensichtlich nicht.

Grüße Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von pluto »

Ich dachte, es gäbe eine einfache Möglichkeit oder da gibt es schon was im FPC, aber offensichtlich nicht.

Die gibt es bestimmt. Die Frage ist nur wo und wie diese aussieht. FPC ist deartig groß, dass man Jahre braucht um soetwas zu finden. Dann kommt aber noch ein Problem hinzu:
Die verschiedenen Desktop bzw. Fenster Manager.

Es gab mal ein Fenster Manager der wurde mit Lazarus erstellt. Habe den Namen gerade nicht Parat, aber ich konnte ihn mal Kompilieren und sogar Starten. Vielleicht findest du da weitere Infos.

Du kannst auch mit ClientWidht und ClientHeight Arbeiten. Da werden Automatisch die Fenster Rahmen stärke und die Höhe der Titelleiste abgezogen.
MFG
Michael Springwald

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von MmVisual »

>> Dann kommt aber noch ein Problem hinzu: Die verschiedenen Desktop bzw. Fenster Manager.
Ja, genau deshalb frage ich nach der implementierten Lazarus-Lösung.

>> Es gab mal ein Fenster Manager der wurde mit Lazarus erstellt.
MSEgui

Wo anders habe ich gelesen (Freepascal-Doku), dass mit den "ClientWidth" das nicht geht, die haben die gleichen Werte wie Width.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von theo »

MmVisual hat geschrieben:>> Dann kommt aber noch ein Problem hinzu: Die verschiedenen Desktop bzw. Fenster Manager.
Ja, genau deshalb frage ich nach der implementierten Lazarus-Lösung.


Klingt vllt. etwas merkwürdig, aber eigentlich fällt das aus dem Zuständigkeitsbereich von GTK, QT etc. raus.
Die Titel-bars und Ränder gehören dem Window Manager.
Ich glaube nicht, dass es da was gibt in der LCL. Man sollte vllt. andere Lösungen suchen.
Wenn es unbedingt nötig ist, muss man X bemühen (wie oben gezeigt). Viel Spaß.

P.S. msegui ist kein Window Manager.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Höhe Titelleiste + Fensterrahmen unter Linux?

Beitrag von pluto »

Wo anders habe ich gelesen (Freepascal-Doku), dass mit den "ClientWidth" das nicht geht, die haben die gleichen Werte wie Width.

Ja, nur wenn es keine ScrollBalken gibt. Aber Widht und Height müssten ohne Titelleiste sein und ohne Rahmen.
MFG
Michael Springwald

Antworten