Releases: vmagnin/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 viagtk_about_dialog_set_logo()
. Contributed by Florian Ober.cfwrapper.py
: the gtk3 branch now also usesgtkenums-auto.in
andgtk-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, thecptr
length was erroneously calculated from the number of authors. Contributed by Florian Ober.
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 melodydemo_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 lineLibs:
was modified to fix a problem with the macOS linker (which is not GNU ld and does not accept the-R
option).
gtk-fortran 4.5.0
This release offers Fortran interfaces to GTK 4.12 and GLib 2.78.
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 insrc/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 likeconst char * const *
must be declared in Fortran astype(c_ptr), dimension(*) ::
, as they are arrays of C strings (previously, only**
was considered).
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.
- added a
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 thecfwrapper/cfwrapper.py
script.src/gtk-fortran_funptr.csv
: list of all thefunptr
types used in the prototypes of the C functions. Generated by thecfwrapper/cfwrapper.py
script, which will also print the number offunptr
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 anint64
kind used instead ofc_size_t
(forgssize
).examples/gio_demo.f90
: a_c_size_t
suffix added (for agssize
).implicit none
was added in all C/Fortran interfaces, as theimplicit 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.
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).
gtk-fortran 4.2.1
Fixed
- Issue #257:
examples/tests.f90
,examples/bazaar.f90
andsrc/gtk-fortran.f90
were crashing (segmentation fault) on macOS because the GLibg_get_os_info()
function returns NULL on that OS.
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
andgtkenums-auto.f90
are renamed with the.inc
extension.- Removed
mswindowsonly-auto.f90
andunixonly-auto.f90
, and addedapi_compatibility.f90
with the modulegtk_os_dependent
to keep API compatibility. plplot/plplot_extra_ndef.f90
renamedplplot_extra.f90
and moved tosrc/
.
examples/bazaar.f90
: the About button credits the authors of that file. The call togtk_about_dialog_set_license()
is replaced by the more convenientgtk_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 filecmake/DefaultFlags.cmake
was added. Backported to gtk3 branch. gtkbuilder2.f90
: replacedgtk_builder_add_from_file()
bygtk_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 ofc_null_ptr
. Needed with the NAG Fortran compiler. Backported to gtk3 branch.examples/tests.f90
: loop undefined with ifort. And now usesg_variant_unref()
.- Various bug fixes.
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 filecmake/DefaultFlags.cmake
was added. g_application_run()
should be called with an array[c_null_ptr]
as third argument instead ofc_null_ptr
. Needed with the NAG Fortran compiler.
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).