• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

atk/H03-May-2022-4,9834,487

cairo/H03-May-2022-6,8463,986

doc/H03-May-2022-314,192310,827

gdk/H03-May-2022-10,9509,452

generator/H03-May-2022-12,2699,062

gio/H03-May-2022-15,16314,763

glib/H03-May-2022-12,2178,880

gtk/H03-May-2022-43,30239,121

gtkdotnet/H03-May-2022-875699

m4/H06-Jun-2014-8,6307,772

msi/H03-May-2022-3,1122,881

pango/H03-May-2022-6,7435,364

parser/H03-May-2022-2,4102,014

sample/H03-May-2022-16,95113,432

sources/H03-May-2022-850751

AUTHORSH A D05-Jun-20141.6 KiB9997

AssemblyInfo.cs.inH A D18-Aug-2013145 64

COPYINGH A D18-Aug-201324.7 KiB481398

HACKINGH A D18-Aug-2013930 2517

Makefile.amH A D06-Jun-2014228 119

Makefile.inH A D03-May-202226.2 KiB852756

Makefile.includeH A D06-Jun-20143.4 KiB8366

NEWSH A D06-Jun-201410.7 KiB282213

READMEH A D05-Jun-20143.5 KiB11071

README.generatorH A D21-Dec-20122.9 KiB6648

TODOH A D18-Aug-2013187 75

aclocal.m4H A D06-Jun-201448.2 KiB1,3511,224

compileH A D02-Jan-20147.2 KiB348258

config.guessH A D11-Aug-201344.2 KiB1,5591,352

config.h.inH A D06-Jun-20141.8 KiB7248

config.subH A D11-Aug-201334.7 KiB1,7921,654

configureH A D03-May-2022472.1 KiB16,11313,474

configure.acH A D06-Jun-20148 KiB327283

depcompH A D02-Jan-201423 KiB792502

gapi.xsdH A D05-Jun-201416.5 KiB365330

install-shH A D02-Jan-201413.7 KiB528351

ltmain.shH A D06-Jun-2014277 KiB9,6627,310

missingH A D02-Jan-20146.7 KiB216143

policy.config.inH A D21-Dec-2012373 1110

README

1The Gtk# website can be found at: http://www.mono-project.com/GtkSharp
2
3Gtk# is a .NET language binding for the GTK+ toolkit and assorted GNOME
4libraries. Gtk# is free software, licensed under the GNU LGPL.
5
6Building & Installing Gtk#:
7---------------------------
8
9    Install the gtk-3 development headers first. On Debian, this can be done using:
10    apt-get install libgtk-3-dev
11
12    The build is the traditional:
13
14        ./configure
15        make
16        make install
17
18    You may want to consider using configure's prefix option to install
19    Gtk# using the same prefix as Mono.  That way all of your .NET assemblies
20    get placed in the same place, and you don't need to do any extra "configuring"
21    to make it so mono (and mint) can find your assemblies.  In other words,
22    doing something like:
23
24        ./configure --prefix=`pkg-config --variable=prefix mono`
25        make
26        make install
27
28    If you are compiling from GIT, you will need libtool and the auto* tools
29    and will need to replace the configure above with autogen.sh.
30
31
32The gui-thread-check profiler module.
33-------------------------------------
34
35    Since version 3 of gtk# a profiler called "gui-thread-check" is included as
36    part of the install for debugging purposes. (It's located in the subfolder
37    gtk/gui-thread-check .)
38
39    This profiler module can be used to check if a GTK# application is trying to
40    invoke gtk or gdk methods from a thread which is not the main GUI thread.
41
42    To use it, run your application with the command:
43
44        mono --profile=gui-thread-check yourapp.exe
45
46    If the profiler is properly installed, you'll see an output like this:
47
48        *** Running with gui-thread-check ***
49        *** GUI THREAD INITIALIZED: 2861676352
50
51    While the application is running, if the profiler detects a non-gui thread
52    invoking gtk methods, it will print a warning message together with a
53    stack trace. For example:
54
55        *** GTK CALL NOT IN GUI THREAD: Widget.gtk_widget_get_parent
56           Widget.get_Parent
57           SourceEditorWidget.SetLastActiveEditor
58           SourceEditorWidget.get_TextEditor
59           SourceEditorWidget.get_Document
60           SourceEditorWidget.HandleParseInformationUpdaterWorkerThreadDoWork
61           BackgroundWorker.OnDoWork
62           BackgroundWorker.ProcessWorker
63
64
65Discussion & Support:
66---------------------
67
68    A mailing list for Gtk# discussion is available.
69
70    You can subscribe to the mailing list by visiting:
71
72        http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
73
74    And following the instructions (on that page) to subscribe.
75    Messages are posted on this mailing list by sending them to:
76
77        gtk-sharp-list@ximian.com
78
79    (The mailing list requires you to subscribe in order to post
80    messages.)
81
82    An archive of this mailing list can be found at:
83
84        http://lists.ximian.com/archives/public/gtk-sharp-list/
85
86    Also, people can get help with and discuss Gtk# on IRC via the
87    #gtk# or #mono channels on the irc.gnome.org IRC server.
88
89    People looking for general help with C# should visit the
90    #c# channel on irc.freenode.net IRC server.
91
92
93Developers:
94-----------
95
96    For developers wishing to "get started" with Gtk#, they are encouraged
97    to read the Mono Hand Book:
98
99        http://www.mono-project.com/Monkeyguide
100
101
102Hackers:
103--------
104
105    For those who wish to help with the development of Gtk#, they should
106    read the file named: HACKING.
107
108    Also, anyone wishing to hack Gtk# is encouraged to join the Gtk#
109    mailing list. And to visit the #gtk# IRC channel (on irc.gnome.org).
110

