0daa985316
This method performs a GetRawObject, but also increases the refcount. This is (at least) needed in cases where you wish to have a class inherting a widget, and use a builder in the constructor : base (builder.GetRawObject("name")) Because no ref is taken the eventual freeing of the builder will cause the our object (this) to have a refcount 0. This is an issue since the freeing of our ToggleRef (which should happen later) performs an unref. |
||
---|---|---|
.vscode | ||
CakeScripts | ||
Source | ||
tools | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
azure-pipelines.yml | ||
build.cake | ||
build.ps1 | ||
build.sh | ||
LICENSE | ||
README.md |
GtkSharp
GtkSharp is a C# wrapper for Gtk and its related components. The component list includes the following libraries: glib, gio, cairo, pango, atk, gdk. This is a fork of https://github.com/mono/gtk-sharp and is maintained completly separatly from that project.
Differences can be seen with the following table:
Target framework | Target Gtk Version | Extra notes | |
---|---|---|---|
GtkSharp | .NET Standard 2.0 | Gtk 3.22 | Does not need glue libraries. |
mono/gtksharp | .NET Framework 4.5 | Gtk 2 (also Gtk 3.0 but never officially released) |
Building from source
Pre requirements for building from source are that you have .Net Core and msbuild installed on the system.
To build the repository, first clone it:
git clone https://github.com/GtkSharp/GtkSharp.git
cd GtkSharp
and then simply run either .\build.ps1
or ./build.sh
depending your operating system. If you have Cake installed as a .NET global tool just run dotnet-cake
.
If you wish to generate the nuget packages simply add the --BuildTarget=PackageNuGet
as an argument when calling the build script.
A breakdown on how the source is structured:
- Tools that are needed to generate wrapper code are found in Tools folder
- The actual wrappers code is found in Libs folder
- Templates are located in Templates folder
- Build script is separated between build.cake and CakeScripts folder
Using the library
On macOS, you'll need to manually install Gtk, see Installing Gtk on Mac wiki page for more details on how to do it.
Available NuGet packages:
To create a new gtk app project, simply use dotnet new
templating engine:
- install:
dotnet new --install GtkSharp.Template.CSharp
- uninstall:
dotnet new --uninstall GtkSharp.Template.CSharp
- generate project:
dotnet new gtkapp
License
GtkSharp and its related components are licensed under LGPL v2.0 license, while Samples are licenced under The Unlicense.