Commit 1922a3ed authored by BST 1999 Tony Gale's avatar BST 1999 Tony Gale Committed by Tony Gale
Browse files

Long awaited FAQ update.

Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: Long awaited FAQ update.
parent bd943182
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
Thu Jul 15 13:33:15 BST 1999 Tony Gale <gale@gtk.org>
* docs/gtkfaq.sgml: Long awaited FAQ update.
1999-07-15 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement
......
......@@ -7,14 +7,13 @@
<title>GTK+ FAQ
<!-- NOTE: Use only one author tag, otherwise sgml2txt barfs - TRG -->
<author>Nathan Froyd, Tony Gale, Shawn T. Amundson.
<author>Nathan Froyd, Tony Gale, Shawn T. Amundson, Emmanuel Deloget
<date>July 6th 1998
<date>July 14th 1999
<abstract>
This document is intended to answer questions that are likely to be
frequently asked by programmers using GTK+ or people who are just
looking at using GTK+.
<abstract> This document is intended to answer questions that are likely to be
frequently asked by programmers using GTK+ or people who are just looking at
using GTK+.
</abstract>
<!-- Table of contents -->
......@@ -25,6 +24,25 @@ looking at using GTK+.
<!-- ***************************************************************** -->
<sect>General Information
<!-- ----------------------------------------------------------------- -->
<sect1>Before anything else: the greetings
<p>
The FAQ authors want to thank:
<itemize>
<item>Havoc Pennington
<item>Eric Mouw
<item>Owen Taylor
<item>Tim Janik
<item>Thomas Mailund Jensen
<item>Joe Pfeiffer
<item>Andy Kahn
<item>Federico Mena Quintero
<item>Damon Chaplin
<item>and all the members of the GTK+ lists
</itemize>
If we forgot you, please email us !
Thanks again (I know, it's really short :)
<!-- ----------------------------------------------------------------- -->
<sect1>Authors
<p>
......@@ -89,9 +107,6 @@ by going to
<htmlurl url="http://www.gtk.org/"
name="http://www.gtk.org/">.
The Tutorial and FAQ can also be found at
<htmlurl url="http://www.geocities.com/ResearchTriangle/Lab/4299/"
name="http://www.geocities.com/ResearchTriangle/Lab/4299/">.
<!-- ----------------------------------------------------------------- -->
<sect1>Is there a mailing list (or mailing list archive) for GTK+?
......@@ -110,7 +125,9 @@ email message to <htmlurl url="mailto:gtk-list-request@redhat.com"
name="gtk-list-request@redhat.com">
with <em>subscribe</em> in the <bf>subject</bf>.
<p>
A searchable archive of the mailing list can be found at <htmlurl url="http://archive.redhat.com/gtk-list" name="http://archive.redhat.com/gtk-list">
A searchable archive of the mailing list can be found at
<htmlurl url="http://archive.redhat.com/gtk-list"
name="http://archive.redhat.com/gtk-list">
</itemize>
<!-- ----------------------------------------------------------------- -->
<sect1>The gtk-list hasn't had any traffic for days, is it dead?
......@@ -129,35 +146,58 @@ that case, the best place to post questions is to the GTK+ mailing list.
<p>
Bug reports should be sent to the GTK+ mailing list.
<!-- ----------------------------------------------------------------- -->
<sect1>Is there a Windows version of GTK+?
<p>
There is an on going port of GTK+ to the Windows platform which is
making impressive progress.
See <htmlurl url="http://www.iki.fi/tml/gimp/win32"
name="http://www.iki.fi/tml/gimp/win32"> for more information.
<!-- ----------------------------------------------------------------- -->
<sect1>What applications have been written with GTK+?
<p>
Some applications which use GTK+ are:
A list of some GTK+ based application can be found on the GTK+ web
server at <htmlurl url="http://www.gtk.org/apps/"
name="http://www.gtk.org/apps/"> and contains more than 350 applications.
Some of these are:
<itemize>
<item>GIMP (<htmlurl url="http://www.XCF.Berkeley.EDU/~gimp/"
name="http://www.XCF.Berkeley.EDU/~gimp/"> ),
an image manipulation program
<item>Gsumi (<htmlurl url="http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html"
name="http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html">),
a fun B+W doodling program with XInput support.
<item>GIMP (<htmlurl url="http://www.gimp.org/"
name="http://www.gimp.org/">),
an image manipulation program
<item>AbiWord (<htmlurl url="http://www.abisource.com/"
name="http://www.abisource.com/">),
a professional word processor
<item>GUBI (<htmlurl url="http://www.SoftHome.net/pub/users/timj/gubi/index.htm"
name="http://www.SoftHome.net/pub/users/timj/gubi/index.htm">),
a user interface builder
<item>Gzilla (<htmlurl url="http://www.levien.com/gzilla/" name="http://www.levien.com/gzilla/">),
a web browser
<item>SANE (<htmlurl url="http://www.azstarnet.com/~axplinux/sane/" name="http://www.azstarnet.com/~axplinux/sane/"> ),
a universal scanner interface
<item>XQF (<htmlurl url="http://www.botik.ru/~roma/quake/" name="http://www.botik.ru/~roma/quake/">),
a QuakeWorld/Quake2 server browser and launcher
<item>ElectricEyes (<htmlurl url="http://www.labs.redhat.com/ee.shtml" name="http://www.labs.redhat.com/ee.shtml">),
an image viewer that aims to be a free replacement for xv
<item>GPK - the General Proxy Kit (<htmlurl url="http://www.humanfactor.com/gpk/" name="http://www.humanfactor.com/gpk/">),
an add-on library to permit thread-safe access to GTK+
<item>GCK - the General Convenience Kit (<htmlurl url="http://www.ii.uib.no/~tomb/gck.html" name="http://www.ii.uib.no/~tomb/gck.html">),
miscellaneous functions intended to ease color handling, UI construction,
vector operations, and math functions
<item>GDK Imlib (<htmlurl url="http://www.labs.redhat.com/imlib/" name="http://www.labs.redhat.com/imlib/">),
a fast image loading and manipulation library for GDK
a user interface builder
<item>Gzilla (<htmlurl url="http://www.levien.com/gzilla/"
name="http://www.levien.com/gzilla/">),
a web browser
<item>SANE (<htmlurl url="http://www.azstarnet.com/~axplinux/sane/"
name="http://www.azstarnet.com/~axplinux/sane/"> ),
a universal scanner interface
<item>XQF (<htmlurl url="http://www.botik.ru/~roma/quake/"
name="http://www.botik.ru/~roma/quake/">),
a QuakeWorld/Quake2 server browser and launcher
<item>ElectricEyes (<htmlurl url="http://www.labs.redhat.com/ee.shtml"
name="http://www.labs.redhat.com/ee.shtml">),
an image viewer that aims to be a free replacement for xv
<item>GPK - the General Proxy Kit (<htmlurl url="http://www.humanfactor.com/gpk/"
name="http://www.humanfactor.com/gpk/">),
an add-on library to permit thread-safe access to GTK+
<item>GCK - the General Convenience Kit (<htmlurl url="http://www.ii.uib.no/~tomb/gck.html"
name="http://www.ii.uib.no/~tomb/gck.html">),
miscellaneous functions intended to ease color handling, UI construction,
vector operations, and math functions
<item>GDK Imlib (<htmlurl url="http://www.labs.redhat.com/imlib/"
name="http://www.labs.redhat.com/imlib/">),
a fast image loading and manipulation library for GDK
<item>Glade (<htmlurl url="http://glade.pn.org/"
name="http://glade.pn.org/">),
a GTK+ based RAD tool which produces GTK+ applications
</itemize>
<p>
In addition to the above, the GNOME project (<htmlurl url="http://www.gnome.org"
......@@ -166,22 +206,21 @@ is using GTK+ to build a free desktop for Linux. Many more programs can be found
there.
<!-- ----------------------------------------------------------------- -->
<sect1>I'm looking for an application to write in GTK+. How about an IRC client?
<sect1>I'm looking for an application to write in GTK+. How about an IRC client?
<p>
Ask on gtk-list for suggestions. There are at least four IRC
clients already under development.
Ask on gtk-list for suggestions. There are at least three IRC
clients already under development (probably more in fact. The server at
<htmlurl url="http://www.forcix.cx/irc-clients.html"
name="http://www.forcix.cx/irc-clients.html"> list a bunch of them).
<itemize>
<item>girc. (Included with GNOME)
<item>Bezerk (<htmlurl url="http://www.gtk.org/~trog/"
name="http://www.gtk.org/~trog/">)
<item>gsirc. (Location?)
<item>Gnirc. (<htmlurl url="http://www.imaginet.fr/~dramboz/gnirc"
name="http://www.imaginet.fr/~dramboz/gnirc">)
<item>gsirc. (In the gnome CVS tree)
</itemize>
<!-- ***************************************************************** -->
<sect>How to find, configure, install, and troubleshoot GTK+
......@@ -200,7 +239,21 @@ The canonical site is:
<verb>
ftp://ftp.gtk.org/pub/gtk
</verb>
Of course, any mirrors of ftp.gtk.org should have the latest version, too.
This site tends to get busy around the time of a new GTK+ release
so try and use one of the mirror sites that are listed in
<htmlurl url="ftp://ftp.gtk.org/etc/mirrors"
name="ftp://ftp.gtk.org/etc/mirrors">
Here's a few mirror sites to get you started:
<itemize>
<item>Africa - ftp://ftp.is.co.za/applications/gimp/
<item>Australia - ftp://ftp.au.gimp.org/pub/gimp/
<item>Finland - ftp://ftp.funet.fi/pub/sci/graphics/packages/gimp
<item>Germany - ftp://infosoc.uni-koeln.de/pub/ftp.gimp.org/
<item>Japan - ftp://SunSITE.sut.ac.jp/pub/archives/packages/gimp/
<item>UK - ftp://ftp.flirble.org/pub/X/gimp/
<item>US - ftp://ftp.insync.net/pub/mirrors/ftp.gimp.org/
</itemize>
<sect1>How do I configure/compile GTK+?
<p>
......@@ -269,8 +322,8 @@ and reinstall gtk+.
<!-- ----------------------------------------------------------------- -->
<sect1>When compiling programs with GTK+, I get compiler error messages about not being able to find <tt/"glibconfig.h"/.
<p> The header file "glibconfig.h" was moved to the directory
<p>
The header file "glibconfig.h" was moved to the directory
$exec_prefix/lib/glib/include/. $exec_prefix is the
directory that was specified by giving the --exec-prefix
flags to ./configure when compiling GTK+. It defaults to
......@@ -307,13 +360,13 @@ setenv CPPFLAGS "-I/usr/local/include/glib/include"
(Substitute the appropriate value of $exec_prefix for /usr/local.)
<!-- ----------------------------------------------------------------- -->
<sect1>When installing The GIMP, configure reports that it can't find GTK.
<sect1>When installing a GTK+ application, configure reports that it can't find GTK.
<p>
There are several common reasons for this:
<itemize>
<item>You have an old version of GTK installed somewhere. RedHat 5.0, for
example, installs an older copy of GTK that will not work with the latest
versions of GIMP. You should remove this old copy, but note that in the case
example, installs an older copy of GTK that may not work with the latest
applications. You should remove this old copy, but note that in the case
of RedHat 5.0 this will break the <tt/control-panel/ applications.
<P>
<item><tt/gtk-config/ (or another component of GTK) isn't in your path, or
......@@ -321,10 +374,8 @@ there is an old version on your system. Type:
<verb>
gtk-config --version
</verb>
to check for both of these. This should return a value of at least 0.99.8
for things to work properly with GIMP 0.99.23. If it returns a value
different from what you expect, then you have an old version of GTK on
your system.
to check for both of these. If it returns a value different from what
you expect, then you have an old version of GTK on your system.
<P>
<item>The ./configure script can't find the GTK libraries. As ./configure
compiles various test programs, it needs to be able to find the GTK
......@@ -344,7 +395,7 @@ config.log. If the compilation is successful, try executing it.
<!-- ----------------------------------------------------------------- -->
<sect1>Whats this CVS thing that everyone keeps talking about, and how do I access it?
<p>
CVS is the Concurent Version System and is a very popular mean of
CVS is the Concurent Version System and is a very popular means of
version control for software projects. It is designed to allow multiple
authors to be able to simultanously operate on the same source tree.
This source tree is centrally maintained, but each developer has a
......@@ -365,7 +416,8 @@ using the following steps:
<itemize>
<item> In a bourne shell descendant (e.g. bash) type:
<verb>
export CVSROOT=':pserver:anonymous@anoncvs.gimp.org:/debian/home/gnomecvs'
CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome'
export CVSROOT
</verb>
<item>Next, the first time the source tree is checked out, a cvs login
is needed.
......@@ -374,7 +426,8 @@ cvs login
</verb>
This will ask you for a password. There is no password for cvs.gimp.org,
so just enter a carriage return.
<item>To get the tree and place it in a subdir of your current working directory, issue the command:
<item>To get the tree and place it in a subdir of your current working
directory, issue the command:
<verb>
cvs -z3 get gtk+
</verb>
......@@ -390,8 +443,8 @@ cvs -z3 get glib
<!-- ----------------------------------------------------------------- -->
<sect1>How can I contribute to GTK+?
<p>
It's simple. If something doesn't work like you think it should in a program,
check the documentation to make sure you're not missing something. If it is a
It's simple. If something doesn't work like you think it should in a program,
check the documentation to make sure you're not missing something. If it is a
true bug or missing feature, track it down in the GTK+ source, change it,
and then generate a patch in the form of a 'context diff'. This can be done
using a command such as <tt/diff -ru &lt;oldfile&gt; &lt;newfile&gt;/.
......@@ -434,85 +487,110 @@ be put off if your patch didn't make it first time round.
<sect1>What is the policy on incorporating new widgets into the library?
<p>
This is up to the authors, so you will have to ask them once you
are done with your widget. As a general guideline, widgets that are
are done with your widget. As a general guideline, widgets that are
generally useful, work, and are not a disgrace to the widget set will
gladly be included.
<!-- ----------------------------------------------------------------- -->
<sect1>Is anyone working on bindings for languages other than C?
<p>
Yes. There is
The GTK+ home page (<htmlurl url="http://www.gtk.org/"
name="http://www.gtk.org/">) presents a list of GTK+ bindings.
<itemize>
<item>a C++ wrapper for GTK+ called gtk--. You can find the home page at:
<htmlurl url="http://www.cs.tut.fi/~p150650/gtk/gtk--.html"
name="http://www.cs.tut.fi/~p150650/gtk/gtk--.html">.
The FTP site is
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/gtk--"
name="ftp://ftp.gtk.org/pub/gtk/gtk--">.
<item>There are several C++ wrappers for GTK+.
<itemize>
<item>the gtk-- package, which is a very small wrapper for GTK+.
You can find the home page at:
<htmlurl url="http://www.cs.tut.fi/~p150650/gtk/gtk--.html"
name="http://www.cs.tut.fi/~p150650/gtk/gtk--.html">.
The FTP site is
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/gtk--"
name="ftp://ftp.gtk.org/pub/gtk/gtk--">.
<item>the VDK package, which was built as the base package of a GTK+
application Borland-like builder. The home page can be found at
<htmlurl url="www.guest.net/homepages/mmotta/VDKHome"
name="www.guest.net/homepages/mmotta/VDKHome">.
<item>The wxWindows/Gtk package, a free C++ library for cross-platform
GUI development. The home page of this package is
<htmlurl url="http://www.freiburg.linux.de/~wxxt/"
name="http://www.freiburg.linux.de/~wxxt/">.
</itemize>
<p>
<item>There are two Objective-c bindings currently in development:
<item>There are three known Objective-c bindings currently in development:
<itemize>
<itemize>
<item>The <htmlurl url="http://www.gnome.org/" name="GNOME project's"> package
of choice is obgtk. Objgtk is based on the Object class and is maintained by
<htmlurl url="mailto:sopwith@cuc.edu" name="Elliot Lee">. Apparently, objgtk
is being accepted as the `standard' Objective-C binding for GTK+.
<item>The <htmlurl url="http://www.gnome.org/" name="GNOME project's"> package
of choice is objgtk. Objgtk is based on the Object class and is maintained by
<htmlurl url="mailto:sopwith@cuc.edu" name="Elliot Lee">. Apparently, objgtk
is being accepted as the `standard' Objective-C binding for GTK+.
<item>If you are more inclined towards the
<htmlurl url="http://www.gnustep.org/" name="GNUstep project">,
you may want to check out GTKKit by
<htmlurl url="mailto:helge@mdlink.de" name="Helge He&szlig;">.
The intention is to setup a GTK+ binding using the FoundationKit.
GTKKit includes nicities like writing a XML-type template file to
construct a GTK+ interface.
<item>If you are more inclined towards the
<htmlurl url="http://www.gnustep.org/" name="GNUstep project">,
you may want to check out GTKKit by
<htmlurl url="mailto:helge@mdlink.de" name="Helge He&szlig;">.
The intention is to setup a GTK+ binding using the FoundationKit.
GTKKit includes nicities like writing a XML-type template file to
construct a GTK+ interface.
<item>The GToolKit package, which can be found at
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/objc-gtoolkit/"
name="ftp://ftp.gtk.org/pub/gtk/objc-gtoolkit/">.
</itemize>
<p>
<item>Perl bindings
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/perl"
name="ftp://ftp.gtk.org/pub/gtk/perl">
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/perl"
name="ftp://ftp.gtk.org/pub/gtk/perl">
<P>
<item>Guile bindings. The home page is at
<htmlurl url="http://www.ping.de/sites/zagadka/guile-gtk"
name="http://www.ping.de/sites/zagadka/guile-gtk">.
By the way, Guile is the GNU Project's implemention of R4RS Scheme (the
standard). If you like Scheme, you may want to take a look at this.
<htmlurl url="http://www.ping.de/sites/zagadka/guile-gtk"
name="http://www.ping.de/sites/zagadka/guile-gtk">.
By the way, Guile is the GNU Project's implemention of R4RS Scheme (the
standard). If you like Scheme, you may want to take a look at this.
<p>
<item>David Monniaux reports:
<quote>I've started a gtk-O'Caml binding system.
The basics of the system, including callbacks, work fine.
<quote>I've started a gtk-O'Caml binding system.
The basics of the system, including callbacks, work fine.
The current development is in
<htmlurl url="http://www.ens-lyon.fr/~dmonniau/arcs"
name="http://www.ens-lyon.fr/~dmonniau/arcs">
</quote>
The current development is in
<htmlurl url="http://www.ens-lyon.fr/~dmonniau/arcs"
name="http://www.ens-lyon.fr/~dmonniau/arcs">
</quote>
<item>
Several python bindings have been done:
<item> Several python bindings have been done:
<p>
<itemize>
<item>pygtk is at
<htmlurl url="http://www.daa.com.au/~james/pygtk"
name="http://www.daa.com.au/~james/pygtk"> and
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/python"
name="ftp://ftp.gtk.org/pub/gtk/python">
<item>python-gtk is at
<htmlurl url="http://www.ucalgary.ca/~nascheme/python-gtk"
name="http://www.ucalgary.ca/~nascheme/python-gtk">
</itemize>
<itemize>
<item>pygtk is at
<htmlurl url="http://www.daa.com.au/~james/pygtk"
name="http://www.daa.com.au/~james/pygtk"> and
<htmlurl url="ftp://ftp.gtk.org/pub/gtk/python"
name="ftp://ftp.gtk.org/pub/gtk/python">
<item>python-gtk is at
<htmlurl url="http://www.ucalgary.ca/~nascheme/python-gtk"
name="http://www.ucalgary.ca/~nascheme/python-gtk">
</itemize>
<p>
<item>There's are a couple of OpenGL/Mesa widgets available for
GTK+. I suggest you start at
<htmlurl url="http://www.student.oulu.fi/~jlof/gtkglarea/index.html"
name="http://www.student.oulu.fi/~jlof/gtkglarea/index.html">
<p>
<item>
There's a OpenGL/Mesa widget available for GTK+. Grab it at
<htmlurl url="http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html"
name="http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html">
<item>Last, there are a lot of other language bindings for languages such as
Eiffel, TOM, Pascal, Pike, etc.
</itemize>
<!-- ***************************************************************** -->
<sect>Development with GTK+
<sect>Development with GTK+: the begining
<!-- ***************************************************************** -->
<!-- ----------------------------------------------------------------- -->
<sect1>How do I get started?
......@@ -529,9 +607,159 @@ GTK+ widgets you should look at the file gtk/testgtk.c (and associated
source files) within the GTK+ distribution. Looking at these exmaples will
give you a good grounding on what the widgets can do.
<!-- ----------------------------------------------------------------- -->
<sect1>I tried to compile a small <tt/Hello World/ of mine, but it failed. Any clue?
<p>
Since you are good at coding, we will not deal with compile time error here :).
The classic command line to compile a GTK+ based program is
<verb>
gcc -o myprg [c files list] `gtk-config --cflags --libs`
</verb>
You should notice the backquote character which is used in this command line.
A common mistake when you start a GTK+ based development is to use quote
instead of backquotes. If you do so, the compiler will complain about an
unknown file called 'gtk-config --cflags --libs'. The text in
backquotes is an instruction to your shell to substitute the output of
executing this text into the command line.
The command line above ensure that:
<itemize>
<item>the correct C compiler flags will be used to compile the program
(including the complete C header directory list)
<item>your program will be linked with the needed libraries.
</itemize>
<sect1>What about using the <tt/make/ utility?
<p>
This is a sample makefile which compile a GTK+ based program:
<tscreen><verb>
# basic GTK+ app makefile
SOURCES = myprg.c foo.c bar.c
OBJS = ${SOURCES:.c=.o}
CFLAGS = `gtk-config --cflags`
LDADD = `gtk-config --libs`
CC = gcc
PACKAGE = myprg
all : ${OBJS}
${CC} -o ${PACKAGE} ${OBJS} ${LDADD}
.c.o:
${CC} ${CFLAGS} -c $<
# end of file
</verb></tscreen>
For more information about the <tt/make/ utility, you should read either the
related man page or the relevant info file.
<sect1>I use the backquote stuff in my makefiles, but my make process failed.
<p>
The backquote construction seems to not be accepted by some old <tt/make/
utilities. If you use one of these, the make process will probably fail.
In order to have the backquote syntax working again, you should use the
GNU make utility (get it on the GNU ftp server at
<htmlurl url="ftp://ftp.gnu.org/" name="ftp://ftp.gnu.org/">).
<!-- ----------------------------------------------------------------- -->
<sect1>I want to add some configure stuff, how could I do this?
<p>
To use autoconf/automake, you must first install the relevant packages. These
are:
<itemize>
<item>the m4 preprocessor v1.4 or better
<item>autoconf v2.13 or better
<item>automake v1.4 or better
</itemize>
You'll find these packages on the GNU main ftp server (<htmlurl
url="ftp://ftp.gnu.org/" name="ftp://ftp.gnu.org/">) or on any GNU mirror.
In order to use the powerfull autoconf/automake scheme, you must create
a configure.in which may look like:
<tscreen><verb>
dnl Process this file with autoconf to produce a configure script.
dnl configure.in for a GTK+ based program
AC_INIT(myprg.c)dnl
AM_INIT_AUTOMAKE(mypkbname,0.0.1)dnl
AM_CONFIG_HEADER(config.h)dnl
dnl Checks for programs.
AC_PROG_CC dnl check for the c compiler
dnl you should add CFLAGS="" here, 'cos it is set to -g by PROG_CC
dnl Checks for libraries.
AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(mypkgname 0.1 needs GTK))dnl
AC_OUTPUT(
Makefile
)dnl
</verb></tscreen>
You must add a Makefile.am file:
<tscreen><verb>
bin_PROGRAMS = myprg
myprg_SOURCES = myprg.c foo.c bar.c
INCLUDES = @GTK_CFLAGS@
LDADD = @GTK_LIBS@
CLEANFILES = *~
DISTCLEANFILES = .deps/*.P
</verb></tscreen>
then, to use these, simply type the following commands:
<verb>
aclocal
autoheader
autoconf
automake --add-missing --include-deps --foreign
</verb>
For further informations, you should look at the autoconf and the automake
documentation (the shipped info files are really easy to understand, and there
are plenty of web resources that deal with autoconf and/or automake).
<!-- ----------------------------------------------------------------- -->
<sect1>I try to debug my GTK+ application with gdb, but it hangs my X server when I hit some breakpoint. Any Idea ?
<p>
From Federico Mena Quintero:
<quote>
X is not locked up. It is likely that you are hitting a breakpoint
inside a callback that is called from a place in Gtk that has a mouse
grab.
<P>
Run your program with the "--sync" option; it will make it easier to
debug. Also, you may want to use the console for running the
debugger, and just let the program run in another console with the X
server.
</quote>
Eric Mouw had another solution:
<quote>
An old terminal connected to an otherwise unused serial port is also great
for debugging X programs. Old vt100/vt220 terminals are dirt cheap but a
bit hard to get (here in The Netherlands, YMMV).
</quote>
<!-- ***************************************************************** -->
<sect>Development with GTK+: the programming part
<!-- ***************************************************************** -->
<!-- ----------------------------------------------------------------- -->
<sect1>What widgets are in GTK?
<p>
The GTK+ Tutorial lists the following widgets:
<verb>
GtkObject