.NET wrapper for Gtk and other related libraries
Find a file
zii-dmg 0c5bd3f471
Fixed glib source double removal (#327)
Fixed glib source double removal then using Source.Remove (Timeout.Remove, Idle.Remove).
I don't know if fix is correct or safe, but it solves problem that you can test in TimerDemo section from samples.

Repro:
If on Windows you should enable console in samples: <OutputType>Exe</OutputType>
Go to TimerDemo section and press buttons:

1. Add timer
2. Remove timer by handler
3. GC - no error in console

1. Add timer
2. Remove timer
3. GC - error in console "GLib-CRITICAL **: 20:29:41.579: Source ID 123 was not found when attempting to remove it"
2022-01-27 21:49:10 +01:00
.config Use GitHub Actions as CI (#319) 2022-01-26 18:50:22 +01:00
.github/workflows Use GitHub Actions as CI (#319) 2022-01-26 18:50:22 +01:00
.vscode Setup Samples base 2018-01-20 20:09:27 +01:00
CakeScripts Use GitHub Actions as CI (#319) 2022-01-26 18:50:22 +01:00
Source Fixed glib source double removal (#327) 2022-01-27 21:49:10 +01:00
.gitattributes WIP CAKE + .Net Core 2017-10-23 01:25:13 +02:00
.gitignore Add .DS_Store to .gitignore 2022-01-26 21:30:17 +01:00
AUTHORS Fix file permissions, how did this happen? 2018-02-26 23:03:31 +01:00
build.cake Upgrade CAKE build system (#325) 2022-01-26 21:15:32 +01:00
cake.config Use GitHub Actions as CI (#319) 2022-01-26 18:50:22 +01:00
LICENSE Fix file permissions, how did this happen? 2018-02-26 23:03:31 +01:00
README.md Update README.md 2022-01-26 18:50:44 +01:00

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 completely separately 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 6 installed on the system.

To build the repository, simply do:

git clone https://github.com/GtkSharp/GtkSharp.git
cd GtkSharp
dotnet tool restore
dotnet cake build.cake

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.