summaryrefslogtreecommitdiff
path: root/docs/faq
diff options
context:
space:
mode:
authorTony Gale <gale@src.gnome.org>1998-02-25 13:58:52 +0000
committerTony Gale <gale@src.gnome.org>1998-02-25 13:58:52 +0000
commit97bbc97bb2ac6ae012d909c4de9fd9d479d1a40b (patch)
treee0823ae13e7a429c8991774cad4cfe0eb885c87e /docs/faq
parentcf017477010019c58d89d9ad4eadef5f62fc466e (diff)
downloadgtk+-97bbc97bb2ac6ae012d909c4de9fd9d479d1a40b.tar.gz
added questions on: - Why don't the contents of a button move when the
* docs/gtkfaq.sgml: added questions on: - Why don't the contents of a button move when the button is pressed? - How do I catch a double click event in a list widget? - When compiling GTK+ I get an error like: make: file `Makefile' line 456: Syntax error Removed questions on menus which are covered in the tutorial. Added link to HTML versions of FAQ and Tutorial on my web site. -Tony
Diffstat (limited to 'docs/faq')
-rw-r--r--docs/faq/gtkfaq.sgml174
1 files changed, 56 insertions, 118 deletions
diff --git a/docs/faq/gtkfaq.sgml b/docs/faq/gtkfaq.sgml
index b83974b24e..b8efe3c4a3 100644
--- a/docs/faq/gtkfaq.sgml
+++ b/docs/faq/gtkfaq.sgml
@@ -8,7 +8,7 @@
<!-- NOTE: Use only one author tag, otherwise sgml2txt barfs - TRG -->
<author>Nathan Froyd, Tony Gale, Shawn T. Amundson.
-<date>February 20th 1998
+<date>February 25th 1998
<abstract>
This document is intended to answer questions that are likely to be
frequently asked by programmers using GTK+ or people who are just
@@ -83,13 +83,15 @@ reference material for both GTK and GDK, and this FAQ.
There is also a GTK+ Tutorial which can be found at
<htmlurl url="http://www.levien.com/~slow/gtk/"
-name="http://www.levien.com/~slow/gtk/">
+name="http://www.levien.com/~slow/gtk/">.
-In addition, if you are
-on the web, you can browse all of the above by going to
+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/">.
+
+In addition, you can find links to all of these documents by going to
<htmlurl url="http://www.gimp.org/gtk/docs"
-name="http://www.gimp.org/gtk/docs">, where they
-are already converted to HTML format.
+name="http://www.gimp.org/gtk/docs">.
<!-- ----------------------------------------------------------------- -->
<sect1>Is there a mailing list (or mailing list archive) for GTK+?
@@ -132,9 +134,10 @@ Bug reports should be sent to the GTK+ mailing list.
<p>
Some applications which use GTK+ are:
<itemize>
-<item>GIMP (<htmlurl url="http://www.XCF.Berkeley.EDU/~gimp/" name="http://www.XCF.Berkeley.EDU/~gimp/"> ),
+<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"
+<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>GUBI (<htmlurl url="http://www.SoftHome.net/pub/users/timj/gubi/index.htm"
@@ -166,11 +169,14 @@ there.
<sect>How to find, configure, install, and troubleshoot GTK+
<!-- ***************************************************************** -->
+
+<!-- ----------------------------------------------------------------- -->
<sect1>What do I need to run GTK+?
<p>
To compile GTK+, all you need is a C compiler (gcc) and the X Window System
and associated libraries on your system.
+<!-- ----------------------------------------------------------------- -->
<sect1>Where can I get GTK+?
<p>
The canonical site is:
@@ -188,6 +194,16 @@ make
</verb>
in the gtk+-version/ directory.
+<!-- ----------------------------------------------------------------- -->
+<sect1>When compiling GTK+ I get an error like:
+<tt/make: file `Makefile' line 456: Syntax error/
+<p>
+Make sure that you are using GNU make (use <tt/make -v/ to check). There are
+many weird and wonderful versions of make out there, and not all of them
+handle the automatically generated Makefiles.
+
+<!-- ----------------------------------------------------------------- -->
+
<sect1>I've compiled and installed GTK+, but I can't get any programs to link
with it!
<p>
@@ -223,6 +239,7 @@ and reinstall gtk+.
<sect>Development of GTK+
<!-- ***************************************************************** -->
+<!-- ----------------------------------------------------------------- -->
<sect1>When will it reach version 1.0?
<p>
The file 'TODO' in the gtk+ distribution lists the things that need to be done
@@ -311,6 +328,11 @@ ftp://ftp.gimp.org/pub/gtk/gtk--/
</verb>
<p>
+<item>Perl bindings
+<verb>
+ftp://ftp.gimp.org/pub/gtk/perl
+</verb>
+
<item>Guile bindings. The home page is at:
<verb>
http://www.ping.de/sites/zagadka/guile-gtk/
@@ -335,11 +357,6 @@ http://www.acs.ucalgary.cs/~nashceme/python-gtk/
If you try python-gtk and don't like it, there's also pygtk located at:
<verb>
ftp://ftp.gimp.org/pub/gtk/python/
-
-<item>
-If you're a perl fanatic, you might enjoy using the perl-gtk interface at:
-<verb>
-ftp://ftp.gimp.org/pub/gtk/perl/
</verb>
<item>
@@ -454,7 +471,7 @@ 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.
<!-- ----------------------------------------------------------------- -->
-<sect1>How do I catach a double click event in a list widget?
+<sect1>How do I catch a double click event in a list widget?
<p>
Tim Janik wrote to gtk-list (slightly modified):
@@ -476,11 +493,11 @@ signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data)
}
</verb></tscreen>
-And connect the handler to your object:
+And connect the handler to your object:
<tscreen><verb>
{
- /* list, list item init stuff */
+ /* list, list item init stuff */
gtk_signal_connect(GTK_OBJECT(list_item),
"button_press_event",
@@ -497,7 +514,7 @@ And connect the handler to your object:
/* something else */
}
</verb></tscreen>
-
+
<!-- ----------------------------------------------------------------- -->
<sect1>How do I find out about the selection of a GtkList?
<p>
@@ -632,110 +649,31 @@ copy gtkviewport.c and strip out the adjustment and shadow
functionality (perhaps you could call it GtkClipper).
<!-- ----------------------------------------------------------------- -->
-<sect1>How do I make menus?
-<p>
-Sascha Ziemann wrote to the gtk-list: (slightly modified)
-<quote>
-First you have to write a function for every menu: (the translate
-function returns simple strings)
-</quote>
-<tscreen><verb>
-/***********************************************************************
-** Create the File-Menu
-*/
-GtkWidget* create_file_menu (GtkWidget *window)
-{
- GtkWidget *menu;
- GtkWidget *submenu;
- GtkWidget *menuitem;
- GSList *group;
-
- menu = gtk_menu_new ();
- submenu = NULL;
- group = NULL;
-
- menuitem = gtk_menu_item_new_with_label(translate("file-new-label"));
- gtk_menu_append (GTK_MENU (menu), menuitem);
- gtk_widget_show (menuitem);
-
- menuitem = gtk_menu_item_new_with_label(translate("file-open-label"));
- gtk_menu_append (GTK_MENU (menu), menuitem);
- gtk_widget_show (menuitem);
-
- gtk_menu_line_new(GTK_MENU(menu));
-
- menuitem = gtk_menu_item_new_with_label(translate("file-save-label"));
- gtk_menu_append (GTK_MENU (menu), menuitem);
- gtk_widget_show (menuitem);
-
- menuitem = gtk_menu_item_new_with_label(translate("file-saveas-label"));
- gtk_menu_append (GTK_MENU (menu), menuitem);
- gtk_widget_show (menuitem);
-
- menuitem = gtk_menu_item_new_with_label(translate("file-saveall-label"));
- gtk_menu_append (GTK_MENU (menu), menuitem);
- gtk_widget_show (menuitem);
-
- gtk_menu_line_new(GTK_MENU(menu));
-
- menuitem = gtk_menu_item_new_with_label(translate("file-export-label"));
- gtk_menu_append (GTK_MENU (menu), menuitem);
- gtk_widget_show (menuitem);
-
- return menu;
-}
-</verb></tscreen>
-<quote>
-And in your main window creation function you create a menubar in a box.
-</quote>
-<tscreen><verb>
- /*
- ** base frame
- */
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_signal_connect (GTK_OBJECT (window), "destroy",
- (GtkSignalFunc) destroy_program,
- &amp
-window);
- gtk_widget_set_name (window, "EDINI");
- gtk_widget_set_uposition (window, 20, 20);
- base_frame_box = gtk_vbox_new (FALSE, 10);
- gtk_container_add (GTK_CONTAINER (window), base_frame_box);
- gtk_widget_show (base_frame_box);
-
- /*
- ** the menu bar
- */
- menubar = gtk_menu_bar_new ();
- gtk_box_pack_start (GTK_BOX (base_frame_box), menubar, FALSE, TRUE, 0);
- gtk_widget_show (menubar);
-
- menu = create_file_menu(window);
-
- menuitem = gtk_menu_item_new_with_label(translate("file-menu-label"));
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
- gtk_menu_bar_append (GTK_MENU_BAR (menubar), menuitem);
- gtk_widget_show (menuitem);
-
-</verb></tscreen>
-
-<!-- ----------------------------------------------------------------- -->
-<sect1>Is there a better way to do the menus?
-<p>
-Jay Painter wrote to the gtk-list: (slightly modified)
-<quote>
-The best way to make menus is with gtk_menu_factory where you create a
-structure with all your menus in it, feed it to a function, and all your
-menus get created for you without 50 calls to gtk_menuitem_new. You can
-find a good example in the GZilla code. I still don't know exaclty what
-all the fields are in the structure, but NULL is always a good choice for
-those. :)
-</quote>
-
+<sect1>Why don't the contents of a button move when the button is pressed? Here's a patch to make it work that way...
+<p>
+From: Peter Mattis
+
+The reason buttons don't move their child down and to the right when
+they are depressed is because I don't think that's what is happening
+visually. My view of buttons is that you are looking at them straight
+on. That is, the user interface lies in a plane and you're above it
+looking straight at it. When a button gets pressed it moves directly
+away from you. To be absolutely correct I guess the child should
+actually shrink a tiny amount. But I don't see why the child should
+shift down and to the left. Remember, the child is supposed to be
+attached to the buttons surface. Its not good for it to appear like
+the child is slipping on the surface of the button.
+
+On a more practical note, I did implement this at one point and
+determined it didn't look good and removed it.
+
<!-- ----------------------------------------------------------------- -->
<sect1>How can I define a separation line in a menu?
<p>
-Just insert an empty menu item:
+See the <htmlurl url="http://www.levien.com/~slow/gtk/"
+name="Tutorial"> for information on how to create menus.
+However, to create a separation line in a menu, just insert an
+empty menu item:
<tscreen><verb>
menuitem = gtk_menu_item_new();