* 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 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 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-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 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: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 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-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: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-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