Gtk Fortran Versions Save

A GTK / Fortran binding

v4.6.0

3 weeks ago

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).

v4.5.0

6 months ago

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

v4.4.1

8 months ago

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).

v4.4.0

1 year ago

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.

v4.3.0

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

v4.2.1

2 years ago

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.

v4.2.0

2 years ago

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.

v3.24.31

2 years ago
  • 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.

v4.1.0

2 years ago

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).

v3.24.30

2 years ago

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