comp.lang.ada
 help / color / mirror / Atom feed
* Which GUI framework ?
@ 2020-10-29 18:48 DrPi
  2020-10-29 19:23 ` Dmitry A. Kazakov
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: DrPi @ 2020-10-29 18:48 UTC (permalink / raw)


Hi,

I'd like to create a PC (Windows) GUI program. This program needs to be 
able to create many windows and tabs in one of them. A working thread 
receive data from a serial line and send messages to the GUI to print 
received content.

I know the most common way is to use GtkAda. The problem is I'm a Ada 
beginner and I never used Gkt. So, the effort is double.

I have a quite good knowledge of wxWidgets since I use wxPython for 
years. I thought I could use wxAda but is seems the project is dead.


Any other binding to wxWidgets that I'm not aware of ?

Nicolas

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-29 18:48 Which GUI framework ? DrPi
@ 2020-10-29 19:23 ` Dmitry A. Kazakov
  2020-10-29 20:45   ` Randy Brukardt
  2020-10-30  9:37   ` DrPi
  2020-10-30  9:52 ` Luke A. Guest
  2020-11-11  1:43 ` Azathoth Hastur
  2 siblings, 2 replies; 17+ messages in thread
From: Dmitry A. Kazakov @ 2020-10-29 19:23 UTC (permalink / raw)


On 29/10/2020 19:48, DrPi wrote:

> I'd like to create a PC (Windows) GUI program. This program needs to be 
> able to create many windows and tabs in one of them. A working thread 
> receive data from a serial line and send messages to the GUI to print 
> received content.
> 
> I know the most common way is to use GtkAda. The problem is I'm a Ada 
> beginner and I never used Gkt. So, the effort is double.
> 
> I have a quite good knowledge of wxWidgets since I use wxPython for 
> years. I thought I could use wxAda but is seems the project is dead.
> 
> Any other binding to wxWidgets that I'm not aware of ?

If that is only Windows (are you serious?), you do not need any. Simply 
use Windows GDI API directly. They are callable from Ada more or less 
out of the box because Windows handles all objects internally as graphic 
resources.

There is Win32Ada thin bindings, but it is incomplete and most of the 
time you do not need it.

The Microsoft's way of defining and using types is so idiotic that no 
reasonably usable thin Ada bindings are possible. I just declare an Ada 
counterpart new as appropriate with parameters of types I want in order 
to avoid casting types.

In short, Windows GDI is ugly but it is native and task-safe. (GtkAda is 
neither)

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-29 19:23 ` Dmitry A. Kazakov
@ 2020-10-29 20:45   ` Randy Brukardt
  2020-10-30  9:38     ` DrPi
  2020-10-30  9:37   ` DrPi
  1 sibling, 1 reply; 17+ messages in thread
From: Randy Brukardt @ 2020-10-29 20:45 UTC (permalink / raw)


"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:rnf4s8$e4g$1@gioia.aioe.org...
> On 29/10/2020 19:48, DrPi wrote:
>
>> I'd like to create a PC (Windows) GUI program. This program needs to be 
>> able to create many windows and tabs in one of them. A working thread 
>> receive data from a serial line and send messages to the GUI to print 
>> received content.
>>
>> I know the most common way is to use GtkAda. The problem is I'm a Ada 
>> beginner and I never used Gkt. So, the effort is double.
>>
>> I have a quite good knowledge of wxWidgets since I use wxPython for 
>> years. I thought I could use wxAda but is seems the project is dead.
>>
>> Any other binding to wxWidgets that I'm not aware of ?
>
> If that is only Windows (are you serious?), you do not need any. Simply 
> use Windows GDI API directly. They are callable from Ada more or less out 
> of the box because Windows handles all objects internally as graphic 
> resources.
>
> There is Win32Ada thin bindings, but it is incomplete and most of the time 
> you do not need it.

For Win32, both Claw (www.rrsoftware.com) and GWindows provide thick Ada 
bindings. Much easier to use than raw Win32.

                          Randy.




>
> The Microsoft's way of defining and using types is so idiotic that no 
> reasonably usable thin Ada bindings are possible. I just declare an Ada 
> counterpart new as appropriate with parameters of types I want in order to 
> avoid casting types.
>
> In short, Windows GDI is ugly but it is native and task-safe. (GtkAda is 
> neither)
>
> -- 
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-29 19:23 ` Dmitry A. Kazakov
  2020-10-29 20:45   ` Randy Brukardt
