.NET wrapper for Gtk and other related libraries
Go to file
2017-10-04 16:37:27 -03:00
Source fixup: Allow specifying max number of matches to patch attributes for 2017-10-04 16:37:27 -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 Add base gtk# md addin (#8) 2017-09-23 11:38:43 -03:00
.travis.yml Add travis builds 2017-09-26 02:30:38 +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 Make project name match new repo name 2017-09-26 13:57:17 +02:00
meson_options.txt Add a meson.build file in the toplevel folder 2017-09-04 22:40:02 -03:00
README.md Add Gitter badge (#14) 2017-09-25 22:49:24 -03: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#:

Join the chat at https://gitter.im/GLibSharp/GtkSharp

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).