Recent

Author Topic: Proposing new widgetset: dwindows  (Read 17456 times)

PierceNg

  • Sr. Member
  • ****
  • Posts: 430
    • SamadhiWeb
Re: Proposing new widgetset: dwindows
« Reply #60 on: December 13, 2022, 05:48:18 am »
Following the Android instructions I got dwtest running both on emulator and my midrange phone. Emulator screenshots attached. The screenshots look bad because the emulator doesn't like my computer's crappy graphics card. On my phone the pixels are sharp enough but of course the whole display is wonky since it's a desktop-oriented demo being shoehorned into a phone screen.

Cool:
- landscape / portrait auto layout switching works
- the annoying beep demo works on my phone - it beeps and shuts up on button press
- threading works

Problems:
- the 2D graphics demo shows up but doesn't redraw in response to my UI actions
- only half the 'tree' screen shows up
- web widget doesn't work

Overall, can't compete against Flutter or Xamarin obviously, but for a small team open source effort who tells upfront their Android stuff is considered beta, it's impressive.

dbannon

  • Hero Member
  • *****
  • Posts: 3739
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Proposing new widgetset: dwindows
« Reply #61 on: December 13, 2022, 06:29:54 am »
Oh no don't do that. This symlink could break your system. Have a look at ldconfig :o
Seriously, you don't think I install stuff like this on my real "system" do you ?  It was all on a VM I have already trashed. But thanks for your concern.

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

Bogen85

  • Hero Member
  • *****
  • Posts: 703
Re: Proposing new widgetset: dwindows
« Reply #62 on: December 13, 2022, 06:57:27 am »
@Bogen85 Another point for gtk. The Linux world split in two: GTK and QT.

I'm also very aware of this split.
I was running KDE before Gnome came out in 1997.
The insuing holy war was very interesting to follow on mailing lists. Both amusing and annoying....

I used KDE off and on until KDE 3 came out. Have never been able to run any KDE for more than 30 minutes since KDE 3 came out, including Plasma.
The interface is just way too much.

The Gnome camp got off to a rocky start, as they started the holy war. And basically came on on the KDE mailing lists screaming for everyone to switch to gnome which was not ready yet...
Quote
We must save you from the trolls! (something to that affect)
TrollTech https://en.wikipedia.org/wiki/The_Qt_Company#History

So yes, I'm extremely aware of the divide in Linux between Gtk and Qt.,


PierceNg

  • Sr. Member
  • ****
  • Posts: 430
    • SamadhiWeb
Re: Proposing new widgetset: dwindows
« Reply #63 on: December 13, 2022, 08:39:15 am »
I present the simplest possible dwindows binding that shows something on screen. Tested on my GTK3 Ubuntu 20.04. "It works on my computer."TM

As mentioned up thread I'm more interested in using this on iOS/Android. Next I'll investigate how to get this little demo to work on Android.
The hurdle is this: Android Studio can build the dwtest.c program natively. It can't build dwtest.pas. I thinking I'll build the Pascal program into a shared library, and turn dwtest.c into a stub program that loads said shared library. Something like that. There's probably some technique in LAMW that I can adapt.

s6nonqxt

  • Guest
Re: Proposing new widgetset: dwindows
« Reply #64 on: December 13, 2022, 09:01:46 am »
Oh no don't do that. This symlink could break your system. Have a look at ldconfig :o
Seriously, you don't think I install stuff like this on my real "system" do you ?  It was all on a VM I have already trashed. But thanks for your concern.

Davo