@ 2020-10-30  9:37   ` DrPi
  2020-10-30  9:54     ` Dmitry A. Kazakov
  2020-10-30 12:31     ` Jeffrey R. Carter
  1 sibling, 2 replies; 17+ messages in thread
From: DrPi @ 2020-10-30  9:37 UTC (permalink / raw)



Le 29/10/2020 à 20:23, Dmitry A. Kazakov a écrit :
> On 29/10/2020 19:48, DrPi wrote:
> 
>> I'd like to create a PC (Windows) GUI program. This program needs to 
>> be able to create many windows and tabs in one of them. A working 
>> thread receive data from a serial line and send messages to the GUI to 
>> print received content.
>>
>> I know the most common way is to use GtkAda. The problem is I'm a Ada 
>> beginner and I never used Gkt. So, the effort is double.
>>
>> I have a quite good knowledge of wxWidgets since I use wxPython for 
>> years. I thought I could use wxAda but is seems the project is dead.
>>
>> Any other binding to wxWidgets that I'm not aware of ?
> 
> If that is only Windows (are you serious?), 
Did I say that ?  ;)
I currently do my dev on a Windows machine but a cross-platform 
framework is welcome.

you do not need any. Simply
> use Windows GDI API directly. They are callable from Ada more or less 
> out of the box because Windows handles all objects internally as graphic 
> resources.
> 
> There is Win32Ada thin bindings, but it is incomplete and most of the 
> time you do not need it.
> 
> The Microsoft's way of defining and using types is so idiotic that no 
> reasonably usable thin Ada bindings are possible. I just declare an Ada 
> counterpart new as appropriate with parameters of types I want in order 
> to avoid casting types.
> 
> In short, Windows GDI is ugly but it is native and task-safe. (GtkAda is 
> neither)
> 
Windows GDI... I used it long time ago. Not my best memory.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-29 20:45   ` Randy Brukardt
@ 2020-10-30  9:38     ` DrPi
  0 siblings, 0 replies; 17+ messages in thread
From: DrPi @ 2020-10-30  9:38 UTC (permalink / raw)


Le 29/10/2020 à 21:45, Randy Brukardt a écrit :
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:rnf4s8$e4g$1@gioia.aioe.org...
>> On 29/10/2020 19:48, DrPi wrote:
>>
>>> I'd like to create a PC (Windows) GUI program. This program needs to be
>>> able to create many windows and tabs in one of them. A working thread
>>> receive data from a serial line and send messages to the GUI to print
>>> received content.
>>>
>>> I know the most common way is to use GtkAda. The problem is I'm a Ada
>>> beginner and I never used Gkt. So, the effort is double.
>>>
>>> I have a quite good knowledge of wxWidgets since I use wxPython for
>>> years. I thought I could use wxAda but is seems the project is dead.
>>>
>>> Any other binding to wxWidgets that I'm not aware of ?
>>
>> If that is only Windows (are you serious?), you do not need any. Simply
>> use Windows GDI API directly. They are callable from Ada more or less out
>> of the box because Windows handles all objects internally as graphic
>> resources.
>>
>> There is Win32Ada thin bindings, but it is incomplete and most of the time
>> you do not need it.
> 
> For Win32, both Claw (www.rrsoftware.com) and GWindows provide thick Ada
> bindings. Much easier to use than raw Win32.
> 
>                            Randy.
> 
Interresting. I'll have a look at them.
Thanks.
> 
> 
> 
>>
>> The Microsoft's way of defining and using types is so idiotic that no
>> reasonably usable thin Ada bindings are possible. I just declare an Ada
>> counterpart new as appropriate with parameters of types I want in order to
>> avoid casting types.
>>
>> In short, Windows GDI is ugly but it is native and task-safe. (GtkAda is
>> neither)
>>
>> -- 
>> Regards,
>> Dmitry A. Kazakov
>> http://www.dmitry-kazakov.de
> 
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-29 18:48 Which GUI framework ? DrPi
  2020-10-29 19:23 ` Dmitry A. Kazakov
