Updates to Section 5
Wed Jan 14 13:07:30 GMT 2004 Tony Gale <gale@gtk.org> * docs/faq/gtk-faq.sgml: Updates to Section 5
This commit is contained in:

committed by
Tony Gale

parent
ecb75e12b5
commit
051d7caf9f
@ -1,3 +1,7 @@
|
|||||||
|
Wed Jan 14 13:07:30 GMT 2004 Tony Gale <gale@gtk.org>
|
||||||
|
|
||||||
|
* docs/faq/gtk-faq.sgml: Updates to Section 5
|
||||||
|
|
||||||
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkradioaction.c: Add a writable group property to align
|
* gtk/gtkradioaction.c: Add a writable group property to align
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Wed Jan 14 13:07:30 GMT 2004 Tony Gale <gale@gtk.org>
|
||||||
|
|
||||||
|
* docs/faq/gtk-faq.sgml: Updates to Section 5
|
||||||
|
|
||||||
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkradioaction.c: Add a writable group property to align
|
* gtk/gtkradioaction.c: Add a writable group property to align
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Wed Jan 14 13:07:30 GMT 2004 Tony Gale <gale@gtk.org>
|
||||||
|
|
||||||
|
* docs/faq/gtk-faq.sgml: Updates to Section 5
|
||||||
|
|
||||||
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkradioaction.c: Add a writable group property to align
|
* gtk/gtkradioaction.c: Add a writable group property to align
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Wed Jan 14 13:07:30 GMT 2004 Tony Gale <gale@gtk.org>
|
||||||
|
|
||||||
|
* docs/faq/gtk-faq.sgml: Updates to Section 5
|
||||||
|
|
||||||
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkradioaction.c: Add a writable group property to align
|
* gtk/gtkradioaction.c: Add a writable group property to align
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Wed Jan 14 13:07:30 GMT 2004 Tony Gale <gale@gtk.org>
|
||||||
|
|
||||||
|
* docs/faq/gtk-faq.sgml: Updates to Section 5
|
||||||
|
|
||||||
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
Wed Jan 14 02:34:57 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gtk/gtkradioaction.c: Add a writable group property to align
|
* gtk/gtkradioaction.c: Add a writable group property to align
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<book>
|
<book>
|
||||||
|
|
||||||
<bookinfo>
|
<bookinfo>
|
||||||
<date>January 13th 2004</date>
|
<date>January 14th 2004</date>
|
||||||
<title>GTK+ FAQ</title>
|
<title>GTK+ FAQ</title>
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
@ -1469,7 +1469,7 @@ in a priority of G_PRIORITY_HIGH.</para>
|
|||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Why does this strange 'x io error' occur when I
|
<title>Why does this strange 'x io error' occur when I
|
||||||
<literal>fork()</literal> in my GTK+ app?</title>
|
<literal>fork()</literal> in my GTK+ app? <emphasis>[GTK 2.x]</emphasis></title>
|
||||||
|
|
||||||
<para>This is not really a GTK+ problem, and the problem is
|
<para>This is not really a GTK+ problem, and the problem is
|
||||||
not related to <literal>fork()</literal> either. If the 'x io
|
not related to <literal>fork()</literal> either. If the 'x io
|
||||||
@ -1490,13 +1490,15 @@ illustrate handling fork() and exit().</para>
|
|||||||
<programlisting role="C">
|
<programlisting role="C">
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
* Filename: gtk-fork.c
|
* Filename: gtk-fork.c
|
||||||
* Version: 0.99.1
|
* Version: 0.99.2
|
||||||
* Copyright: Copyright (C) 1999, Erik Mouw
|
* Copyright: Copyright (C) 1999, Erik Mouw
|
||||||
* Author: Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
|
* Author: Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
|
||||||
* Description: GTK+ fork example
|
* Description: GTK+ fork example
|
||||||
* Created at: Thu Sep 23 21:37:55 1999
|
* Created at: Thu Sep 23 21:37:55 1999
|
||||||
* Modified by: Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
|
* Modified by: Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
|
||||||
* Modified at: Thu Sep 23 22:39:39 1999
|
* Modified at: Thu Sep 23 22:39:39 1999
|
||||||
|
* Modified by: Tony Gale <gale@gtk.org>
|
||||||
|
* Modified at: Wed Jan 14 12:38:00 2004
|
||||||
*-----------------------------------------------------------------------*/
|
*-----------------------------------------------------------------------*/
|
||||||
/*
|
/*
|
||||||
* Compile with:
|
* Compile with:
|
||||||
@ -1525,7 +1527,7 @@ void sigchld_handler(int num)
|
|||||||
sigprocmask(SIG_BLOCK, &set, &oldset);
|
sigprocmask(SIG_BLOCK, &set, &oldset);
|
||||||
|
|
||||||
/* wait for child */
|
/* wait for child */
|
||||||
while((pid = waitpid((pid_t)-1, &status, WNOHANG)) > 0)
|
while((pid = waitpid((pid_t)-1, &status, WNOHANG)) > 0)
|
||||||
{
|
{
|
||||||
if(WIFEXITED(status))
|
if(WIFEXITED(status))
|
||||||
{
|
{
|
||||||
@ -1622,13 +1624,13 @@ int main(int argc, char *argv[])
|
|||||||
*/
|
*/
|
||||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT (window), "delete_event",
|
g_signal_connect(G_OBJECT (window), "delete_event",
|
||||||
GTK_SIGNAL_FUNC(delete_event), NULL);
|
G_CALLBACK(delete_event), NULL);
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT (window), "destroy",
|
g_signal_connect(G_OBJECT (window), "destroy",
|
||||||
GTK_SIGNAL_FUNC(destroy), NULL);
|
G_CALLBACK(destroy), NULL);
|
||||||
|
|
||||||
#if (GTK_MAJOR_VERSION == 1) && (GTK_MINOR_VERSION == 0)
|
#if (GTK_MAJOR_VERSION == 1) && (GTK_MINOR_VERSION == 0)
|
||||||
gtk_container_border_width(GTK_CONTAINER (window), 10);
|
gtk_container_border_width(GTK_CONTAINER (window), 10);
|
||||||
#else
|
#else
|
||||||
gtk_container_set_border_width(GTK_CONTAINER (window), 10);
|
gtk_container_set_border_width(GTK_CONTAINER (window), 10);
|
||||||
@ -1637,8 +1639,8 @@ int main(int argc, char *argv[])
|
|||||||
/* add a button to do something usefull */
|
/* add a button to do something usefull */
|
||||||
button = gtk_button_new_with_label("Fork me!");
|
button = gtk_button_new_with_label("Fork me!");
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT (button), "clicked",
|
g_signal_connect(G_OBJECT (button), "clicked",
|
||||||
GTK_SIGNAL_FUNC(fork_me), NULL);
|
G_CALLBACK(fork_me), NULL);
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(window), button);
|
gtk_container_add(GTK_CONTAINER(window), button);
|
||||||
|
|
||||||
@ -1663,7 +1665,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Why don't the contents of a button move when the button
|
<title>Why don't the contents of a button move when the button
|
||||||
is pressed? Here's a patch to make it work that way...</title>
|
is pressed? Here's a patch to make it work that way... <emphasis>[GTK 2.x]</emphasis></title>
|
||||||
|
|
||||||
<para>From: Peter Mattis</para>
|
<para>From: Peter Mattis</para>
|
||||||
|
|
||||||
@ -1689,12 +1691,12 @@ and determined it didn't look good and removed it.</quote></para>
|
|||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>How do I identifiy a widgets top level window or other
|
<title>How do I identifiy a widgets top level window or other
|
||||||
ancestor?</title>
|
ancestor? <emphasis>[GTK 2.x]</emphasis></title>
|
||||||
|
|
||||||
<para>There are a couple of ways to find the top level parent
|
<para>There are a couple of ways to find the top level parent
|
||||||
of a widget. The easier way is to call the
|
of a widget. The easiest way is to call the
|
||||||
<literal>gtk_widget_get_toplevel()</literal> function that
|
<literal>gtk_widget_get_toplevel()</literal> function that
|
||||||
returns pointer to a GtkWidget that is the top level
|
returns a pointer to a GtkWidget that is the top level
|
||||||
window.</para>
|
window.</para>
|
||||||
|
|
||||||
<para>A more complicated way to do this (but less limited, as
|
<para>A more complicated way to do this (but less limited, as
|
||||||
@ -1718,12 +1720,16 @@ widget (entry, label, etc. To find the master hbox using the
|
|||||||
hbox = gtk_widget_get_ancestor(w, GTK_TYPE_HBOX);
|
hbox = gtk_widget_get_ancestor(w, GTK_TYPE_HBOX);
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
|
<para>You can also follow the a widgets ancestry by using the function
|
||||||
|
<literal>gtk_widget_get_parent()</literal> that returns a pointer
|
||||||
|
to a widgets parent widget.</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!-- ----------------------------------------------------------------- -->
|
<!-- ----------------------------------------------------------------- -->
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>How do I get the Window ID of a GtkWindow?</title>
|
<title>How do I get the Window ID of a GtkWindow? <emphasis>[GTK 2.x]</emphasis></title>
|
||||||
|
|
||||||
<para>The actual Gdk/X window will be created when the widget
|
<para>The actual Gdk/X window will be created when the widget
|
||||||
gets realized. You can get the Window ID with:</para>
|
gets realized. You can get the Window ID with:</para>
|
||||||
@ -1738,8 +1744,7 @@ Window xwin = GDK_WINDOW_XWINDOW (GTK_WIDGET (my_window)->window);
|
|||||||
<!-- ----------------------------------------------------------------- -->
|
<!-- ----------------------------------------------------------------- -->
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>How do I catch a double click event (in a list widget,
|
<title>How do I catch a double click event? <emphasis>[GTK 2.x]</emphasis></title>
|
||||||
for example)?</title>
|
|
||||||
|
|
||||||
<para>Tim Janik wrote to gtk-list (slightly modified):</para>
|
<para>Tim Janik wrote to gtk-list (slightly modified):</para>
|
||||||
|
|
||||||
@ -1749,10 +1754,10 @@ for example)?</title>
|
|||||||
gint
|
gint
|
||||||
signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_data)
|
signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_data)
|
||||||
{
|
{
|
||||||
if (GTK_IS_LIST_ITEM(widget) &&
|
if (GTK_IS_BUTTON(widget) &&
|
||||||
(event->type==GDK_2BUTTON_PRESS ||
|
(event->type==GDK_2BUTTON_PRESS ||
|
||||||
event->type==GDK_3BUTTON_PRESS) ) {
|
event->type==GDK_3BUTTON_PRESS) ) {
|
||||||
printf("I feel %s clicked on button %d\n",
|
printf("I feel %s clicked with button %d\n",
|
||||||
event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
|
event->type==GDK_2BUTTON_PRESS ? "double" : "triple",
|
||||||
event->button);
|
event->button);
|
||||||
}
|
}
|
||||||
@ -1764,18 +1769,18 @@ signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_dat
|
|||||||
|
|
||||||
<programlisting role="C">
|
<programlisting role="C">
|
||||||
{
|
{
|
||||||
/* list, list item init stuff */
|
/* button init stuff */
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT(list_item),
|
g_signal_connect(G_OBJECT(button),
|
||||||
"button_press_event",
|
"button_press_event",
|
||||||
GTK_SIGNAL_FUNC(signal_handler_event),
|
G_CALLBACK(signal_handler_event),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
/* and/or */
|
/* and/or */
|
||||||
|
|
||||||
gtk_signal_connect(GTK_OBJECT(list_item),
|
g_signal_connect(G_OBJECT(button),
|
||||||
"button_release_event",
|
"button_release_event",
|
||||||
GTK_SIGNAL_FUNC(signal_handler_event),
|
G_CALLBACK(signal_handler_event),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
/* something else */
|
/* something else */
|
||||||
|
Reference in New Issue
Block a user