.NET wrapper for Gtk and other related libraries
Go to file
Thibault Saunier 9539c0b17b Fix licence file, it should always have been LGPL not GPL
This was an issue when reorganising files.
2017-09-21 00:10:42 +02:00
Source Build the assembly data file as required 2017-09-20 12:15:50 -03:00
.gitattributes Add a .gitattributes file to have git keep CRLF endings in *.sln files 2015-05-25 17:03:31 +02:00
.gitignore Remove autotools 2017-09-06 18:35:44 +02:00
AUTHORS Quick Reorganization 2017-09-04 22:36:28 -03:00
GENERATOR.md Quick Reorganization 2017-09-04 22:36:28 -03:00
LICENSE Fix licence file, it should always have been LGPL not GPL 2017-09-21 00:10:42 +02:00
meson.build meson: Require meson 0.43 or higher 2017-09-06 13:11:31 -03:00
meson_options.txt Add a meson.build file in the toplevel folder 2017-09-04 22:40:02 -03:00
README.md Remove autotools 2017-09-06 18:35:44 +02:00

The Gtk# website can be found at: http://www.mono-project.com/GtkSharp

Gtk# is a .NET language binding for the GTK+ toolkit and assorted GNOME libraries. Gtk# is free software, licensed under the GNU LGPL.

Building & Installing Gtk#:

Install the gtk-3 development headers first. On Debian, this can be done using:
apt-get install libgtk-3-dev

We are using [meson](http://mesonbuild.com/) as a build system, you can build with

    meson build/
    ninja -C build/

The gui-thread-check profiler module.

Since version 3 of gtk# a profiler called "gui-thread-check" is included as
part of the install for debugging purposes. (It's located in the subfolder
gtk/gui-thread-check .)

This profiler module can be used to check if a GTK# application is trying to
invoke gtk or gdk methods from a thread which is not the main GUI thread.

To use it, run your application with the command:

    mono --profile=gui-thread-check yourapp.exe

If the profiler is properly installed, you'll see an output like this:

    *** Running with gui-thread-check ***
    *** GUI THREAD INITIALIZED: 2861676352

While the application is running, if the profiler detects a non-gui thread
invoking gtk methods, it will print a warning message together with a
stack trace. For example:

    *** GTK CALL NOT IN GUI THREAD: Widget.gtk_widget_get_parent
       Widget.get_Parent
       SourceEditorWidget.SetLastActiveEditor
       SourceEditorWidget.get_TextEditor
       SourceEditorWidget.get_Document
       SourceEditorWidget.HandleParseInformationUpdaterWorkerThreadDoWork
       BackgroundWorker.OnDoWork
       BackgroundWorker.ProcessWorker

Discussion & Support:

A mailing list for Gtk# discussion is available.

You can subscribe to the mailing list by visiting:

    http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

And following the instructions (on that page) to subscribe.
Messages are posted on this mailing list by sending them to:

    gtk-sharp-list@ximian.com

(The mailing list requires you to subscribe in order to post
messages.)

An archive of this mailing list can be found at:

    http://lists.ximian.com/archives/public/gtk-sharp-list/

Also, people can get help with and discuss Gtk# on IRC via the
#gtk# or #mono channels on the irc.gnome.org IRC server.

People looking for general help with C# should visit the
#c# channel on irc.freenode.net IRC server.

Developers:

For developers wishing to "get started" with Gtk#, they are encouraged
to read the Mono Hand Book:

    http://www.mono-project.com/docs/gui/gtksharp/

Hackers:

For those who wish to help with the development of Gtk#, they should
read the file named: HACKING.

Also, anyone wishing to hack Gtk# is encouraged to join the Gtk#
mailing list. And to visit the #gtk# IRC channel (on irc.gnome.org).