Releases: gircore/gir.core
0.6.2
This is a follow up release to preview.1. Please be aware that this release includes several breaking changes.
The release 0.6.0 / 0.6.1 were skipped as there were problems with the publishing of the nugets:
- For 0.6.0 the new
GObject-2.0.Integration
package had an empty symbol package which resulted in an upload error. - For 0.6.1 there were nuget packages created for the tutorial projects which were missing nuget informations thus resulting in an upload error.
The partially uploaded packages got unlisted. This is the reason why this release has the version number 0.6.2.
Notworthy
Since 0.6.0-preview.1
- Support for .NET 9.0 added. Support for .NET 6.0 and .NET 7.0 got removed.
- Rework of the
GObject.Object
instantiation process. Those changes remove the reflection code for object instantiation and subclassing. This brings NativeAOT support a lot closer. - Internal: Support individual SafeHandles for classes allowing to report native memory consumption. This improves the garbage collection behavior of the dotnet runtime as classes like
Gdk.Pixbuf
tend to reference large portions of native memory.
0.6.0-preview.1
- Update to GNOME 47 which includes GTK 4.16 and libadwaita 1.6.
- The dummy implementation of
INotifyPropertyChanged
onGObject.Object
was removed. - Propertydefinitions have a new
Notify
/Unnotify
method which simplifies registration for property specific notifications. For details see the FAQ. - The size of the C
long
datatype on windows is now always 32 bit. On unix it corresponds to 64 / 32 bit depending on the system architecture. In earlier releases it was always 64 bit which was only correct for 64 bit unix systems. - The size of C
gsize
is now equivalent tonint
. In earlier releases it was equal tolong
which was wrong on 32 bit based systems. - Fixed implementation of the memory pressure feature of records. In earlier releases memory pressure was only removed if
Dispose
was called. Now memory pressure is released automatically for records. The feature is not yet implemented for classes and will be part the full 0.6.0 release. - First steps to publish the GirCore generator as a
dotnet tool
.
Breaking changes
Changed public APIs
- Obsolete interface
GLib.IHandle
got removed - Obsolete interface
GObject.IObject
got removed GObject.Object
new primary constructor requires aObjectHandle
.protected
constructors usingConstructArgument[]
orIntPtr
got removed.GObject.Object
methodprotected virtual void Initialize()
got removed. To execute instance initialization either use a custom constructor or customObjectHandle
.GdkPixbuf.PixbufLoader.FromBytes
got removed as it was a purely cosmetic helper function which is not available as native code. The following code shows the corresponding code to recreate the original behavior:
using var bytes = Bytes.New(data);
var pixbufLoader = PixbufLoader.New();
pixbufLoader.WriteBytes(bytes);
pixbufLoader.Close();
var pixbuf = pixbufLoader.GetPixbuf() ?? throw new Exception("No pixbuf loaded");
Subclass changes
To implement reflection free instantiation and subclassing the data which the reflection based code retrieved during runtime must be available during compile time to register the class with the GObject typesystem. This is done automatically for all classes which are part of the GirCore nuget packages. If custom classes inherit from some GObject.Object
this code must be written otherwise the new class is not properly registered with the GObject typesystem.
The boiler plate code needed to properly register a class can be completly avoided if the new nuget package GObject-2.0.Integration is used. This package provides a source generator which generates the needed code if the SubclassAttribute
is set on the custom GObject subclass. Please see the following sample and refer to the FAQ:
[Subclass<GObject.Object>]
public partial class Data
{
public string? MyString { get; set; }
public Data(string myString) : this()
{
MyString = myString;
}
}
What's Changed
- Remove INotifyPropertyChanged by @badcel in #1061
- Property: Add Notify / Unnotify methods by @badcel in #1062
- Improve long handling for structs by @badcel in #1065
- Remove duplicate semicolon in return statements by @adamreeve in #1068
- Map "gssize" to native integers by @badcel in #1069
- Improve long handling 2 by @badcel in #1067
- Add nullable annotation to nullable string array parameters in internal methods by @adamreeve in #1079
- Disable rendering code for repositories only required via includes by @adamreeve in #1086
- documenting System.DllNotFoundException troubleshooting by @lamg in #1085
- Improve struct freeing by @badcel in #1072
- Improve logging by @badcel in #1093
- Support loading repositories from files embedded as resources in GirTool by @adamreeve in #1091
- Readme: Update status by @badcel in #1096
- Generator: Support opaque typed records with copy / free annotations by @badcel in #1088
- Support copy annotation typed records by @badcel in #1103
- Add new modifier to class methods that hide base class methods by @adamreeve in #1097
- Add DBus sample to read desktop appearance color scheme by @badcel in #1110
- Foreign typed records: Implement IDisposable by @badcel in #1112
- Foreign typed records: Require to implement a handle release manually by @badcel in #1113
- Opaque typed records: Support adding memory pressure by @badcel in #1114
- ImageSurface: Support memory pressure by @badcel in #1115
- GObject.Type: Mark struct as readonly and make it a record by @badcel in #1117
- Improve alias support by @badcel in #1119
- GObject.Type: Add IsFundamental method by @badcel in #1123
- Differentiate between Long and CLong by @badcel in #1126
- Object: Fix ToggleNotify called after callback is disposed by @badcel in #1128
- Update gir files by @badcel in #1132
- Refactor GdkPixbuf-2.0.Tests by @badcel in #1133
- Update macos runner to version 14 by @badcel in #1134
- Initial hello world tutorials by @anthonyirwin82 in #1139
- Box Layout Tutorial by @anthonyirwin82 in #1143
- Move ChooseAsync method to correct class by @badcel in #1150
- Support class based safe handles by @badcel in #1118
- Tutorial: Use project reference instead of package reference by @badcel in #1152
- Class: Add public constructor which support ConstructArguments by @badcel in #1164
- Class: Add primary constructor by @badcel in #1165
- Add GObject-2.0.Integration.csproj by @badcel in #1158
- Update dependencies by @badcel in #1173
- GObject-2.0.Integration: Disable snupk generation by @badcel in #1176
- Do not publish tutorial projects by @badcel in #1179
New Contributors
- @adamreeve made their first contribution in #1068
- @lamg made their first contribution in #1085
- @anthonyirwin82 made their first contribution in #1139
Full Changelog: 0.5.0...0.6.2
0.6.0-preview.1
This release is the first preview of the upcoming 0.6.0 release. To get an overview of the planned features of the 0.6.0 release please see the corresponding milestone.
Notworthy
- Update to GNOME 47 which includes GTK 4.16 and libadwaita 1.6.
- The dummy implementation of
INotifyPropertyChanged
onGObject.Object
was removed. - Propertydefinitions have a new
Notify
/Unnotify
method which simplifies registration for property specific notifications. For details see the FAQ. - The size of the C
long
datatype on windows is now always 32 bit. On unix it corresponds to 64 / 32 bit depending on the system architecture. In earlier releases it was always 64 bit which was only correct for 64 bit unix systems. - The size of C
gsize
is now equivalent tonint
. In earlier releases it was equal tolong
which was wrong on 32 bit based systems. - Fixed implementation of the memory pressure feature of records. In earlier releases memory pressure was only removed if
Dispose
was called. Now memory pressure is released automatically for records. The feature is not yet implemented for classes and will be part the full 0.6.0 release. - First steps to publish the GirCore generator as a
dotnet tool
.
What's Changed
- Remove INotifyPropertyChanged by @badcel in #1061
- Property: Add Notify / Unnotify methods by @badcel in #1062
- Improve long handling for structs by @badcel in #1065
- Remove duplicate semicolon in return statements by @adamreeve in #1068
- Map "gssize" to native integers by @badcel in #1069
- Improve long handling 2 by @badcel in #1067
- Add nullable annotation to nullable string array parameters in internal methods by @adamreeve in #1079
- Disable rendering code for repositories only required via includes by @adamreeve in #1086
- documenting System.DllNotFoundException troubleshooting by @lamg in #1085
- Improve struct freeing by @badcel in #1072
- Improve logging by @badcel in #1093
- Support loading repositories from files embedded as resources in GirTool by @adamreeve in #1091
- Readme: Update status by @badcel in #1096
- Generator: Support opaque typed records with copy / free annotations by @badcel in #1088
- Support copy annotation typed records by @badcel in #1103
- Add new modifier to class methods that hide base class methods by @adamreeve in #1097
- Add DBus sample to read desktop appearance color scheme by @badcel in #1110
- Foreign typed records: Implement IDisposable by @badcel in #1112
- Foreign typed records: Require to implement a handle release manually by @badcel in #1113
- Opaque typed records: Support adding memory pressure by @badcel in #1114
- ImageSurface: Support memory pressure by @badcel in #1115
- GObject.Type: Mark struct as readonly and make it a record by @badcel in #1117
- Improve alias support by @badcel in #1119
- GObject.Type: Add IsFundamental method by @badcel in #1123
- Differentiate between Long and CLong by @badcel in #1126
- Object: Fix ToggleNotify called after callback is disposed by @badcel in #1128
- Update gir files by @badcel in #1132
- Refactor GdkPixbuf-2.0.Tests by @badcel in #1133
- Update macos runner to version 14 by @badcel in #1134
New Contributors
- @adamreeve made their first contribution in #1068
- @lamg made their first contribution in #1085
Full Changelog: 0.5.0...0.6.0-preview.1
0.5.0
This release is the final version of the 0.5.0 release. This is a follow up release to preview.4.
Notworthy
Since 0.5.0-preview.4
- All bindings were updated to support the GNOME SDK version 46. Among other things this adds support for GTK 4.14 and libadwaita 1.5. (#1052)
- The libraries get build explicitly for .NET 8 (#1038). Remark: If support for .NET 6 / 7 is dropped those versions will get droped from GirCore with the following release, too
- preview.4 added support for typed records but was missing a parameterless constructors. (#1002 )
- Support for foreign records was added (#1010 )
- Support for untyped records was added (#1013)
- Support for untyped foreign records was added (#1029)
- New samples for GTK were created by @kashifsoofi (#1022, #1024)
- A bug was fixed if an object was not freed on main thread (#1045)
- A bug was fixed if an interface was passed as a parameter into a method / function (#1055)
- The homepage got updated with new content and a new docfx version (#1039, #1040)
0.5.0-preview.4
- This release adds support for typed records constructors, methods, functions and fields. Previously in the public record API there was only the record type available without any possibility to access it's data. If you used some custom code to access this data please verify if you can replace this code with the newly available API. In general the available API surface should have improved significantly. (#965, #985, #986, #994)
- The generation of typed records lead to several API breaks in the
GObject
namespace especially for the classGObject.Value
. Those manually written methods originated from the very beginning of the project which were leaning into the direction to divert a lot farther from the original API. API breaks happened in other namespaces, too as manually written bindings got replaced by generated bindings which often have a slightly different method signature. (#981, #982, #991) - Enumerations got rebased on
int
instead oflong
to match their C definition. (#989) - More bindings for
async
methods (#993)
0.5.0-preview.3
- Update to the latest Gnome SDK version 45. This includes GTK 4.12 and Libadwaita 1.4
- Improved API surface for opaque records which are not registered in the GObject type system.
0.5.0-preview.2
- More bindings for
async
methods (#953). - The parameterless
Gio.Application.Run
method got removed as it is not part of the official Gio Api. AdditionallyGio.Application.RunWithSynchronizationContext
now has a parameter to provide arguments. To achieve the original behaviour just passnull
as a parameter (#956). - Fixed a bug introduced in preview.1 which caused an exception if an opaque typed record was used in a
GObject.Value
(#959).
0.5.0-preview.1
- The Gtk-4.0.DependencyInjection project was removed as there is not one way to do dependency injection right. Every project needs to find it's own solution.
- Improved API surface for opaque records which are registered as boxed types with the GObject type system.
What's Changed since 0.5.0-preview.4
- Small fixes by @badcel in #1005
- Avoid marshalling of instance data by @badcel in #1007
- Value: Avoid marshalling by @badcel in #1008
- Support foreign records by @badcel in #1010
- Typed Record: Add parameterless constructor by @badcel in #1002
- Fix warnings by @badcel in #1011
- Properties by @badcel in #1014
- Lazy parameter expressions by @badcel in #1020
- ListView sample with code only and ListItem template by @kashifsoofi in #1022
- GridView Sample with StringList and CustomObject ListStore by @kashifsoofi in #1024
- Add support for untyped records by @badcel in #1013
- Support foreigen untyped records by @badcel in #1029
- Remove legacy record code by @badcel in #1028
- Generator: Remove obsolete record class by @badcel in #1030
- Generator: Generate property descriptors for boxed records by @badcel in #1031
- Test: Add Variant test which uses VariantIter and VariantBuilder by @badcel in #1033
- Seal record types by @badcel in #1037
- Dotnet 8 by @badcel in #1038
- Document how to handle DllNotFoundException by @badcel in #1039
- Add documentation to gir.core repository by @badcel in #1040
- Tests: Add string array tests by @badcel in #1041
- ToggleRef: Remove toggle ref on main context by @badcel in #1045
- Typed Records: Implement IEquality via pointer comparison by @badcel in #1047
- Opaque typed Records: Implement IEquality via pointer comparison by @badcel in #1048
- Opaque untyped Records: Implement IEquality via pointer comparison by @badcel in #1049
- Untyped records: Implement IEquality via pointer comparison by @badcel in #1050
- Gnome sdk 46 by @badcel in #1052
- Handle parameter ownership transfer for interfaces by @badcel in #1055
- Fundamental types: Support returning a null value by @badcel in #1056
Full Changelog since 0.4.0: 0.4.0...0.5.0
0.5.0-preview.4
This release is the fourth preview of the upcoming 0.5.0 release. This is a follow up release to preview.3.
Noteworthy:
- This release adds support for typed records constructors, methods, functions and fields. Previously in the public record API there was only the record type available without any possibility to access it's data. If you used some custom code to access this data please verify if you can replace this code with the newly available API. In general the available API surface should have improved significantly. (#965, #985, #986, #994)
- The generation of typed records lead to several API breaks in the
GObject
namespace especially for the classGObject.Value
. Those manually written methods originated from the very beginning of the project which were leaning into the direction to divert a lot farther from the original API. API breaks happened in other namespaces, too as manually written bindings got replaced by generated bindings which often have a slightly different method signature. (#981, #982, #991) - Enumerations got rebased on
int
instead oflong
to match their C definition. (#989) - More bindings for
async
methods (#993)
If you encounter any errors, missing features or encounter problems to adopt to the new version please open an issue.
Important
There is currently no public
parameterless constructor available for typed records. To create a new instance of a typed record you need to create a managed handle first. For example to create an instance of Gdk.Rgba
it would be: new Gdk.RGBA(RGBAManagedHandle.Create())
. There will be a new parameterless constructor in the next version.
What's Changed
- GValue: Support setting a string array by @badcel in #981
- GValue: Support setting an enumeration / bitfield by @badcel in #982
- Bump Serilog.Sinks.Console from 5.0.0 to 5.0.1 in /src/GirTool by @dependabot in #983
- GirModel: Add field writable property by @badcel in #985
- Make struct fields readable by default by @badcel in #986
- Rebase enumerations on integer datatypes by @badcel in #989
- Support boxed records by @badcel in #965
- Update dependencies by @badcel in #990
- GValue.GetStringArray: Ensure type before accessing data by @badcel in #991
- Add Async FontDialog methods and sample by @kashifsoofi in #993
- Move GirTool, Integration folders and props files by @kashifsoofi in #995
- TypedRecord: Add field access by @badcel in #994
- Update GirCore.sln by @badcel in #998
New Contributors
- @kashifsoofi made their first contribution in #993
Full Changelog: 0.5.0-preview.3...0.5.0-preview.4
0.5.0-preview.3
This release is the third preview of the upcoming 0.5.0 release. This is a follow up release to preview.2.
Noteworthy:
- Update to the latest Gnome SDK version 45. This includes GTK 4.12 and Libadwaita 1.4
- Improved API surface for opaque records which are not registered in the GObject type system.
What's Changed
- Prefer zero terminated string array over length based arrays. by @badcel in #962
- Support opaque untyped records by @badcel in #942
- Update dependencies by @badcel in #972
Full Changelog: 0.5.0-preview.2...0.5.0-preview.3
0.5.0-preview.2
This release is the second preview of the upcoming 0.5.0 release. This is a follow up release to preview.1.
Noteworthy:
- More bindings for
async
methods (#953). - The parameterless
Gio.Application.Run
method got removed as it is not part of the official Gio Api. AdditionallyGio.Application.RunWithSynchronizationContext
now has a parameter to provide arguments. To achieve the original behaviour just passnull
as a parameter (#956). - Fixed a bug introduced in preview.1 which caused an exception if an opaque typed record was used in a
GObject.Value
(#959).
What's Changed
- Improve "Libraries" section description by @UrtsiSantsi in #940
- Cleanup opaque record code by @badcel in #941
- Bump actions/checkout from 3 to 4 by @dependabot in #943
- Fix nullable class parameters in callbacks by @badcel in #948
- Refer to the API documentation by @UrtsiSantsi in #951
- Add more manual bindings for async functions by @fsobolev in #953
- Add RunWithSynchronizationContext with arguments by @fsobolev in #956
- Improve null terminated string array handling by @badcel in #952
- Fix wrapping opaque typed records by @badcel in #959
Full Changelog: 0.5.0-preview.1...0.5.0-preview.2
0.5.0-preview.1
This release is the first preview of the upcoming 0.5.0 release.
Noteworthy:
- The Gtk-4.0.DependencyInjection project was removed as there is not one way to do dependency injection right. Every project needs to find it's own solution.
- Improved API surface for opaque records which are registered as boxed types with the GObject type system.
What's Changed
- Remove projects related to dependency injection by @badcel in #904
- Add manual bindings for async functions by @fsobolev in #903
- Improve exception handling by @badcel in #906
- Improve struct generation by @badcel in #907
- Fix generic gobject types by @hol430 in #910
- Fix slnf file by @badcel in #912
- Integrate glib gobject by @badcel in #914
- Enable unit tests on more platforms by @badcel in #913
- Add constructor renderer by @badcel in #918
- Support transfer none return strings in callbacks by @badcel in #920
- Support inout array length parameter by @badcel in #922
- Update CI by @badcel in #923
- Add missing inheritence from Test class by @badcel in #926
- Add InstanceParameterToNativeExpression by @badcel in #927
- Render internal instance parameter information by @badcel in #928
- Support opaque records by @badcel in #908
- Support array length parameters in public constructors by @badcel in #933
- Update nugets by @badcel in #934
- Make Module class static by @UrtsiSantsi in #936
- Copy test image to output folder by @UrtsiSantsi in #935
New Contributors
- @UrtsiSantsi made their first contribution in #936
Full Changelog: 0.4.0...0.5.0-preview.1
0.4.0
This release features a lot of improvements all over the board and several new contributors which is very much appreciated.
Noteworthy:
- Lot's of improvements in regard to strings, callbacks, primitive value types and arrays which should improve the available API quite a bit. This includes support for
Span<T>
in the API to allow writing code without memory duplication if data is exchanged between .NET and native binaries. - Constants are now generated as
const
instead ofstatic readonly
- Several methods can now have the same name if it is defined in the gir file. This means that some existing APIs got a different name.
- Support for C aliases. If a C library defines an alias a struct is generated to represent the alias. This makes the API more readable as the C# API does not need fall back to the underlying type anymore. There are implicit casts in place which should make it easy to continue to pass in primitive types into such parameters.
- Properties clashing with it's containing class name were not generated before. Now they get generated and receive a suffix (_).
- It is now possible to catch exceptions inside callbacks. Beforehand those were crashing the application. Now it is possible to use
GLib.UnhandledException.SetHandler()
to handle any unhandled exception. - There are now bindings for GtkSourceView available including some simple sample.
- Windows: It is now obsolete to explicitly set the apartment state to
STA
in an application. This is done automatically during initialization if the operating system is windows. - It is possible to explicitly enable a
SynchronizationContext
to integrateasync
methods withGLib.MainLoop
to avoid manual dispatching of code back into the main thread of GLib. This can be used either viaGLib.MainLoop.RunWithSynchronizationContext()
orGio.Application.RunWithSynchronizationContext()
. - WebKit2-5.0 got replaced by WebKit-6.0 which introduces some API changes. The samples were updated accordingly.
- Update to LibAdwaita 1.3
- Update to Gtk 4.10
What's Changed
- Rename Signal.Connect parameter by @fsobolev in #794
- Add more comprehensive support for primitive value type parameters by @cameronwhite in #795
- GError support by @cameronwhite in #798
- Lock collections on write access as those methods are not thread safe by @badcel in #801
- Remove some unnecessary manual bindings by @cameronwhite in #804
- Improve handling of string parameters by @cameronwhite in #803
- Update manual Cairo bindings for string parameters by @cameronwhite in #816
- Fix null return of GObject.Value.GetString by @badcel in #813
- Support string parameters with direction=out by @cameronwhite in #818
- Apps - Add Tube Converter by @nlogozzo in #819
- GirModel: Support variadic parameters by @badcel in #808
- Render constants as 'const' rather than 'static' values by @cameronwhite in #824
- Bump josStorer/get-current-time from 2.0.2 to 2.1.0 by @dependabot in #825
- Support shadows attribute by @badcel in #802
- Bump josStorer/get-current-time from 2.1.0 to 2.1.1 by @dependabot in #827
- Refactor internal instance parameter renderer by @badcel in #829
- Removed fallback return type renderer by @hol430 in #807
- Refactor internal parameters renderer by @badcel in #832
- Refactor internal return type renderer by @badcel in #833
- Rename classes by @badcel in #834
- Refactor public parameter renderers by @badcel in #835
- Refactor internal field renderer by @badcel in #836
- Bump OneOf from 3.0.223 to 3.0.243 in /src/GirTool by @dependabot in #828
- Support aliases by @badcel in #826
- Generate aliases by @badcel in #841
- Fix string double free bug in case of full ownership transfer by @badcel in #848
- Render properties which are named like it's containing class by @badcel in #850
- Bump peter-evans/create-pull-request from 4 to 5 by @dependabot in #849
- Disable method if annotations are wrong by @badcel in #852
- Slightly improved support for GPtrArray by @hol430 in #839
- Refactor parameter to managed expressions by @badcel in #855
- Avoid printing to the console when registering a GType. by @cameronwhite in #858
- Fix nullable warnings for interface parameters. by @cameronwhite in #859
- gtksourceview bindings by @hol430 in #790
- Allows to add an exception handler for unhandled exceptions by @badcel in #861
- Add tests for callbacks. by @cameronwhite in #862
- Manual GLib implementations by @badcel in #863
- Implement SynchronizationContext for GLib by @ultimaweapon in #856
- Set the main thread's apartment state when initializing GDK by @cameronwhite in #869
- Improve callback model by @badcel in #872
- Sync'ed dependencies in csproj/gir/Module.cs by @fogzot in #875
- Bump OneOf from 3.0.243 to 3.0.255 in /src/GirTool by @dependabot in #880
- Bump Serilog from 2.12.0 to 3.0.1 in /src/GirTool by @dependabot in #881
- Improve byte array and callback support by @badcel in #851
- Added doc comments for all Module.cs files by @fogzot in #887
- Generalize GLib pointer array handling by @badcel in #890
- Support pointed bitfields by @badcel in #891
- Workaround record array problem by @badcel in #892
- Apps - Rename Tube Converter, add Tagger and Cavalier by @fsobolev in #894
- Add signal tests by @badcel in #897
- Update to webkit 6 by @badcel in #889
- Update nuget packages by @badcel in #899
New Contributors
- @fsobolev made their first contribution in #794
- @nlogozzo made their first contribution in #819
- @hol430 made their first contribution in #807
- @ultimaweapon made their first contribution in #856
- @fogzot made their first contribution in #875
Full Changelog: 0.3.0...0.4.0
0.3.0
This release features a new nuget package WebKit2 and it's depending libraries. Check out the WebKit samples to get a first impression. There was a new C testing library written by @cameronwhite, several bugs were squashed and new API was made available.
Noteworthy:
- Explicit support for .NET 7. If you use this version with .NET 7 some reflection code is not executed in contrast to .NET 6.
- Classes now have a static
GetGType
method #753 - Support for detailed signals via
GObject.Signal.Connect
method #752
What's Changed
- Update gir files by @github-actions in #711
- Create apps.md by @badcel in #750
- Several improvements by @badcel in #751
- Remove incomplete manual binding for TimeoutAddFull by @cameronwhite in #760
- Generator: Render GetGType function by @badcel in #753
- Closure: Handle null pointer for return value by @badcel in #762
- Support detailed signals by @badcel in #752
- Add webkitgtk by @badcel in #746
- Add a C test library for easier testing of the generated bindings by @cameronwhite in #764
- Simplify string helper by @badcel in #769
- Add IDisposable to Glib.Dir by @fleimeris in #770
- Generator: Use explicit interface implementations by @badcel in #772
- Move StrvGetType into internal namespace by @fleimeris in #774
- Fix overusing of new keyword by @fleimeris in #778
- Support using a GLib.Variant in a GObject.Value by @cameronwhite in #779
- Bump Scriban from 5.5.2 to 5.6.0 in /src/Integration by @dependabot in #786
- Handle ownership transfer for GObject parameters by @cameronwhite in #787
- Add test for ownership transfers by @badcel in #788
- Support signals returning a value by @badcel in #775
New Contributors
- @fleimeris made their first contribution in #770
Full Changelog: 0.2.0...0.3.0
0.2.0
This release features initial support for interfaces, support for global and class functions, updated gir files (support for libadwaita 1.2), more cairo bindings and several bugfixes and code cleanups.
Noteworthy:
- Module initialization is now done automatically if GIO / GTK /Adw Application is used #701
- Object indexers to connect signals got removed #726
What's Changed
- Improve module initialization by @badcel in #701
- Refresh gir files by @badcel in #703
- Move call handler classes into internal namespace by @badcel in #707
- Render interface properties by @badcel in #708
- Split fixers into several classes by @badcel in #712
- Support interface types by @badcel in #714
- Support nullable interface / class return types by @badcel in #715
- Update nuget packages by @badcel in #716
- Cleanup properties by @badcel in #719
- Move property code into separate class by @badcel in #720
- Refactor signals by @badcel in #721
- Fix a couple issues with string (array) parameters by @cameronwhite in #725
- Remove signal indexers by @badcel in #726
- Disable enum parameters that have a pointer type but a direction of 'in' by @cameronwhite in #729
- Add binding for cairo_image_surface_get_data() by @cameronwhite in #723
- Fix errors with marshalling record array parameters. by @cameronwhite in #728
- Disable string parameters with a direction of inout by @cameronwhite in #733
- GirModel: Remove unused code by @badcel in #734
- Support global functions by @cameronwhite in #724
- Support interface functions by @badcel in #727
- Bump Scriban from 5.5.1 to 5.5.2 in /src/Integration by @dependabot in #738
- Support class functions by @badcel in #737
Full Changelog: 0.1.0...0.2.0