|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| atk/ | H | 03-May-2022 | - | 4,983 | 4,487 |
| cairo/ | H | 03-May-2022 | - | 6,846 | 3,986 |
| doc/ | H | 03-May-2022 | - | 314,192 | 310,827 |
| gdk/ | H | 03-May-2022 | - | 10,950 | 9,452 |
| generator/ | H | 03-May-2022 | - | 12,269 | 9,062 |
| gio/ | H | 03-May-2022 | - | 15,163 | 14,763 |
| glib/ | H | 03-May-2022 | - | 12,217 | 8,880 |
| gtk/ | H | 03-May-2022 | - | 43,302 | 39,121 |
| gtkdotnet/ | H | 03-May-2022 | - | 875 | 699 |
| m4/ | H | 06-Jun-2014 | - | 8,630 | 7,772 |
| msi/ | H | 03-May-2022 | - | 3,112 | 2,881 |
| pango/ | H | 03-May-2022 | - | 6,743 | 5,364 |
| parser/ | H | 03-May-2022 | - | 2,410 | 2,014 |
| sample/ | H | 03-May-2022 | - | 16,951 | 13,432 |
| sources/ | H | 03-May-2022 | - | 850 | 751 |
| AUTHORS | H A D | 05-Jun-2014 | 1.6 KiB | 99 | 97 |
| AssemblyInfo.cs.in | H A D | 18-Aug-2013 | 145 | 6 | 4 |
| COPYING | H A D | 18-Aug-2013 | 24.7 KiB | 481 | 398 |
| HACKING | H A D | 18-Aug-2013 | 930 | 25 | 17 |
| Makefile.am | H A D | 06-Jun-2014 | 228 | 11 | 9 |
| Makefile.in | H A D | 03-May-2022 | 26.2 KiB | 852 | 756 |
| Makefile.include | H A D | 06-Jun-2014 | 3.4 KiB | 83 | 66 |
| NEWS | H A D | 06-Jun-2014 | 10.7 KiB | 282 | 213 |
| README | H A D | 05-Jun-2014 | 3.5 KiB | 110 | 71 |
| README.generator | H A D | 21-Dec-2012 | 2.9 KiB | 66 | 48 |
| TODO | H A D | 18-Aug-2013 | 187 | 7 | 5 |
| aclocal.m4 | H A D | 06-Jun-2014 | 48.2 KiB | 1,351 | 1,224 |
| compile | H A D | 02-Jan-2014 | 7.2 KiB | 348 | 258 |
| config.guess | H A D | 11-Aug-2013 | 44.2 KiB | 1,559 | 1,352 |
| config.h.in | H A D | 06-Jun-2014 | 1.8 KiB | 72 | 48 |
| config.sub | H A D | 11-Aug-2013 | 34.7 KiB | 1,792 | 1,654 |
| configure | H A D | 03-May-2022 | 472.1 KiB | 16,113 | 13,474 |
| configure.ac | H A D | 06-Jun-2014 | 8 KiB | 327 | 283 |
| depcomp | H A D | 02-Jan-2014 | 23 KiB | 792 | 502 |
| gapi.xsd | H A D | 05-Jun-2014 | 16.5 KiB | 365 | 330 |
| install-sh | H A D | 02-Jan-2014 | 13.7 KiB | 528 | 351 |
| ltmain.sh | H A D | 06-Jun-2014 | 277 KiB | 9,662 | 7,310 |
| missing | H A D | 02-Jan-2014 | 6.7 KiB | 216 | 143 |
| policy.config.in | H A D | 21-Dec-2012 | 373 | 11 | 10 |
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