Forum > GTK
Proposing new widgetset: dwindows
s6nonqxt:
--- Quote from: s6nonqxt on December 12, 2022, 03:07:43 am ---dwindows consisted of only a single header: dw.h (you could forget about dwcompat.h as this header caused for problems that it worth and it only has meaning for C programmers), the soon the be released dwindows 3.4 will have full support for GTK4 and iOS and Android. The current is dwindows 3.3 (GTK4 support is just experimental with this version) :D
https://github.com/dbsoft/dwindows
dwindows API: https://dbsoft.org/dw_help.php
The GTK1.2 tut could be used as a reference :D
https://docs.huihoo.com/gtk/tutorial/1.2/index.html
--- End quote ---
Something is wrong with my brain :( Corrected:
dwindows consisted of only a single header: dw.h (you could forget about dwcompat.h as this header caused more problems that it worth and it only has meanings for C programmers), the soon to be released dwindows 3.4 will have full support for GTK4 and iOS and Android. The current is dwindows 3.3 (GTK4 support is just experimental with this version) :D
dbannon:
s6nonqxt, welcome to the forum, I see you are very new, great ! By the way, there is a 'Modify' link, top right of a message you post, easier to correct things than reposting the whole message.
I am not sure what you are suggesting here. Lets look at it from the end user point of view. Suppose I am a Linux user, I have just installed a 2023 release of Fedora and find it has not GTK2 (and obviously, no GTK1) but does have GTK3.
What do I need to install to get my 2023 Lazarus app that uses the dwindows widgetset to work ? Just this one library you mention ? If so, sounds good to me (but that means nothing by the way).
OK, now I am a developer (stop s"]Blockeding people), when I work on that Lazarus and dwindow app, to I need to think about which widget set dwindows will ultimately choose to use ? Or is that the dwindows developers problem ?
And the Lazarus Developers, the one who maintains the DWindow Widget Set in Lazarus. Does he/she need to understand the differences between GTK2/3/4 and, Lord help us, 5 ?
Davo
Davo
s6nonqxt:
--- Quote from: dbannon on December 12, 2022, 03:30:21 am ---s6nonqxt, welcome to the forum, I see you are very new, great ! By the way, there is a 'Modify' link, top right of a message you post, easier to correct things than reposting the whole message.
I am not sure what you are suggesting here. Lets look at it from the end user point of view. Suppose I am a Linux user, I have just installed a 2023 release of Fedora and find it has not GTK2 (and obviously, no GTK1) but does have GTK3.
What do I need to install to get my 2023 Lazarus app that uses the dwindows widgetset to work ? Just this one library you mention ? If so, sounds good to me (but that means nothing by the way).
OK, now I am a developer (stop s"]Blockeding people), when I work on that Lazarus and dwindow app, to I need to think about which widget set dwindows will ultimately choose to use ? Or is that the dwindows developers problem ?
And the Lazarus Developers, the one who maintains the DWindow Widget Set in Lazarus. Does he/she need to understand the differences between GTK2/3/4 and, Lord help us, 5 ?
Davo
Davo
--- End quote ---
Maybe new account is limited but I don't see any Modify button :'(
dwindows uses the native API of the system: on Windows is Win32 API, on Linux and Unix is GTK (which GTK version is used is depend on how you configured the dwindows library), on macOS is Cocoa and so on...
It's more or less like Qt4Pas. The LCL calls dwindows, dwindows calls the corresponding native API.
The procedure is the same as Qt4Pas. You will have to build and install dwindows. The LCL will only uses this dw.dll/dw.so/dw.dylib. dwindows' API is pretty much stable. New APIs will be added on new dwindows version, but old APIs are also kept. It's excellent backward compatibility.
You are the one distributed binary builds of Qt5Pas/Qt6Pas, you should know how it works.
s6nonqxt:
@All This proposal is my solution to the future of GTK support of Lazarus. My solution is: GTK changed too much and too fast, breaking compatibility. So it's better to use the small dwindows library as the compability layer. It will work with any future GTK versions. This proposal is to all Lazarus developers and the foundation, it's not about adding a new shiny widgetset but it's a way to deal with GTK support for Lazarus in the future. Please evaluation it. Thanks :D
dbannon:
--- Quote from: s6nonqxt on December 12, 2022, 04:17:03 am ---Maybe new account is limited but I don't see any Modify button :'(
--- End quote ---
Oh, I was not aware of that.
--- Quote from: s6nonqxt on December 12, 2022, 04:17:03 am ---dwindows uses the native API of the system: on Windows is Win32 API, on Linux and Unix is GTK (which GTK version is used is depend on how you configured the dwindows library), on macOS is Cocoa and so on...
--- End quote ---
OK, thats pretty much what Lazarus claims. And, pretty obviously its a very big task. There is a team of active Lazarus developers and they find it hard, DWindows appears to have one developer and keeps up OK ? Wow ....
Honestly, it sounds very good, an answer to all my dreams etc but it also sounds too good to be true. I googled around, no one using it. I have looked at the website, not one example project ? I'd expect to see a few beginners projects, things that pop up a window with a close button (obviously in C) but nothing I can find.
It would be a steep learning curve building those initial Pascal bindings, if someone put that work in, you sure would hope Brian keeps on developing it. My old boss would say "beware of trusting in hero code" and he was occasionally right.
But it sure does look promising ....
Davo
Navigation
[0] Message Index
[#] Next page
[*] Previous page