The gtk-list hasn't had any traffic for days, is it dead?
@@ -123,17 +132,35 @@ Bug reports should be sent to the GTK+ mailing list.
Some applications which use GTK+ are:
-- GIMP ( ),
+
- GIMP ( ),
an image manipulation program
-
- Gsumi (),
+
- Gsumi (),
a port of xink
-
- GUBI ( ),
+
- GUBI (),
a user interface builder
-
- Gzilla ( ),
+
- Gzilla (),
a web browser
-
- SANE ( ),
+
- SANE ( ),
a universal scanner interface
+
- XQF (),
+ a QuakeWorld/Quake2 server browser and launcher
+
- ElectricEyes (),
+ an image viewer that aims to be a free replacement for xv
+
- GPK - the General Proxy Kit (),
+ an add-on library to permit thread-safe access to GTK+
+
- GCK - the General Convenience Kit (),
+ miscellaneous functions intended to ease color handling, UI construction,
+ vector operations, and math functions
+
- GDK Imlib (),
+ a fast image loading and manipulation library for GDK
+
+In addition to the above, the GNOME project ()
+is using GTK+ to build a free desktop for Linux. Many more programs can be found
+there.
How to find, configure, install, and troubleshoot GTK+
@@ -272,7 +299,7 @@ gladly be included.
Is anyone working on bindings for languages other than C?
-Yes, there is
+Yes. There is
- a C++ wrapper for GTK+ called gtk--. You can find the home page at:
@@ -299,9 +326,125 @@ The basics of the system, including callbacks, work fine.
The current development is in
http://www.ens-lyon.fr/~dmonniau/arcs/
+
+
-
+Several python-gtk interfaces have been done. python-gtk is at:
+
+http://www.acs.ucalgary.cs/~nashceme/python-gtk/
+
+If you try python-gtk and don't like it, there's also pygtk located at:
+
+ftp://ftp.gimp.org/pub/gtk/python/
+
+
-
+If you're a perl fanatic, you might enjoy using the perl-gtk interface at:
+
+ftp://ftp.gimp.org/pub/gtk/perl/
+
+
+
-
+There's a OpenGL/Mesa widget available for GTK+. Grab it at:
+
+http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html
+
+
+
-Widgets
+Development with GTK+
+
+
+How do I get started?
+
+So, after you have installed GTK+ there are a couple of things that can
+ease you into developing applications with it. There is the
+GTK+ Tutorial , which is undergoing development. This will introduce you
+to writing applications using C.
+
+The Tutorial doesn't (yet) contain information on all of the widgets
+that are in GTK+. For example code on how to use the basics of all the
+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.
+
+What widgets are in GTK?
+
+The GTK+ Tutorial lists the following widgets:
+
+ GtkObject
+ +-- GtkData
+ | \-- GtkAdjustment
+ |
+ \-- GtkWidget
+ +-- GtkContainer
+ | +-- GtkBin
+ | | +-- GtkAlignment
+ | | +-- GtkFrame
+ | | | *-- GtkAspectFrame
+ | | |
+ | | +-- GtkItem
+ | | | +-- GtkListItem
+ | | | +-- GtkMenuItem
+ | | | | +-- GtkCheckMenuItem
+ | | | | *-- GtkRadioMenuItem
+ | | | |
+ | | | *-- GtkTreeItem
+ | | |
+ | | +-- GtkViewport
+ | | \-- GtkWindow
+ | | +-- GtkDialog
+ | | \-- GtkFileSelection
+ | |
+ | +-- GtkBox
+ | | +-- GtkHBox
+ | | \-- GtkVBox
+ | | +-- GtkColorSelection
+ | | \-- GtkCurve
+ | |
+ | +-- GtkButton
+ | | +-- GtkOptionMenu
+ | | \-- GtkToggleButton
+ | | \-- GtkCheckButton
+ | | \-- GtkRadioButton
+ | |
+ | +-- GtkList
+ | +-- GtkMenuShell
+ | | +-- GtkMenu
+ | | \-- GtkMenuBar
+ | |
+ | +-- GtkNotebook
+ | +-- GtkScrolledWindow
+ | +-- GtkTable
+ | \-- GtkTree
+ |
+ +-- GtkDrawingArea
+ +-- GtkEntry
+ +-- GtkMisc
+ | +-- GtkArrow
+ | +-- GtkImage
+ | +-- GtkLabel
+ | \-- GtkPixmap
+ |
+ +-- GtkPreview
+ +-- GtkProgressBar
+ +-- GtkRange
+ | +-- GtkScale
+ | | +-- GtkHScale
+ | | \-- GtkVScale
+ | |
+ | \-- GtkScrollbar
+ | +-- GtkHScrollbar
+ | \-- GtkVScrollbar
+ |
+ +-- GtkRuler
+ | +-- GtkHRuler
+ | \-- GtkVRuler
+ |
+ \-- GtkSeparator
+ +-- GtkHSeparator
+ \-- GtkVSeparator
+
How can I prevent redrawing and resizing while I change multiple widgets?
@@ -310,6 +453,51 @@ Use gtk_container_disable_resize and gtk_container_enable_resize around the
code where you are changing a lot of stuff. This will result in much faster
speed since it will prevent resizing of the entire widget hierarchy.
+
+How do I catach a double click event in a list widget?
+
+Tim Janik wrote to gtk-list (slightly modified):
+
+Define a signal handler:
+
+
+gint
+signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data)
+{
+ if (GTK_IS_LIST_ITEM(widget) &&
+ (event->type==GDK_2BUTTON_PRESS ||
+ event->type==GDK_3BUTTON_PRESS) ) {
+ printf("I feel %s clicked on button %d\",
+ event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
+ event->button);
+ }
+
+ return FALSE;
+}
+
+
+And connect the handler to your object:
+
+
+{
+ /* list, list item init stuff */
+
+ gtk_signal_connect(GTK_OBJECT(list_item),
+ "button_press_event",
+ GTK_SIGNAL_FUNC(signal_handler_event),
+ NULL);
+
+ /* and/or */
+
+ gtk_signal_connect(GTK_OBJECT(list_item),
+ "button_release_event",
+ GTK_SIGNAL_FUNC(signal_handler_event),
+ NULL);
+
+ /* something else */
+}
+
+
How do I find out about the selection of a GtkList?
@@ -555,8 +743,24 @@ gtk_menu_append(GTK_MENU(menu), menuitem);
gtk_widget_show(menuitem);
+
+About gdk
+
+
+What is gdk?
+
+gdk is basically a wrapper around the standard Xlib functions calls. If you are
+at all familiar with Xlib, a lot of the functions in gdk will require little or no
+getting used to. All functions are written to provide an easy way to access Xlib
+functions in an easier an slightly more intuitive manner. In addition, since gdk
+uses glib (see below), it will be more portable and safer to use on multiple platforms.
+
+
+
+
About glib
+
What is glib?
@@ -575,6 +779,8 @@ It also provides routines for handling:
- Error Functions
+
+
Why use g_print, g_malloc, g_strdup and fellow glib functions ?
@@ -601,20 +807,38 @@ showing the messages inside of a gtk window with your own handler
-GTK+ FAQ Contributions and Maintainer
+GTK+ FAQ Contributions, Maintainers and Copyright
If you would like to make a contribution to the FAQ, send either one of us
an e-mail message with the exact text you think should be included (question and
answer). With your help, this document can grow and become more useful!
-This document is maintained by Nathan Froyd
-and Tony Gale .
-Previously, Shawn T. Amundson, took care of it.
+This document is maintained by Nathan Froyd
+
+and Tony Gale .
+This FAQ was created by Shawn T. Amundson who continues to provide support.
+
+The GTK+ FAQ is Copyright (C) 1997,1998 by Shawn T. Amundson, Nathan Froyd and Tony Gale.
+
+Permission is granted to make and distribute verbatim copies of this manual provided the
+copyright notice and this permission notice are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this document under the conditions
+for verbatim copying, provided that this copyright notice is included exactly as in the original,
+and that the entire resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this document into another language,
+under the above conditions for modified versions.
+
+If you are intending to incorporate this document into a published work, please contact one of
+the maintainers, and we will make an effort to ensure that you have the most up to date
+information available.
There is no guarentee that this document lives up to its intended
purpose. This is simply provided as a free resource. As such,
-the authors and maintainer of the information provided within can
+the authors and maintainers of the information provided within can
not make any guarentee that the information is even accurate.
diff --git a/docs/gtkfaq.sgml b/docs/gtkfaq.sgml
index 6f62967834..8977a96d83 100644
--- a/docs/gtkfaq.sgml
+++ b/docs/gtkfaq.sgml
@@ -5,10 +5,10 @@
GTK+ FAQ
-Nathan Froyd, January 27th 1998
+
+
+Nathan Froyd, Tony Gale, Shawn T. Amundson.
+February 20th 1998
This document is intended to answer questions that are likely to be
frequently asked by programmers using GTK+ or people who are just
@@ -94,13 +94,22 @@ are already converted to HTML format.
Is there a mailing list (or mailing list archive) for GTK+?
-A mailing list is located at gtk-list@redhat.com . To subscribe send an
+There are two mailing lists:
+
+- A mailing list for discussion of development of GTK based applications
+is hosted at gtk-app-devel-list@redhat.com. To subscribe send an
+email message to
+with subscribe in the subject.
+
+- A mailing list for discussion of development of GTK is hosted
+at gtk-list@redhat.com. To subscribe send an
email message to
with subscribe in the subject.
-
+
A searchable archive of the mailing list can be found at
-
+
The gtk-list hasn't had any traffic for days, is it dead?
@@ -123,17 +132,35 @@ Bug reports should be sent to the GTK+ mailing list.
Some applications which use GTK+ are:
-- GIMP ( ),
+
- GIMP ( ),
an image manipulation program
-
- Gsumi (),
+
- Gsumi (),
a port of xink
-
- GUBI ( ),
+
- GUBI (),
a user interface builder
-
- Gzilla ( ),
+
- Gzilla (),
a web browser
-
- SANE ( ),
+
- SANE ( ),
a universal scanner interface
+
- XQF (),
+ a QuakeWorld/Quake2 server browser and launcher
+
- ElectricEyes (),
+ an image viewer that aims to be a free replacement for xv
+
- GPK - the General Proxy Kit (),
+ an add-on library to permit thread-safe access to GTK+
+
- GCK - the General Convenience Kit (),
+ miscellaneous functions intended to ease color handling, UI construction,
+ vector operations, and math functions
+
- GDK Imlib (),
+ a fast image loading and manipulation library for GDK
+
+In addition to the above, the GNOME project ()
+is using GTK+ to build a free desktop for Linux. Many more programs can be found
+there.
How to find, configure, install, and troubleshoot GTK+
@@ -272,7 +299,7 @@ gladly be included.
Is anyone working on bindings for languages other than C?
-Yes, there is
+Yes. There is
- a C++ wrapper for GTK+ called gtk--. You can find the home page at:
@@ -299,9 +326,125 @@ The basics of the system, including callbacks, work fine.
The current development is in
http://www.ens-lyon.fr/~dmonniau/arcs/
+
+
-
+Several python-gtk interfaces have been done. python-gtk is at:
+
+http://www.acs.ucalgary.cs/~nashceme/python-gtk/
+
+If you try python-gtk and don't like it, there's also pygtk located at:
+
+ftp://ftp.gimp.org/pub/gtk/python/
+
+
-
+If you're a perl fanatic, you might enjoy using the perl-gtk interface at:
+
+ftp://ftp.gimp.org/pub/gtk/perl/
+
+
+
-
+There's a OpenGL/Mesa widget available for GTK+. Grab it at:
+
+http://www.sakuranet.or.jp/~aozasa/shige/doc/comp/gtk/gtkGL/files-en.html
+
+
+
-Widgets
+Development with GTK+
+
+
+How do I get started?
+
+So, after you have installed GTK+ there are a couple of things that can
+ease you into developing applications with it. There is the
+GTK+ Tutorial , which is undergoing development. This will introduce you
+to writing applications using C.
+
+The Tutorial doesn't (yet) contain information on all of the widgets
+that are in GTK+. For example code on how to use the basics of all the
+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.
+
+What widgets are in GTK?
+
+The GTK+ Tutorial lists the following widgets:
+
+ GtkObject
+ +-- GtkData
+ | \-- GtkAdjustment
+ |
+ \-- GtkWidget
+ +-- GtkContainer
+ | +-- GtkBin
+ | | +-- GtkAlignment
+ | | +-- GtkFrame
+ | | | *-- GtkAspectFrame
+ | | |
+ | | +-- GtkItem
+ | | | +-- GtkListItem
+ | | | +-- GtkMenuItem
+ | | | | +-- GtkCheckMenuItem
+ | | | | *-- GtkRadioMenuItem
+ | | | |
+ | | | *-- GtkTreeItem
+ | | |
+ | | +-- GtkViewport
+ | | \-- GtkWindow
+ | | +-- GtkDialog
+ | | \-- GtkFileSelection
+ | |
+ | +-- GtkBox
+ | | +-- GtkHBox
+ | | \-- GtkVBox
+ | | +-- GtkColorSelection
+ | | \-- GtkCurve
+ | |
+ | +-- GtkButton
+ | | +-- GtkOptionMenu
+ | | \-- GtkToggleButton
+ | | \-- GtkCheckButton
+ | | \-- GtkRadioButton
+ | |
+ | +-- GtkList
+ | +-- GtkMenuShell
+ | | +-- GtkMenu
+ | | \-- GtkMenuBar
+ | |
+ | +-- GtkNotebook
+ | +-- GtkScrolledWindow
+ | +-- GtkTable
+ | \-- GtkTree
+ |
+ +-- GtkDrawingArea
+ +-- GtkEntry
+ +-- GtkMisc
+ | +-- GtkArrow
+ | +-- GtkImage
+ | +-- GtkLabel
+ | \-- GtkPixmap
+ |
+ +-- GtkPreview
+ +-- GtkProgressBar
+ +-- GtkRange
+ | +-- GtkScale
+ | | +-- GtkHScale
+ | | \-- GtkVScale
+ | |
+ | \-- GtkScrollbar
+ | +-- GtkHScrollbar
+ | \-- GtkVScrollbar
+ |
+ +-- GtkRuler
+ | +-- GtkHRuler
+ | \-- GtkVRuler
+ |
+ \-- GtkSeparator
+ +-- GtkHSeparator
+ \-- GtkVSeparator
+
How can I prevent redrawing and resizing while I change multiple widgets?
@@ -310,6 +453,51 @@ Use gtk_container_disable_resize and gtk_container_enable_resize around the
code where you are changing a lot of stuff. This will result in much faster
speed since it will prevent resizing of the entire widget hierarchy.
+
+How do I catach a double click event in a list widget?
+
+Tim Janik wrote to gtk-list (slightly modified):
+
+Define a signal handler:
+
+
+gint
+signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data)
+{
+ if (GTK_IS_LIST_ITEM(widget) &&
+ (event->type==GDK_2BUTTON_PRESS ||
+ event->type==GDK_3BUTTON_PRESS) ) {
+ printf("I feel %s clicked on button %d\",
+ event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
+ event->button);
+ }
+
+ return FALSE;
+}
+
+
+And connect the handler to your object:
+
+
+{
+ /* list, list item init stuff */
+
+ gtk_signal_connect(GTK_OBJECT(list_item),
+ "button_press_event",
+ GTK_SIGNAL_FUNC(signal_handler_event),
+ NULL);
+
+ /* and/or */
+
+ gtk_signal_connect(GTK_OBJECT(list_item),
+ "button_release_event",
+ GTK_SIGNAL_FUNC(signal_handler_event),
+ NULL);
+
+ /* something else */
+}
+
+
How do I find out about the selection of a GtkList?
@@ -555,8 +743,24 @@ gtk_menu_append(GTK_MENU(menu), menuitem);
gtk_widget_show(menuitem);
+
+About gdk
+
+
+What is gdk?
+
+gdk is basically a wrapper around the standard Xlib functions calls. If you are
+at all familiar with Xlib, a lot of the functions in gdk will require little or no
+getting used to. All functions are written to provide an easy way to access Xlib
+functions in an easier an slightly more intuitive manner. In addition, since gdk
+uses glib (see below), it will be more portable and safer to use on multiple platforms.
+
+
+
+
About glib
+
What is glib?
@@ -575,6 +779,8 @@ It also provides routines for handling:
- Error Functions
+
+
Why use g_print, g_malloc, g_strdup and fellow glib functions ?
@@ -601,20 +807,38 @@ showing the messages inside of a gtk window with your own handler
-GTK+ FAQ Contributions and Maintainer
+GTK+ FAQ Contributions, Maintainers and Copyright
If you would like to make a contribution to the FAQ, send either one of us
an e-mail message with the exact text you think should be included (question and
answer). With your help, this document can grow and become more useful!
-This document is maintained by Nathan Froyd
-and Tony Gale .
-Previously, Shawn T. Amundson, took care of it.
+This document is maintained by Nathan Froyd
+
+and Tony Gale .
+This FAQ was created by Shawn T. Amundson who continues to provide support.
+
+The GTK+ FAQ is Copyright (C) 1997,1998 by Shawn T. Amundson, Nathan Froyd and Tony Gale.
+
+Permission is granted to make and distribute verbatim copies of this manual provided the
+copyright notice and this permission notice are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this document under the conditions
+for verbatim copying, provided that this copyright notice is included exactly as in the original,
+and that the entire resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this document into another language,
+under the above conditions for modified versions.
+
+If you are intending to incorporate this document into a published work, please contact one of
+the maintainers, and we will make an effort to ensure that you have the most up to date
+information available.
There is no guarentee that this document lives up to its intended
purpose. This is simply provided as a free resource. As such,
-the authors and maintainer of the information provided within can
+the authors and maintainers of the information provided within can
not make any guarentee that the information is even accurate.