README.generator

1NOTE: This file is out of date. Please refer to http://www.mono-project.com/GAPI for a more complete and up-to-date guide to the GAPI tools included with Gtk#
2
3
4How to use the Gtk# code generator:
5
6Install dependencies:
7
8   * You need to install the XML::LibXML perl bindings and Gtk#.
9
10Parse the library:
11
12   * Create an xml file defining the libraries to be parsed. The
13     format of the XML is:
14
15	<gapi-parser-input>
16	  <api filename="../api/atk-api.xml">
17	    <library name="libatk-1.0-0.dll">
18	      <namespace name="Atk">
19	        <dir>atk-1.2.4/atk</dir>
20	      </namespace>
21	    </library>
22	  </api>
23	</gapi-parser-input>
24
25     The api element filename attribute specifies the parser output file location.
26     The name attribute on the library output points to the native library name. If
27     you are creating a cross-platform project, you will want to specify the win32 dll
28     name here and use mono's config mechanism to map the name on other platforms.
29     The dir element points to a src directory to be parsed.  Currently all .c and .h
30     files in the directory are parsed.
31
32     All the elements inside the root can have multiples. The source/gtk-sharp-sources.xml
33     file has examples of producing multiple api files with a single parser input file, as
34     well as including muliple libraries in a single output file.
35
36   * Create metadata rules files named <namespace>.metadata in the directory where you invoke
37     the parser.  Metadata rules allow you to massage the parsed api if necessary.  Examples
38     of rule formats can be found in the sources directory.
39
40   * Execute the parser on your xml input file:
41	gapi-parser <xml-input-filename>
42
43   * Distribute the xml file(s) produced by the parser with your project so that your
44     users don't need to have any native library source, or perl libraries installed in
45     order to build your project.
46
47Within your project directory, do the following:
48
49   * Setup a toplevel subdirectory for each namespace/assembly you
50     are wrapping. Instruct the makefile for this directory to compile,
51     at minimum, generated/*.
52
53   * Run gapi_codegen.exe on the API file(s) you created with the parser. If you depend
54     on any other wrapped libraries (such as gtk-sharp.dll), you need to include their API
55     listings via the --include directive.  The code generator, if successful, will have
56     populated the assembly directories with generated/ directories. It is generally helpful
57     to automate this process with makefiles. Gtk# uses the following organization:
58        - sources/: Source directories, .sources listing, .metadata files.
59             developers run make manually here when they want to update the API files.
60        - api/: API files
61             The files are committed to CVS and included in releases for the convenience
62             of the lib user.  This dir is included in the build before the namespace dirs
63             and the generator is invoked from this dir.
64
65
66