Mit GTK4 spielen.

Zur Vorstellung von Komponenten und Units für Lazarus
Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Mit GTK4 spielen.

Beitrag von theo »

Da es heute bei uns geschneit hat und es mir zu kalt war vor die Tür zu gehen, habe ich mal die GTK4 Header nach Pascal übersetzt (Grösstenteils übersetzen lassen von gir2pascal).
Damit keine Missverständnisse aufkommen: Das hat mit der LCL nichts zu tun. Es wäre aber die Voraussetzung für das "LCL-Interface".

Zum meinem Erstaunen, hat das vergleichsweise reibungslos funktioniert.
Ich habe aus den GTK4 Beispielen ein Kritzelprogramm nach Pascal übersetzt.
Also darf ich präsentieren: Ein GTK4 "Hallo Welt" mit Pascal Syntax. :P

gtk4_FPC.png
gtk4_FPC.png (198.6 KiB) 2860 mal betrachtet

Aber damit das klar ist: Das ist noch viel weiter weg von einem brauchbaren LCL Interface als GKT3.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mit GTK4 spielen.

Beitrag von Mathias »

Kann es sein, das Lazarus nur GTK1 und GTK2 von Hause auf unterstützt ?
Wen ich im uses-Klausel [Ctrl&Space] drücke, kommt nur gtk und gtk2.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Mit GTK4 spielen.

Beitrag von theo »

Mathias hat geschrieben:
Sa 10. Dez 2022, 17:42
Kann es sein, das Lazarus nur GTK1 und GTK2 von Hause auf unterstützt ?
Wen ich im uses-Klausel [Ctrl&Space] drücke, kommt nur gtk und gtk2.
GTK3 kommt schon auch, wenn du das in den Projektoptionen als LCLWidgetType auswählst.
GTK4 natürlich nicht, sonst wäre ja der Thread hier ja sinnlos.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mit GTK4 spielen.

Beitrag von Mathias »

Gtk kann man auch ohne LCL verwenden, so wie in deinem Beispiel.
Und wie sieht es da mit gtk3 aus ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Mit GTK4 spielen.

Beitrag von theo »

Mathias hat geschrieben:
Sa 10. Dez 2022, 18:29
Gtk kann man auch ohne LCL verwenden, so wie in deinem Beispiel.
Und wie sieht es da mit gtk3 aus ?
Ich verstehe die Frage nicht ganz.
Für GTK3 gibt es genauso Bindings (Header Übersetzungen) wie für GTK2.
Es gibt aber einen Unterschied: Die GTK2 Bindings gehören zur FCL, während die GTK3 Bindings zur LCL gehören.
Letztere findet man in <lazarus>/lcl/interfaces/gtk3/gtk3bindings/
Meintest du das?

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mit GTK4 spielen.

Beitrag von Mathias »

Ich verstehe die Frage nicht ganz.
Im uses Klausel wird mir standardmässig nur gtk und gtk2 vorgeschlagen.
Ich spreche in der Low Level Ebene, und nicht das was die LCL zu Verfügung stellt.
Wen ich dein Screenshot angucke, sieht mir das auch nach Low Level aus.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Mit GTK4 spielen.

Beitrag von af0815 »

theo hat geschrieben:
Sa 10. Dez 2022, 17:29
Da es heute bei uns geschneit hat und es mir zu kalt war vor die Tür zu gehen, habe ich mal die GTK4 Header nach Pascal übersetzt (Grösstenteils übersetzen lassen von gir2pascal).
Damit keine Missverständnisse aufkommen: Das hat mit der LCL nichts zu tun. Es wäre aber die Voraussetzung für das "LCL-Interface".
Hast du da eine Anleitung gehabt ? Oder Naturtalent.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Re: Mit GTK4 spielen.

Beitrag von theo »

af0815 hat geschrieben:
So 11. Dez 2022, 13:45
Hast du da eine Anleitung gehabt ? Oder Naturtalent.
Weder noch.
Schweiß und Tränen, wie immer! :wink:

Und ein Suchpanel. Das hilft beim "im Trüben fischen". :lol:

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mit GTK4 spielen.

Beitrag von Mathias »

Weder noch.
Auch in C++ nicht ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Mit GTK4 spielen.

Beitrag von theo »

Mathias hat geschrieben:
So 11. Dez 2022, 15:40
Weder noch.
Auch in C++ nicht ?
:?: Was meinst du damit?

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mit GTK4 spielen.

Beitrag von Mathias »

Ob du nicht ein wenig von C++ abgeguckt hast.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Mit GTK4 spielen.

Beitrag von theo »

Mathias hat geschrieben:
So 11. Dez 2022, 18:38
Ob du nicht ein wenig von C++ abgeguckt hast.
Meinst du die Header Übersetzung oder das Beispiel?

Ich habe ja geschrieben: "Ich habe aus den GTK4 Beispielen ein Kritzelprogramm nach Pascal übersetzt."
Die GTK4 Beispiele sind natürlich in C, denkst du ich hätte mir das aus den Fingern gesogen?

Aber darum geht's ja gar nicht. Das Beispiel ist ja nur ein Test für die Bindings.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Mit GTK4 spielen.

Beitrag von Mathias »

Ich habe auch ein kleines "Hello World" mit GTK4 hingekriegt.

https://github.com/sechshelme/Lazarus-G ... ative_test

Da h2pas bei mir nichts vernümftiges hinkriegt, habe ich die paar benötigten external Proceduren selbst hingeschrieben. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Mit GTK4 spielen.

Beitrag von af0815 »

Mathias hat geschrieben:
Fr 3. Mär 2023, 16:57
Da h2pas bei mir nichts vernümftiges hinkriegt, habe ich die paar benötigten external Proceduren selbst hingeschrieben. :wink:
Da gibt es ein neues System mit einem neuen Converter wie schon Theo ganz am Anfang geschrieben hat -> gir2pascal <- ist das Tool. Für gtk3 und gtk4 wird als Definition das gir Format verwendet, das gegenüber den *.h Dateien eine definierte Struktur hat. Ich vermute das du deswegen mit h2pas nichts zusammen gebracht hast.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Re: Mit GTK4 spielen.

Beitrag von theo »

af0815 hat geschrieben:
Fr 3. Mär 2023, 18:24
wie schon Theo ganz am Anfang geschrieben hat -> gir2pascal <- ist das Tool.
Ganz genau.

Ich möchte auch warnen: GTK4 ist ein bewegliches Ziel.
Die Bindings, welche ich auf Tumbleweed erstellt habe, laufen z.B. nicht auf dem aktuellen (K)ubuntu.
Deshalb heisst dieser Thread auch "Mit GTK4 spielen".
Zum veröffentlichen der Interface-Anbindung ist GTK4 noch nicht genügend stabil.

Lieber GTK3 nehmen.

Antworten