Recent Releases of gtk-fortran

gtk-fortran - gtk-fortran 4.8.0

This release offers interfaces to GTK 4.18 and GLib 2.84 (generated under Fedora 42 with GTK 4.18.4 and GLib 2.84.1).

Added

  • In examples/tests_gtk_sup.f90: added test_gvalue_routines().

Changed

  • CMake 3.10 is now required (it was released in Nov. 2017).

Fixed

  • src/gtk-sup.f90: the GValue structure is now defined as three 64 bits variables. It fixes the Windows issue #244. See the discussion in the gtk3 branch PR. Regression tests have been added in examples/tests_gtk_sup.f90.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 1 year ago

gtk-fortran - gtk-fortran 3.24.49

Offers Fortran interfaces to the latests GTK 3.24.49 and GLib 2.84.1 (generated with Fedora 42).

Added

  • examples/tests_gtk_sup.f90 backported from gtk4 branch.
  • src/gtk-sup.f90: the fdate() function was backported from gtk4 branch.

Changed

  • CMake 3.10 is now required (it was released in Nov. 2017).
  • Latest cfwrapper backported from gtk4 branch.

Fixed

  • cfwrapper:
    • the interfaces of 98 functions are fixed (Issue #290). In cfwrapper/fortran.py, the block treating the enums was not placed at the end of the iso_c_binding() function: first, C pointers toward enums were not recognized as pointers, and secondly enums having a name included in a GTK type name could cause bad bindings (for example GtkSelectionMode and GtkSelectionModel).
    • Variant and GVariantType types are now correctly used when declared with a double * in C. Issue #289.
  • gtk-sup.f90:
    • the GValue structure is now defined as three 64 bits variables. It fixes the Windows issue #244. See the discussion in the PR. Regression tests have been added in examples/tests_gtk_sup.f90.
    • Four dialog icons names updated: PR #293
  • src/gtk_hl_dialog.f90: if providing artists or documenters, the cptr length was calculated from the numbers of authors.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 1 year ago

gtk-fortran - gtk-fortran 4.7.1

Fixed

  • cfwrapper: the interfaces of 98 functions are fixed (Issue #290). In cfwrapper/fortran.py, the block treating the enums was not placed at the end of the iso_c_binding() function: first, C pointers toward enums were not recognized as pointers, and secondly enums having a name included in a GTK type name could cause bad bindings (for example GtkSelectionMode and GtkSelectionModel).

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 1 year ago

gtk-fortran - gtk-fortran 4.7.0

This release offers interfaces to GTK 4.16 and GLib 2.82 (generated under Fedora 41 with GTK 4.16.3 and GLib 2.82.2).

Added

  • src/gtk-hl-dialog.f90: can now manage the logo via gtk_about_dialog_set_logo(). Contributed by Florian Ober.
  • cfwrapper.py: the gtk3 branch now also uses gtkenums-auto.in and gtk-auto.in, following the fpm feature backport.

Fixed

  • cfwrapper: Variant and GVariantType types are now correctly used when declared with a double * in C. Issue #289.
  • src/gtk-hl-dialog.f90: if providing artists or documenters, the cptr length was erroneously calculated from the number of authors. Contributed by Florian Ober.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 1 year ago

gtk-fortran - gtk-fortran 4.6.0

This release offers interfaces to GTK 4.14 and GLib 2.80 (generated under Fedora 40 with GTK 4.14.2 and GLib 2.80.0).

Added

  • The examples/bazaar.f90 program plays a little melody demo_sound.ogg when you click on Button1, by using a GtkMediaStream. The GTK 4 GStreamer backend must be installed (libgtk-4-media-gstreamer package in Ubuntu). It was tested with .ogg, .wav and .mid files.

Changed

  • cmake/cmake_uninstall.cmake.in: improved the code layout.

Fixed

  • src/gtk-fortran.pc.in: the line Libs: was modified to fix a problem with the macOS linker (which is not GNU ld and does not accept the -R option).

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 2 years ago

gtk-fortran - gtk-fortran 4.5.0

This release offers Fortran interfaces to GTK 4.12 and GLib 2.78.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 2 years ago

gtk-fortran - gtk-fortran 4.4.1

Added

  • New types (enums) in src/cfwrapper/scan_types_and_enums.py, useful for other GNOME libraries.
  • Initializes types_enums.gtk_funptr list in src/cfwrapper/scan_types_and_enums.py with a few funptr types, and removes possibly duplicated ones.
  • examples/menubar.f90: an accelerator <Ctrl>q was added for quitting the application.

Changed

  • examples/bazaar.f90: modified the font and background of the textview.

Fixed

  • src/cfwrapper/fortran.py: declarations like const char * const * must be declared in Fortran as type(c_ptr), dimension(*) ::, as they are arrays of C strings (previously, only ** was considered).

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 2 years ago

gtk-fortran - gtk-fortran 4.4.0

This release offers interfaces to GTK 4.10.3 and GLib 2.76.2.

Added

  • examples/cairo-tests.f90 now draws the circle period-2 bulb and the main cardioid over the Mandelbrot set. More text is also put in the figure.
  • examples/cairo-basics.f90 now also saves the drawing in a SVG file and a PDF file.
  • screenshots/hl_cairo_viewer-fedora38.png: showing "modern Fortran" written with a New Alphabet font.
  • a new example has been added in the gtk-fortran-extra repository (MIT license). It is a gtk-fortran application to encode a text using Peter Saville's color code.
  • src/test_extra.sh: an interactive script to test projects gtk-fortran-extra and gtkzero_fpm before gtk-fortran release.
  • src/cfwrapper/ can be used more easily with other C libraries (see the tutorial):
    • added a -l option to add the directories containing the header files and a -m option to add the corresponding Fortran modules.
    • added a -s option to add a suffix to the functions names.
  • src/cfwrapper/run_tests.py: for testing some functions of the cfwrapper.
  • src/scan_types_and_enums.py: the pass 1 was refactored in that class.
  • src/gtk-fortran_types.csv: list of all the GLib / GTK types used in the prototypes of the C functions. Generated by the cfwrapper/cfwrapper.py script.
  • src/gtk-fortran_funptr.csv: list of all the funptr types used in the prototypes of the C functions. Generated by the cfwrapper/cfwrapper.py script, which will also print the number of funptr in its statistics.
  • LICENSE_EXCEPTION: the text of the GCC Runtime Library Exception, version 3.1. Note that this exception was chosen in 2011 and was already cited in the header of each source file with the URL of the GNU licenses. Putting the text in the repository is a better practice.

Changed

  • logo/: the blue color of the GTK cube, whose HSL (hue, saturation, lightness) values are (211, 49, 63), was replaced by a purple whose hue (270) is the same as the hue of the Fortran logo.
  • src/build.sh is now an interactive script proposing to build, test and install gtk-fortran. It uses the default Fortran compiler, then build and test with Intel ifx.
  • src/cfwrapper/cleaning.py: code cleaning and improved layout.

Fixed

  • examples/hl_cairo_viewer.f90: the image is now redrawn when the window is resized. And the "Next>" button becomes sensitive when a second file is added.
  • examples/menubar.f90: the compilation was failing on 32 bits systems, due to an int64 kind used instead of c_size_t (for gssize).
  • examples/gio_demo.f90: a _c_size_t suffix added (for a gssize).
  • implicit none was added in all C/Fortran interfaces, as the implicit none of the modules do no apply to the interfaces blocks. It will harden the code by allowing the compiler to verify more deeply the coherence of the interfaces generated by the Python wrapper.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 3 years ago

gtk-fortran - gtk-fortran 4.3.0

  • Fortran interfaces to GTK 4.8.2 and GLib 2.74.1.
  • Various bug fixes, minor improvements, code cleanup (see the CHANGELOG.md file).

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 3 years ago

gtk-fortran - gtk-fortran 4.2.1

Fixed

  • Issue #257: examples/tests.f90, examples/bazaar.f90 and src/gtk-fortran.f90 were crashing (segmentation fault) on macOS because the GLib g_get_os_info() function returns NULL on that OS.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 4 years ago

gtk-fortran - gtk-fortran 4.2.0

This release offers interfaces to GTK 4.6.2 and GLib 2.72.1.

Added

  • gtk-fortran can now be used as a simple fpm dependency (gtk4 branch only). See the gtkzero_fpm example. It implied some changes:
    • gtk-auto.f90 and gtkenums-auto.f90 are renamed with the .inc extension.
    • Removed mswindowsonly-auto.f90 and unixonly-auto.f90, and added api_compatibility.f90 with the module gtk_os_dependent to keep API compatibility.
    • plplot/plplot_extra_ndef.f90 renamed plplot_extra.f90 and moved to src/.
  • examples/bazaar.f90: the About button credits the authors of that file. The call to gtk_about_dialog_set_license() is replaced by the more convenient gtk_about_dialog_set_license_type().
  • A tutorials/ directory contains the GTK 4 sources used in the Wiki first tutorial.
  • src/gtk-fortran.f90: prints the GTK and GLib version of the release.
  • A conda repository for gtk-4-fortran.

Changed

  • Better handling of default compiler flags, using flags like CMAKE_Fortran_FLAGS_RELEASE_INIT (CMake>=3.7 required). A file cmake/DefaultFlags.cmake was added. Backported to gtk3 branch.
  • gtkbuilder2.f90: replaced gtk_builder_add_from_file() by gtk_builder_new_from_file().
  • The syntax was modernized in many places (Fortran 2008).

Fixed

  • g_application_run() should be called with an array [c_null_ptr] as third argument instead of c_null_ptr. Needed with the NAG Fortran compiler. Backported to gtk3 branch.
  • examples/tests.f90: loop undefined with ifort. And now uses g_variant_unref().
  • Various bug fixes.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 4 years ago

gtk-fortran - gtk-fortran 3.24.31

  • Based on GTK 3.24.31, GLib 2.72.1.
  • Better handling of default compiler flags, using flags like CMAKE_Fortran_FLAGS_RELEASE_INIT (CMake>=3.7 required). A file cmake/DefaultFlags.cmake was added.
  • g_application_run() should be called with an array [c_null_ptr] as third argument instead of c_null_ptr. Needed with the NAG Fortran compiler.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 4 years ago

gtk-fortran - gtk-fortran 4.1

Based on GTK 4.4.0 and GLib 2.70.0 and generated on Fedora 35.

Concerning gtk-fortran itself, under the hood the main change is that each interface now uses the import :: statement instead of use, intrinsic :: iso_c_binding, only: (although anecdotal, the overall size gain is 6% on the 9822 interfaces).

Concerning GTK 4.4, the novelties are listed in the GTK NEWS file, and main changes are presented in the GTK blog. For example, the GTK Inspector is now enabled by default (CTRL+SHIFT+D).

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 4 years ago

gtk-fortran - gtk-fortran 3.24.30

Based on GTK 3.24.30, GLib 2.68.4, generated under Fedora 34.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 4 years ago

gtk-fortran - gtk-fortran 3.24.28

We have also made a new release in the gtk3 branch, with GTK 3.24.28 and GLib 2.68. All the improvements included in gtk-fortran 3.24.28 (gtk3 branch) are also in gtk-fortran 4.0.

Note that the package names are gtk-3-fortran and gtk-4-fortran: installing both libraries on your machine is not a problem.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 5 years ago

gtk-fortran - gtk-fortran 4.0

Starting with that release, gtk-fortran will follow a classical semantic versioning (instead of following the GTK or Ubuntu versions): gtk-fortran 4.0 is based on GTK 4.2 and GLib 2.68.

The GTK 4 library is progressively arriving in all systems: Ubuntu 21.04, Fedora 33 & 34, Alpine Linux, ALT Linux Sisyphus, Arch Linux, KaOS, Mageia 8, NetBSD 9.1, OpenMandriva Rolling, openSUSE Tumbleweed. But concerning Debian, it is still in the experimental branch. Concerning Windows, GTK 4 is available in MSYS2.

See the CHANGELOG file for a summary of the new features since the April 2020 release, and the GTK Development Blog to know more about the numerous changes in GTK 4.

Note that the gtkf-sketcher tool has only been partially ported to GTK 4, as an essential API for that tool disappeared from GTK 4. And Glade is not yet ported to GTK 4.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 5 years ago

gtk-fortran - gtk-fortran v20.04.gtk3.24.18

gtk-fortran 20.04 is based on GTK 3.24.18 and GLib 2.64.2.

The main objective of this release was to prepare the future GTK 4 migration. A lot of clean-up has been made: scripts, build tools, examples (a lot of deprecated functions were removed)…

A gtk4 development branch has been created. The core of the library is ready for GTK 4 (3.98.3, available for example in Fedora 32). Some examples are already running. The big work will be to upgrade each example and the HL library and its examples. GTK 4 could be released at the end of this year. See: https://blog.gtk.org/

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 6 years ago

gtk-fortran - gtk-fortran v19.04.gtk2.24.32

Based on GTK 2.24.32, GLib 2.60.0, generated with Ubuntu 19.04 x86_64, PLplot<=5.10.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 7 years ago

gtk-fortran - gtk-fortran v19.04.gtk3.24.8

Based on GTK 3.24.8, GLib 2.60.0, generated with Ubuntu 19.04 x86_64, PLplot>=5.13.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin about 7 years ago

gtk-fortran - v17.10.gtk3.22.25_2

This release corresponds to the JOSS paper and will be archived in Zenodo.

Scientific Software - Peer-reviewed - Fortran
Published by vmagnin over 7 years ago