@ 2020-10-30  9:52 ` Luke A. Guest
  2020-10-31 11:14   ` DrPi
  2020-11-11  1:43 ` Azathoth Hastur
  2 siblings, 1 reply; 17+ messages in thread
From: Luke A. Guest @ 2020-10-30  9:52 UTC (permalink / raw)


On 29/10/2020 18:48, DrPi wrote:
> Hi,
> 
> I'd like to create a PC (Windows) GUI program. This program needs to be 
> able to create many windows and tabs in one of them. A working thread 
> receive data from a serial line and send messages to the GUI to print 
> received content.
> 
> I know the most common way is to use GtkAda. The problem is I'm a Ada 
> beginner and I never used Gkt. So, the effort is double.

Gtk isn't all that pleasant either.

> I have a quite good knowledge of wxWidgets since I use wxPython for 
> years. I thought I could use wxAda but is seems the project is dead.

Yup, I agree that wxWidgets is much simpler as it was based on MFC, only 
portable.

At this time wxAda is dead on my hdd right now and not going to be 
resurrected until I get some money coming in.

> 
> Any other binding to wxWidgets that I'm not aware of ?

No, both efforts were abandoned as it was too much work. I have a start 
to a generator, but like I said, it's not happening right now.

Luke.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-30  9:37   ` DrPi
@ 2020-10-30  9:54     ` Dmitry A. Kazakov
  2020-10-30 11:36       ` Chris M Moore
  2020-10-30 12:31     ` Jeffrey R. Carter
  1 sibling, 1 reply; 17+ messages in thread
From: Dmitry A. Kazakov @ 2020-10-30  9:54 UTC (permalink / raw)


On 30/10/2020 10:37, DrPi wrote:

> I currently do my dev on a Windows machine but a cross-platform 
> framework is welcome.

Cross-platform would be:

1. GTK (GtkAda)
2. Qt (not sure about the project name)
3. HTTP (Gnoga)

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-30  9:54     ` Dmitry A. Kazakov
@ 2020-10-30 11:36       ` Chris M Moore
  2020-10-31 10:58         ` DrPi
  0 siblings, 1 reply; 17+ messages in thread
From: Chris M Moore @ 2020-10-30 11:36 UTC (permalink / raw)


On 30/10/2020 09:54, Dmitry A. Kazakov wrote:
> On 30/10/2020 10:37, DrPi wrote:
> 
>> I currently do my dev on a Windows machine but a cross-platform 
>> framework is welcome.
> 
> Cross-platform would be:
> 
> 1. GTK (GtkAda)
> 2. Qt (not sure about the project name)
> 3. HTTP (Gnoga)
> 

Or Tk via https://github.com/simonjwright/tcladashell (or 
https://github.com/thindil/tashy but I've not used that).

-- 
sig pending (since 1995)

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-30  9:37   ` DrPi
  2020-10-30  9:54     ` Dmitry A. Kazakov
@ 2020-10-30 12:31     ` Jeffrey R. Carter
  2020-10-31 11:20       ` DrPi
  1 sibling, 1 reply; 17+ messages in thread
From: Jeffrey R. Carter @ 2020-10-30 12:31 UTC (permalink / raw)


On 10/30/20 10:37 AM, DrPi wrote:
> 
> I currently do my dev on a Windows machine but a cross-platform framework is 
> welcome.