I did install it on my working Linux system :-[

3oheicrw

  • Guest
Re: Proposing new widgetset: dwindows
« Reply #65 on: December 13, 2022, 10:29:18 am »
@PierceNg You could try h2pas. I used to make a Win32 only binding for Pascal. Because I only need Win32 at that time I simply removed code for other platforms from dw.h, the final result is simple enough to just feed into h2pas. The rest I asked the help of the community.

https://forum.lazarus.freepascal.org/index.php/topic,58500.msg435695.html

https://forum.lazarus.freepascal.org/index.php/topic,58504.msg435722.html

https://forum.lazarus.freepascal.org/index.php/topic,58505.msg435741.html

https://forum.lazarus.freepascal.org/index.php/topic,58506.msg435745.html

https://forum.lazarus.freepascal.org/index.php/topic,58513.msg435804.html

https://forum.lazarus.freepascal.org/index.php/topic,58535.msg436057.html

https://forum.lazarus.freepascal.org/index.php/topic,58965.msg439456.html

The more you worked with the translation, the more you will find yourself encountered the problems I encountered on these threads.

You can still see my thread on dbsoft's froum:

https://dbsoft.org/forum/showthread.php?tid=96

It's many months ago. My github account was destroyed and I didn't save the code so you will have to start from scratch, sorry. I lost the interest on native languages like Pascal. I only came back to the forum because of this rant on phoronix:

https://forum.lazarus.freepascal.org/index.php/topic,61513.msg462924.html

3oheicrw

  • Guest
Re: Proposing new widgetset: dwindows
« Reply #66 on: December 13, 2022, 11:00:40 am »
Following the Android instructions I got dwtest running both on emulator and my midrange phone. Emulator screenshots attached. The screenshots look bad because the emulator doesn't like my computer's crappy graphics card. On my phone the pixels are sharp enough but of course the whole display is wonky since it's a desktop-oriented demo being shoehorned into a phone screen.

Cool:
- landscape / portrait auto layout switching works
- the annoying beep demo works on my phone - it beeps and shuts up on button press
- threading works

Problems:
- the 2D graphics demo shows up but doesn't redraw in response to my UI actions
- only half the 'tree' screen shows up
- web widget doesn't work

Overall, can't compete against Flutter or Xamarin obviously, but for a small team open source effort who tells upfront their Android stuff is considered beta, it's impressive.

Did you see something wrong with the fonts?

https://fonts.google.com/knowledge/glossary/hinting

Bogen85

  • Hero Member
  • *****
  • Posts: 703
Re: Proposing new widgetset: dwindows
« Reply #67 on: December 13, 2022, 12:35:20 pm »
So, a few things here.... and many of these have already been pointed out in this thread. But I will reiterate them.

  • Dwindows is a fairly young project. We have no idea if it will be able to keep up with GTK's changing API
  • Someone(s) have to determine if Dwindows provides down to the pixel support as far as dimensioning widgets
  • Someone(s) (not an existing Lazarus developer) has to study the LCL, study the Dwindows API, and determine how a translation layer (LCL backend) could be written in Free Pasal
  • While the Lazarus developers may help with questions, they are not in any way obligated to do that work
  • That Someone(s) would need to write the LCL backend and get it working
  • Others would have to agree to it is working, any issues would be to be resolved before moving forward
  • A PR would need to be done in gitlab against Lazarus
  • The Lazarus devs would need to agree it is working
  • The Lazarus devs would need to be completely convinced the Someone(s) are are willing and able to maintain this backend
  • The Lazarus devs would need to be completely convinced the Someone(s) are are willing and able to work with the Dwindows project if issues arise that need to be resolved upstream (Dwindows and Gtk)

There may be other things that Marcov, PierceNG, dbannon, af0815, JuhaManninen, and MarkMLI brought up that I did not list above.

Those "other things" and everything on the list above would be to be satisfied before something like this could become a reality.

Based on this thread, 3oheicrw, s6nonqxt, and iahung appear to have volunteered to be the Someone(s) I alluded to above, if they indeed want to see this become a reality.

While I might like a stable/working gtk3/gtk4 LCL backend for Lazarus to become a reality I don't have the time or motivation to be involved in such an effort.

Do the Qt5 and Qt6 LCL backends have issues? Sure. But not enough for me to commit the time and energy (or few $100K USD to pay some developer) needed to make a stable/working gtk3/gtk4 LCL backend become a reality. So I'll put up with the issues. Too expensive (time/motivation/money) to address them adequately.
 
« Last Edit: December 13, 2022, 01:57:45 pm by Bogen85 »

Bogen85

  • Hero Member
  • *****
  • Posts: 703
Re: Proposing new widgetset: dwindows
« Reply #68 on: December 13, 2022, 02:10:22 pm »
One takeaway for me though in this thread, iahung has done a fairly good job with compelling arguments, convincing me I need to take a serious in depth look into https://lxqt-project.org/ and consider replacing my use of Xfce4 with it.

3oheicrw

  • Guest
Re: Proposing new widgetset: dwindows
« Reply #69 on: December 13, 2022, 02:43:14 pm »
So, a few things here.... and many of these have already been pointed out in this thread. But I will reiterate them.

  • Dwindows is a fairly young project. We have no idea if it will be able to keep up with GTK's changing API
  • Someone(s) have to determine if Dwindows provides down to the pixel support as far as dimensioning widgets
  • Someone(s) (not an existing Lazarus developer) has to study the LCL, study the Dwindows API, and determine how a translation layer (LCL backend) could be written in Free Pasal
  • While the Lazarus developers may help with questions, they are not in any way obligated to do that work
  • That Someone(s) would need to write the LCL backend and get it working
  • Others would have to agree to it is working, any issues would be to be resolved before moving forward
  • A PR would need to be done in gitlab against Lazarus
  • The Lazarus devs would need to agree it is working
  • The Lazarus devs would need to be completely convinced the Someone(s) are are willing and able to maintain this backend
  • The Lazarus devs would need to be completely convinced the Someone(s) are are willing and able to work with the Dwindows project if issues arise that need to be resolved upstream (Dwindows and Gtk)

There may be other things that Marcov, PierceNG, dbannon, af0815, JuhaManninen, and MarkMLI brought up that I did not list above.

Those "other things" and everything on the list above would be to be satisfied before something like this could become a reality.

Based on this thread, 3oheicrw, s6nonqxt, and iahung appear to have volunteered to be the Someone(s) I alluded to above, if they indeed want to see this become a reality.

While I might like a stable/working gtk3/gtk4 LCL backend for Lazarus to become a reality I don't have the time or motivation to be involved in such an effort.

Do the Qt5 and Qt6 LCL backends have issues? Sure. But not enough for me to commit the time and energy (or few $100K USD to pay some developer) needed to make a stable/working gtk3/gtk4 LCL backend become a reality. So I'll put up with the issues. Too expensive (time/motivation/money) to address them adequately.

First, dwindows is a very old project. It's not young. It's unpopular because they kept it for internal use and not publicly advertise for it. It's me that spread the knowledge about dwindows to the world. I knew dbsoft on the Pale Moon forum first, he is the one decided to maintain a Pale Moon fork for macOS called White Star after Pale Moon decided to drop macOS support. Even though I don't use macOS, I admired his work, go to his forum when the Pale Moon guys decided to not allow discussing of White Star problems on their forum anymore. This is when I found dwindows and dwib. It's me that submit it to various lists of awesome C libraries on github. Only after that, people started to care a little bit about it.

Second, I'm not volunteered to do anything. I don't know why you got your lengthy summary from thin air as none of the people you mentioned have make any statements. The best I used to do is making a Win32 only binding for it to use with Pascal and Basic. Even after that, I dropped maintaining of these bindings as I don't use them. When my github account was destroyed, I'm not even kept the code for it. I don't know much about dwindows and absolutely nothing about Lazarus and the LCL. I decided life is too short to deal with pointers, I gave up on native languages (including Pascal). You see the many Wren based languages I advertised on another thread? I'm using Umka.

MarkMLl

  • Hero Member
  • *****
  • Posts: 8551
Re: Proposing new widgetset: dwindows
« Reply #70 on: December 13, 2022, 02:46:29 pm »
One takeaway for me though in this thread, iahung has done a fairly good job with compelling arguments, convincing me I need to take a serious in depth look into https://lxqt-project.org/ and consider replacing my use of Xfce4 with it.

I'd suggest that it might be worth following whichever desktop the Raspberry Pi Foundation favours... I think a derivative of LXDE.

General points though are (a) minority desktops might be very sketchy in their provision of an editor for the .desktop files that underlie the menu etc. and (b) they might not provide as many "hints" to the widget set relating to metrics etc. as the major ones.

Apropos (b) in particular, a few months ago I ended up with the RPi and Cura developers blaming each other because the RPi desktop wasn't supplying font metrics to application windows and Qt as used by the Cura slicer was defaulting to an unreasonably large minimum window size. And I don't even know how that stuff is supposed to be passed around...

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

3oheicrw

  • Guest
Re: Proposing new widgetset: dwindows
« Reply #71 on: December 13, 2022, 02:46:53 pm »
One takeaway for me though in this thread, iahung has done a fairly good job with compelling arguments, convincing me I need to take a serious in depth look into https://lxqt-project.org/ and consider replacing my use of Xfce4 with it.

So you are going after a pure Qt desktop? Good luck with that. Maybe you could use Falkon, as Firefox uses GTK.

Bogen85

  • Hero Member
  • *****
  • Posts: 703
Re: Proposing new widgetset: dwindows
« Reply #72 on: December 13, 2022, 06:43:57 pm »
Second, I'm not volunteered to do anything. I don't know why you got your lengthy summary from thin air as none of the people you mentioned have make any statements.

I just listed the proponents of Dwindows from this thread.
Nothing more.

Yeas, agreed, you did no not volunteer.

The summary of requirements of what would be needed for Dwindows to become a widgetset for Lazarus were not out of thin air, they were from things said in this thread as far as what would be needed.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4694
  • I like bugs.
Re: Proposing new widgetset: dwindows
« Reply #73 on: December 14, 2022, 04:21:06 pm »
  • Someone(s) (not an existing Lazarus developer) has to study the LCL, study the Dwindows API, and determine how a translation layer (LCL backend) could be written in Free Pasal
The original idea was to use the current GTK1 LCL binding code but indeed it may be a bad idea.
It was the very first widgetset for Lazarus a long time ago. More recent widgetsets use a different class structure. The design has evolved.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Fred vS

  • Hero Member
  • *****
  • Posts: 3826
    • StrumPract is the musicians best friend
Re: Proposing new widgetset: dwindows
« Reply #74 on: December 14, 2022, 04:54:21 pm »
So yes, I'm extremely aware of the divide in Linux between Gtk and Qt.,

And when you will discover MSEgui, the best widgetset that only needs X.org dependencies, that has docking feature and style that can mimic GTK1, GTK2, GTK3, GTKx, Qt4 to x, KDE, Carbon, all Windows versions, is extremely more stable than his brothers and is 100% pure Pascal, compatible from fpc 2.6.4 to 3.3.1, you will be aware that the Linux word is divided between MSEgui and the others.

 :-*
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

 

TinyPortal © 2005-2018