Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ann: GWindows release, 29-May-2023

92 views
Skip to first unread message

Gautier write-only address

unread,
May 29, 2023, 12:19:13 PM5/29/23
to
GWindows is a full Microsoft Windows Rapid Application Development
framework for programming GUIs (Graphical User Interfaces) with Ada.
GWindows works only with the GNAT development system,
but with some effort, GWindows could be made pure Ada.
GWindows is free and open-source!

Changes to the framework are detailed in gwindows/changes.txt or
in the News forum on the project site.

In a nutshell (since last announcement here):

GWindows release, 29-May-2023 [revision 480]
============================================

* Fixes: color picker dialog, mouse wheel methods

478: Contribution: added package GWindows.Pipes
477: Contribution: added package GWindows.Timers
476: Contribution: added package GWindows.Persistence_IO
466: Contribution: initial release of package Office_Applications
for helping creating office-like applications.

GWindows release, 13-Nov-2022 [revision 459]
============================================

458: GWindows.Common_Controls.Ex_List_View: added `Using_Payloads`
to the enumerated type `Comparison_Technique_Type`.
With this choice, sorting runs 100x faster.
451: GWindows.Common_Controls.Ex_List_View: added `As_Strings_Default`
to the enumerated type `Comparison_Technique_Type` (sorting runs
faster if default alphabetical sorting is desired).
449: GWindows.Application: added procedure `Add_To_Recent_Documents`.
Windows Explorer & Desktop puts the name on top of various
"recent documents" lists, for instance in the task bar.
447: GWindows.Common_Controls.Ex_List_View: massive speedup on sorting
of large lists (e.g. 6x faster for 20,000 items).

GWindows release, 18-Jun-2022 [revision 440]
============================================

* Installer: ResEdit.xml configuration file for the ResEdit
Resource Editor is automatically created and set up for
current GNAT installation(s), GWindows and GWenerator.
* Fixed a few 32/64 bit incompatibilities in GWindows.Windows and
GWindows.Common_Controls.Ex_List_View.
* Fixed various GNATCOM issues.


GWindows Project site:
https://sf.net/projects/gnavi/

GWindows GitHub clone:
https://github.com/zertovitch/gwindows

Enjoy!
_________________________
Gautier's Ada programming
http://gautiersblog.blogspot.com/search/label/Ada
NB: follow the above link for a valid e-mail address

DrPi

unread,
May 29, 2023, 3:57:43 PM5/29/23
to
Le 29/05/2023 à 18:19, Gautier write-only address a écrit :
> GWindows is a full Microsoft Windows Rapid Application Development
> framework for programming GUIs (Graphical User Interfaces) with Ada.
> GWindows works only with the GNAT development system,
> but with some effort, GWindows could be made pure Ada.
> GWindows is free and open-source!
>

What do you mean by "pure Ada" ?

Gautier write-only address

unread,
May 29, 2023, 7:59:40 PM5/29/23
to
On Monday, May 29, 2023 at 9:57:43 PM UTC+2, DrPi wrote:
> What do you mean by "pure Ada" ?

IIRC, there are a few GNAT-only attributes, like Unrestricted_Access, used. No big deal.
But good point, I could check "purity" with the ObjectAda compiler.

Jeffrey R.Carter

unread,
May 30, 2023, 3:56:17 AM5/30/23
to
On 2023-05-30 01:59, Gautier write-only address wrote:
>
> IIRC, there are a few GNAT-only attributes, like Unrestricted_Access, used. No big deal.
> But good point, I could check "purity" with the ObjectAda compiler.

I took a quick look. Wouldn't all of Gnatcom need to be replaced?

--
Jeff Carter
"Ada is a management tool. It selects for software
engineers and encourages the hackers to quit."
Robert C. Leif
204

Gautier write-only address

unread,
Jun 4, 2023, 2:09:20 AM6/4/23
to
On Tuesday, May 30, 2023 at 9:56:17 AM UTC+2, Jeffrey R.Carter wrote:

> I took a quick look. Wouldn't all of Gnatcom need to be replaced?

Good question.
When I compile a project using GWindows, GNAT uses 10 of the 53 GNATCOM packages.
One GNATism is 4x 'Unrestricted_Access in GNATCOM.Types, for accesses such as:

VARIANT_MISSING : aliased constant VARIANT :=
(VT_ERROR, 0, 0, 0, u => (Which => 8, scode => DISP_E_PARAMNOTFOUND));
PVARIANT_MISSING : Pointer_To_VARIANT :=
VARIANT_MISSING'Unrestricted_Access;

that could be either resolved into a standard Ada form or exiled into another package (GWindows doesn't need them).
Something thougher is a couple of intrinsic imports (sync_add_and_fetch, sync_sub_and_fetch):
function sync_add_and_fetch
(Ref : access Interfaces.Unsigned_32;
Add : Interfaces.Unsigned_32)
return Interfaces.Unsigned_32
with
Import,
Convention => Intrinsic,
External_Name => "__sync_add_and_fetch_4";

which seems to be specific to GCC (and actually, not even all versions of GCC...)

Randy Brukardt

unread,
Jun 17, 2023, 3:18:02 AM6/17/23
to

"Gautier write-only address" <gautier...@hotmail.com> wrote in message
news:9a893d03-ccf9-46cb...@googlegroups.com...
> Something thougher is a couple of intrinsic imports (sync_add_and_fetch,
> sync_sub_and_fetch):
> function sync_add_and_fetch
> (Ref : access Interfaces.Unsigned_32;
> Add : Interfaces.Unsigned_32)
> return Interfaces.Unsigned_32
> with
> Import,
> Convention => Intrinsic,
> External_Name => "__sync_add_and_fetch_4";
>
>which seems to be specific to GCC (and actually, not even all versions of
>GCC...)

This looks like an atomic operation. A portable Ada definition of such
operations is found in C.6.1-C.6.4 of Ada 2022. Probably those could be used
to replace the operation (of course, that would limit one to compilers
supporting that part of Ada 2022; dunno if anyone is doing that yet).

Randy.


0 new messages