Gnoga (https://sourceforge.net/projects/gnoga/) is all Ada (not a binding) and 
platform independent.

-- 
Jeff Carter
"You empty-headed animal-food-trough wiper."
Monty Python & the Holy Grail
04

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-30 11:36       ` Chris M Moore
@ 2020-10-31 10:58         ` DrPi
  0 siblings, 0 replies; 17+ messages in thread
From: DrPi @ 2020-10-31 10:58 UTC (permalink / raw)


Le 30/10/2020 à 12:36, Chris M Moore a écrit :
> On 30/10/2020 09:54, Dmitry A. Kazakov wrote:
>> On 30/10/2020 10:37, DrPi wrote:
>>
>>> I currently do my dev on a Windows machine but a cross-platform 
>>> framework is welcome.
>>
>> Cross-platform would be:
>>
>> 1. GTK (GtkAda)
>> 2. Qt (not sure about the project name)
>> 3. HTTP (Gnoga)
>>
> 
> Or Tk via https://github.com/simonjwright/tcladashell (or 
> https://github.com/thindil/tashy but I've not used that).
> 
I'll have a look.
Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-30  9:52 ` Luke A. Guest
@ 2020-10-31 11:14   ` DrPi
  2020-10-31 14:03     ` Luke A. Guest
  0 siblings, 1 reply; 17+ messages in thread
From: DrPi @ 2020-10-31 11:14 UTC (permalink / raw)


Le 30/10/2020 à 10:52, Luke A. Guest a écrit :
> On 29/10/2020 18:48, DrPi wrote:
>> Hi,
>>
>> I'd like to create a PC (Windows) GUI program. This program needs to 
>> be able to create many windows and tabs in one of them. A working 
>> thread receive data from a serial line and send messages to the GUI to 
>> print received content.
>>
>> I know the most common way is to use GtkAda. The problem is I'm a Ada 
>> beginner and I never used Gkt. So, the effort is double.
> 
> Gtk isn't all that pleasant either.
> 
>> I have a quite good knowledge of wxWidgets since I use wxPython for 
>> years. I thought I could use wxAda but is seems the project is dead.
> 
> Yup, I agree that wxWidgets is much simpler as it was based on MFC, only 
> portable.
> 
> At this time wxAda is dead on my hdd right now and not going to be 
> resurrected until I get some money coming in.
> 
>>
>> Any other binding to wxWidgets that I'm not aware of ?
> 
> No, both efforts were abandoned as it was too much work. I have a start 
> to a generator, but like I said, it's not happening right now.
> 
> Luke.

Binding to C++ libraries is a problem.
In python world, there are many ways to achieve this.
If I remember well, the author of wxPython has written its own binding 
system for version 3. Before version 3, he used a "standard" one but 
with many manual patches.
PySide (Python binding for Qt) authors also have written their own 
binding system after using one that was not fulfilling their needs.

It's a pity since I like wxWidgets way of working.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-30 12:31     ` Jeffrey R. Carter
@ 2020-10-31 11:20       ` DrPi
  0 siblings, 0 replies; 17+ messages in thread
From: DrPi @ 2020-10-31 11:20 UTC (permalink / raw)


Le 30/10/2020 à 13:31, Jeffrey R. Carter a écrit :
> On 10/30/20 10:37 AM, DrPi wrote:
>>
>> I currently do my dev on a Windows machine but a cross-platform 
>> framework is welcome.
> 
> Gnoga (https://sourceforge.net/projects/gnoga/) is all Ada (not a 
> binding) and platform independent.
> 
Gnoga is very interesting when the GUI is remotely run.
I think using such a system locally is nonsense (very resource hungry).

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-31 11:14   ` DrPi
@ 2020-10-31 14:03     ` Luke A. Guest
  2020-10-31 16:30       ` DrPi
  0 siblings, 1 reply; 17+ messages in thread
From: Luke A. Guest @ 2020-10-31 14:03 UTC (permalink / raw)


On 31/10/2020 11:14, DrPi wrote:
> Le 30/10/2020 à 10:52, Luke A. Guest a écrit :
>>>
>>> Any other binding to wxWidgets that I'm not aware of ?
>>
>> No, both efforts were abandoned as it was too much work. I have a 
>> start to a generator, but like I said, it's not happening right now.
>>
>> Luke.
> 
> Binding to C++ libraries is a problem.

Yup, see my example of how to do it here: 
https://github.com/Lucretia/test_binding

> In python world, there are many ways to achieve this.
> If I remember well, the author of wxPython has written its own binding 
> system for version 3. Before version 3, he used a "standard" one but 
> with many manual patches.

I spoke with Robin many times about how to do this. My generator does 
what his does in getting the interfaces read in.

> PySide (Python binding for Qt) authors also have written their own 
> binding system after using one that was not fulfilling their needs.
> 
> It's a pity since I like wxWidgets way of working.

Yeah, same here.

I'm considering setting up gh sponsors, but if I cannot get enough there 
to keep me afloat, it's a non-starter. Maybe If I can get a contract 
elsewhere first?

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-31 14:03     ` Luke A. Guest
@ 2020-10-31 16:30       ` DrPi
  2020-10-31 16:35         ` Luke A. Guest
  0 siblings, 1 reply; 17+ messages in thread
From: DrPi @ 2020-10-31 16:30 UTC (permalink / raw)



Le 31/10/2020 à 15:03, Luke A. Guest a écrit :
> On 31/10/2020 11:14, DrPi wrote:
>> Le 30/10/2020 à 10:52, Luke A. Guest a écrit :
>>>>
>>>> Any other binding to wxWidgets that I'm not aware of ?
>>>
>>> No, both efforts were abandoned as it was too much work. I have a 
>>> start to a generator, but like I said, it's not happening right now.
>>>
>>> Luke.
>>
>> Binding to C++ libraries is a problem.
> 
> Yup, see my example of how to do it here: 
> https://github.com/Lucretia/test_binding

For a Python program, I've done something similar but much simpler. A 
very simple C library interfaces to C++ library. The Python program 
accesses the C library through cTypes.

> 
>> In python world, there are many ways to achieve this.
>> If I remember well, the author of wxPython has written its own binding 
>> system for version 3. Before version 3, he used a "standard" one but 
>> with many manual patches.
> 
> I spoke with Robin many times about how to do this. My generator does 
> what his does in getting the interfaces read in.
> 
>> PySide (Python binding for Qt) authors also have written their own 
>> binding system after using one that was not fulfilling their needs.
>>
>> It's a pity since I like wxWidgets way of working.
> 
> Yeah, same here.
> 
> I'm considering setting up gh sponsors, but if I cannot get enough there 
> to keep me afloat, it's a non-starter. Maybe If I can get a contract 
> elsewhere first?
> 
Do you know SWIG (http://swig.org/) ?
SWIG manages C++ bindings to many languages... but not Ada. However, 
SWIG tools might be of interest, like the tree parser outputting xml.
Maybe SWIG can be modified to manage Ada. Just an idea. But not my skills.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-31 16:30       ` DrPi
@ 2020-10-31 16:35         ` Luke A. Guest
  2020-10-31 17:48           ` DrPi
  0 siblings, 1 reply; 17+ messages in thread
From: Luke A. Guest @ 2020-10-31 16:35 UTC (permalink / raw)


On 31/10/2020 16:30, DrPi wrote:
> Do you know SWIG (http://swig.org/) ?

I know of it and no thanks. My generator would actually be simpler.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-31 16:35         ` Luke A. Guest
@ 2020-10-31 17:48           ` DrPi
  0 siblings, 0 replies; 17+ messages in thread
From: DrPi @ 2020-10-31 17:48 UTC (permalink / raw)


Le 31/10/2020 à 17:35, Luke A. Guest a écrit :
> On 31/10/2020 16:30, DrPi wrote:
>> Do you know SWIG (http://swig.org/) ?
> 
> I know of it and no thanks. My generator would actually be simpler.
> 
For sure, SWIG is not simple.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Which GUI framework ?
  2020-10-29 18:48 Which GUI framework ? DrPi
  2020-10-29 19:23 ` Dmitry A. Kazakov
  2020-10-30  9:52 ` Luke A. Guest
@ 2020-11-11  1:43 ` Azathoth Hastur
  2 siblings, 0 replies; 17+ messages in thread
From: Azathoth Hastur @ 2020-11-11  1:43 UTC (permalink / raw)


On Thursday, October 29, 2020 at 2:48:45 PM UTC-4, DrPi wrote:
> Hi,
> 
> I'd like to create a PC (Windows) GUI program. This program needs to be 
> able to create many windows and tabs in one of them. A working thread 
> receive data from a serial line and send messages to the GUI to print 
> received content.
> 
> I know the most common way is to use GtkAda. The problem is I'm a Ada 
> beginner and I never used Gkt. So, the effort is double.
> 
> I have a quite good knowledge of wxWidgets since I use wxPython for 
> years. I thought I could use wxAda but is seems the project is dead.
> 
> 
> Any other binding to wxWidgets that I'm not aware of ?
> 
> Nicolas

gnoga.com use HTML for get gtk qt crap

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-11-11  1:43 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-29 18:48 Which GUI framework ? DrPi
2020-10-29 19:23 ` Dmitry A. Kazakov
2020-10-29 20:45   ` Randy Brukardt
2020-10-30  9:38     ` DrPi
2020-10-30  9:37   ` DrPi
2020-10-30  9:54     ` Dmitry A. Kazakov
2020-10-30 11:36       ` Chris M Moore
2020-10-31 10:58         ` DrPi
2020-10-30 12:31     ` Jeffrey R. Carter
2020-10-31 11:20       ` DrPi
2020-10-30  9:52 ` Luke A. Guest
2020-10-31 11:14   ` DrPi
2020-10-31 14:03     ` Luke A. Guest
2020-10-31 16:30       ` DrPi
2020-10-31 16:35         ` Luke A. Guest
2020-10-31 17:48           ` DrPi
2020-11-11  1:43 ` Azathoth Hastur

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox