Merged changes from gtk-1-0. Check ChangeLog for details.

This commit is contained in:
Owen Taylor 1998-05-01 04:23:59 +00:00
parent e909f843f8
commit 05bc6a5b36
54 changed files with 2444 additions and 943 deletions

162
ChangeLog
View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -1,3 +1,165 @@
Merges from gtk-1-0
===================
Thu Apr 30 23:32:51 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
Check to catch the case when the viewport fits in either
direction or both, instead of flip-flopping infinitely.
Only show/hide the scrollbars once at the end.
Thu Apr 30 21:56:07 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach):
Include the scrollbars in the foreach call.
(gtk-fortier-980405-0.patch;
Patrice Fortier <Patrice.Fortier@aquarel.fr>).
The notebook widget
really should also include its tabs, but that might cause
problems for programs if they
Thu Apr 30 21:51:52 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkpixmap.c (gtk_pixmap_set): Only request a
resize if the size actually changed.
(gtk-johannes-980414-0.patch ;
johannes@nada.kth.se (Johannes Keukelaar) )
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
ltmain.sh ltconfig config.sub config.guess:
Reverted back to libtool-1.2 (plus minor patches) so as not to
force the issue for everyone else.
Thu Apr 30 10:22:59 1998 Owen Taylor <otaylor@gtk.org>
* glib/ltmain.sh glib/ltconfig glib/config.sub glib/config.guess:
Updated to libtool 1.2a.
* gtk/gtkclist.c: Draw the in-between lines with style->base
instead of style->white.
Wed Apr 29 15:46:13 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkprivate.h gdk/gdkwindow.c gdk/gdkpixmap.c:
Cache the colormap and children of a window locally
instead of fetching them from the server when needed.
Huge performance difference for creating/destroying
windows.
* gtk/gtkstyle.c: Find the depth from the cached
visual, instead of asking the server.
* gtk.m4: Distribute the new version which tries to
figure out what went wrong and give helpful error
messages.
* ltmain.sh ltconfig config.sub config.sh:
Updated to libtool 1.2a
* gtk/gtktext.c: Fixed a bug where the drawn level
was being messed up when the text was scrolled
during a deletion.
Thu Apr 30 02:42:11 PDT 1998 Manish Singh <yosh@gimp.org>
* gtk/gtkfilesel.c: don't die when naughty people remove parts of
the filesystem under you (fix from Josh)
Thu Apr 30 09:49:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_foreach): check
if the viewport already exists before iterating over it, maybe we
haven't been constructed yet.
Thu Apr 30 01:51:00 1998 Tim Janik <timj@gtk.org>
* gtk/gtkbin.c (gtk_bin_add): made this function issue a warning if
the GtkBin widget already has a child.
* gtk/gtkbox.c (gtk_box_pack_{start|end}):
check that child->parent == NULL;
Tue Apr 28 22:13:54 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkselection.c (gtk_selection_clear): Only return
FALSE when the clear event is been rejected, not when
widget has already lost the selection. (Which should
only happen when we are setting the selection to another
widget ourself.)
Fri Apr 24 19:07:32 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkfixed.c gtk/gtkpaned.c gtk/gtktable.c:
Removed the "check visibility after gtk_widget_unparent" bug
in hopefully the last three places.
Tue Apr 28 15:46:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtkrc.c (gtk_rc_parse_statement): allow the inclusion of other
rc-files.
Mon Apr 27 15:11:52 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_grab_focus): only allow grabbing of focus
for CAN_FOCUS widgets.
* gtk/testgtk.c (create_scrolled_windows): feature h/v focus
adjustments for the table.
(create_list): feature automatic adjustment of the scrolled window to
always contain the focused child.
(create_main_window): keep the focussed button always inside of the
scrolled windoww.
* gtk/gtkcontainer.c (gtk_real_container_focus): set the h/v focus
adjustments, to contain the allocation of the currently focused child.
(gtk_container_set_focus_hadjustment): new functin to set the
horizontal focus adjustment.
(gtk_container_set_focus_vadjustment): new functin to set the vertical
focus adjustment.
* gtk/gtkadjustment.c (gtk_adjustment_clamp_page): new fucntion to
clamp the currents adjustment page into a specific range.
* random GtkType fixups for gtk_*_get_type() functions.
Fri Apr 24 18:37:16 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtktreeitem.c (gtk_tree_item_remove_subtree):
Account for the fact that gtk_tree_item_remove_subtree
will be called recursively.
Handle removing a collapsed subtree.
(From Andy Dustman <adustman@comstar.net>)
* gtk/gtktree.c (gtk_tree_remove_items): Look for the
root tree when removing items from a non-previously
mapped tree.
* gtk/testgtk.c: Added a remove_subtree button.
Thu Apr 23 23:44:17 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkobject.c (gtk_object_finalize): Notify all weak references
before object removing data. This change fixes a bug where
removing the last weak references would cause it to be
triggered.
Wed Apr 15 20:42:46 1998 Owen Taylor <otaylor@gtk.org>
* gdk/Makefile.am: Removed mostly useless dependency that
was causing problems for SGI's make, when used with
the 'make dist' form of GTK+. (Dependency caused dependencies
to be redone when BUILT_SOURCES changed)
==========
Thu Apr 30 11:18:00 1998 Owen Taylor <otaylor@gtk.org>
* gtk/gtkcombo.[ch]: Allow the user to use the popup list

View File

@ -6,10 +6,10 @@ SUBDIRS = $(SRC_SUBDIRS) docs
bin_SCRIPTS = gtk-config
EXTRA_DIST = \
gtk+.prj \
gtk.m4 \
makecopyright \
TODO \
gtk+.spec \
gtk.m4 \
makecopyright \
TODO \
ChangeLog.pre-1-0 \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \

View File

@ -78,5 +78,3 @@ files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
$(DEP_FILES) : $(BUILT_SOURCES)

View File

@ -1,21 +1,3 @@
/* GDK - The GIMP Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#define GDK_VoidSymbol 0xFFFFFF
#define GDK_BackSpace 0xFF08
#define GDK_Tab 0xFF09
@ -28,6 +10,9 @@
#define GDK_Escape 0xFF1B
#define GDK_Delete 0xFFFF
#define GDK_Multi_key 0xFF20
#define GDK_SingleCandidate 0xFF3C
#define GDK_MultipleCandidate 0xFF3D
#define GDK_PreviousCandidate 0xFF3E
#define GDK_Kanji 0xFF21
#define GDK_Muhenkan 0xFF22
#define GDK_Henkan_Mode 0xFF23
@ -45,6 +30,8 @@
#define GDK_Kana_Shift 0xFF2E
#define GDK_Eisu_Shift 0xFF2F
#define GDK_Eisu_toggle 0xFF30
#define GDK_Zen_Koho 0xFF3D
#define GDK_Mae_Koho 0xFF3E
#define GDK_Home 0xFF50
#define GDK_Left 0xFF51
#define GDK_Up 0xFF52
@ -234,11 +221,23 @@
#define GDK_dead_iota 0xFE5D
#define GDK_dead_voiced_sound 0xFE5E
#define GDK_dead_semivoiced_sound 0xFE5F
#define GDK_dead_belowdot 0xFE60
#define GDK_First_Virtual_Screen 0xFED0
#define GDK_Prev_Virtual_Screen 0xFED1
#define GDK_Next_Virtual_Screen 0xFED2
#define GDK_Last_Virtual_Screen 0xFED4
#define GDK_Terminate_Server 0xFED5
#define GDK_AccessX_Enable 0xFE70
#define GDK_AccessX_Feedback_Enable 0xFE71
#define GDK_RepeatKeys_Enable 0xFE72
#define GDK_SlowKeys_Enable 0xFE73
#define GDK_BounceKeys_Enable 0xFE74
#define GDK_StickyKeys_Enable 0xFE75
#define GDK_MouseKeys_Enable 0xFE76
#define GDK_MouseKeys_Accel_Enable 0xFE77
#define GDK_Overlay1_Enable 0xFE78
#define GDK_Overlay2_Enable 0xFE79
#define GDK_AudibleBell_Enable 0xFE7A
#define GDK_Pointer_Left 0xFEE0
#define GDK_Pointer_Right 0xFEE1
#define GDK_Pointer_Up 0xFEE2
@ -264,6 +263,7 @@
#define GDK_Pointer_Drag2 0xFEF6
#define GDK_Pointer_Drag3 0xFEF7
#define GDK_Pointer_Drag4 0xFEF8
#define GDK_Pointer_Drag5 0xFEFD
#define GDK_Pointer_EnableKeys 0xFEF9
#define GDK_Pointer_Accelerate 0xFEFA
#define GDK_Pointer_DfltBtnNext 0xFEFB

View File

@ -55,7 +55,7 @@ gdk_pixmap_new (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
@ -64,6 +64,7 @@ gdk_pixmap_new (GdkWindow *window,
private->window_type = GDK_WINDOW_PIXMAP;
private->xwindow = XCreatePixmap (private->xdisplay, window_private->xwindow,
width, height, depth);
private->colormap = NULL;
private->parent = NULL;
private->x = 0;
private->y = 0;
@ -148,7 +149,7 @@ gdk_pixmap_create_from_data (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;

View File

@ -191,6 +191,7 @@ gdk_window_init ()
gdk_root_parent.window.user_data = NULL;
gdk_root_parent.width = width;
gdk_root_parent.height = height;
gdk_root_parent.children = NULL;
}
GdkWindow*
@ -202,7 +203,6 @@ gdk_window_new (GdkWindow *parent,
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
GdkVisual *visual;
GdkColormap *colormap;
Display *parent_display;
Window xparent;
Visual *xvisual;
@ -232,6 +232,10 @@ gdk_window_new (GdkWindow *parent,
window = (GdkWindow*) private;
private->parent = parent;
if (parent_private != &gdk_root_parent)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xdisplay = parent_display;
private->destroyed = FALSE;
private->resize_count = 0;
@ -264,6 +268,7 @@ gdk_window_new (GdkWindow *parent,
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@ -296,9 +301,9 @@ gdk_window_new (GdkWindow *parent,
depth = visual->depth;
if (attributes_mask & GDK_WA_COLORMAP)
colormap = attributes->colormap;
private->colormap = attributes->colormap;
else
colormap = gdk_colormap_get_system ();
private->colormap = gdk_colormap_get_system ();
xattributes.background_pixel = BlackPixel (gdk_display, gdk_screen);
xattributes.border_pixel = BlackPixel (gdk_display, gdk_screen);
@ -307,26 +312,26 @@ gdk_window_new (GdkWindow *parent,
switch (private->window_type)
{
case GDK_WINDOW_TOPLEVEL:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_CHILD:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
break;
case GDK_WINDOW_DIALOG:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_TEMP:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
@ -348,7 +353,7 @@ gdk_window_new (GdkWindow *parent,
{
depth = 0;
class = InputOnly;
colormap = NULL;
private->colormap = NULL;
}
private->xwindow = XCreateWindow (private->xdisplay, xparent,
@ -358,6 +363,9 @@ gdk_window_new (GdkWindow *parent,
gdk_window_ref (window);
gdk_xid_table_insert (&private->xwindow, window);
if (private->colormap)
gdk_colormap_ref (private->colormap);
gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
(attributes->cursor) :
NULL));
@ -372,8 +380,8 @@ gdk_window_new (GdkWindow *parent,
break;
case GDK_WINDOW_CHILD:
if ((attributes->wclass == GDK_INPUT_OUTPUT) &&
(colormap != gdk_colormap_get_system ()) &&
(colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
(private->colormap != gdk_colormap_get_system ()) &&
(private->colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
{
GDK_NOTE (MISC, g_print ("adding colormap window\n"));
gdk_window_add_colormap_windows (window);
@ -430,6 +438,7 @@ gdk_window_foreign_new (guint32 anid)
{
GdkWindow *window;
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
XWindowAttributes attrs;
Window root, parent;
Window *children;
@ -446,6 +455,11 @@ gdk_window_foreign_new (guint32 anid)
XFree (children);
private->parent = gdk_xid_table_lookup (parent);
parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xwindow = anid;
private->xdisplay = gdk_display;
private->x = attrs.x;
@ -469,6 +483,7 @@ gdk_window_foreign_new (guint32 anid)
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@ -507,10 +522,17 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
case GDK_WINDOW_FOREIGN:
if (!private->destroyed)
{
if (private->parent)
{
GdkWindowPrivate *parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private->children)
parent_private->children = g_list_remove (parent_private->children, window);
}
if (private->window_type != GDK_WINDOW_FOREIGN)
{
children = gdk_window_get_children (window);
tmp = children;
children = tmp = private->children;
private->children = NULL;
while (tmp)
{
@ -522,7 +544,7 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
gdk_window_internal_destroy (temp_window, FALSE,
our_destroy);
}
g_list_free (children);
}
@ -581,6 +603,9 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
else if (xdestroy)
XDestroyWindow (private->xdisplay, private->xwindow);
if (private->colormap)
gdk_colormap_unref (private->colormap);
private->destroyed = TRUE;
}
break;
@ -1059,6 +1084,11 @@ gdk_window_set_colormap (GdkWindow *window,
XSetWindowColormap (window_private->xdisplay,
window_private->xwindow,
colormap_private->xcolormap);
if (window_private->colormap)
gdk_colormap_unref (window_private->colormap);
window_private->colormap = colormap;
gdk_colormap_ref (window_private->colormap);
if (window_private->window_type != GDK_WINDOW_TOPLEVEL)
gdk_window_add_colormap_windows (window);
@ -1153,7 +1183,7 @@ gdk_window_get_visual (GdkWindow *window)
{
GdkWindowPrivate *window_private;
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
window_private = (GdkWindowPrivate*) window;
@ -1162,11 +1192,15 @@ gdk_window_get_visual (GdkWindow *window)
if (window_private && !window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
if (window_private->window_type == GDK_WINDOW_FOREIGN)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
}
else
return ((GdkColormapPrivate *)window_private->colormap)->visual;
}
return NULL;
@ -1176,7 +1210,6 @@ GdkColormap*
gdk_window_get_colormap (GdkWindow *window)
{
GdkWindowPrivate *window_private;
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
@ -1184,11 +1217,7 @@ gdk_window_get_colormap (GdkWindow *window)
if (!window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_colormap_lookup (window_attributes.colormap);
return window_private->colormap;
}
return NULL;

View File

@ -55,7 +55,7 @@ gdk_pixmap_new (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;
@ -64,6 +64,7 @@ gdk_pixmap_new (GdkWindow *window,
private->window_type = GDK_WINDOW_PIXMAP;
private->xwindow = XCreatePixmap (private->xdisplay, window_private->xwindow,
width, height, depth);
private->colormap = NULL;
private->parent = NULL;
private->x = 0;
private->y = 0;
@ -148,7 +149,7 @@ gdk_pixmap_create_from_data (GdkWindow *window,
return NULL;
if (depth == -1)
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
private = g_new (GdkWindowPrivate, 1);
pixmap = (GdkPixmap*) private;

View File

@ -191,6 +191,7 @@ gdk_window_init ()
gdk_root_parent.window.user_data = NULL;
gdk_root_parent.width = width;
gdk_root_parent.height = height;
gdk_root_parent.children = NULL;
}
GdkWindow*
@ -202,7 +203,6 @@ gdk_window_new (GdkWindow *parent,
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
GdkVisual *visual;
GdkColormap *colormap;
Display *parent_display;
Window xparent;
Visual *xvisual;
@ -232,6 +232,10 @@ gdk_window_new (GdkWindow *parent,
window = (GdkWindow*) private;
private->parent = parent;
if (parent_private != &gdk_root_parent)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xdisplay = parent_display;
private->destroyed = FALSE;
private->resize_count = 0;
@ -264,6 +268,7 @@ gdk_window_new (GdkWindow *parent,
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@ -296,9 +301,9 @@ gdk_window_new (GdkWindow *parent,
depth = visual->depth;
if (attributes_mask & GDK_WA_COLORMAP)
colormap = attributes->colormap;
private->colormap = attributes->colormap;
else
colormap = gdk_colormap_get_system ();
private->colormap = gdk_colormap_get_system ();
xattributes.background_pixel = BlackPixel (gdk_display, gdk_screen);
xattributes.border_pixel = BlackPixel (gdk_display, gdk_screen);
@ -307,26 +312,26 @@ gdk_window_new (GdkWindow *parent,
switch (private->window_type)
{
case GDK_WINDOW_TOPLEVEL:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_CHILD:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
break;
case GDK_WINDOW_DIALOG:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
break;
case GDK_WINDOW_TEMP:
xattributes.colormap = ((GdkColormapPrivate*) colormap)->xcolormap;
xattributes.colormap = ((GdkColormapPrivate*) private->colormap)->xcolormap;
xattributes_mask |= CWColormap;
xparent = gdk_root_window;
@ -348,7 +353,7 @@ gdk_window_new (GdkWindow *parent,
{
depth = 0;
class = InputOnly;
colormap = NULL;
private->colormap = NULL;
}
private->xwindow = XCreateWindow (private->xdisplay, xparent,
@ -358,6 +363,9 @@ gdk_window_new (GdkWindow *parent,
gdk_window_ref (window);
gdk_xid_table_insert (&private->xwindow, window);
if (private->colormap)
gdk_colormap_ref (private->colormap);
gdk_window_set_cursor (window, ((attributes_mask & GDK_WA_CURSOR) ?
(attributes->cursor) :
NULL));
@ -372,8 +380,8 @@ gdk_window_new (GdkWindow *parent,
break;
case GDK_WINDOW_CHILD:
if ((attributes->wclass == GDK_INPUT_OUTPUT) &&
(colormap != gdk_colormap_get_system ()) &&
(colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
(private->colormap != gdk_colormap_get_system ()) &&
(private->colormap != gdk_window_get_colormap (gdk_window_get_toplevel (window))))
{
GDK_NOTE (MISC, g_print ("adding colormap window\n"));
gdk_window_add_colormap_windows (window);
@ -430,6 +438,7 @@ gdk_window_foreign_new (guint32 anid)
{
GdkWindow *window;
GdkWindowPrivate *private;
GdkWindowPrivate *parent_private;
XWindowAttributes attrs;
Window root, parent;
Window *children;
@ -446,6 +455,11 @@ gdk_window_foreign_new (guint32 anid)
XFree (children);
private->parent = gdk_xid_table_lookup (parent);
parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private)
parent_private->children = g_list_prepend (parent_private->children, window);
private->xwindow = anid;
private->xdisplay = gdk_display;
private->x = attrs.x;
@ -469,6 +483,7 @@ gdk_window_foreign_new (guint32 anid)
private->dnd_drag_eventmask = private->dnd_drag_savedeventmask = 0;
private->filters = NULL;
private->children = NULL;
window->user_data = NULL;
@ -507,10 +522,17 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
case GDK_WINDOW_FOREIGN:
if (!private->destroyed)
{
if (private->parent)
{
GdkWindowPrivate *parent_private = (GdkWindowPrivate *)private->parent;
if (parent_private->children)
parent_private->children = g_list_remove (parent_private->children, window);
}
if (private->window_type != GDK_WINDOW_FOREIGN)
{
children = gdk_window_get_children (window);
tmp = children;
children = tmp = private->children;
private->children = NULL;
while (tmp)
{
@ -522,7 +544,7 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
gdk_window_internal_destroy (temp_window, FALSE,
our_destroy);
}
g_list_free (children);
}
@ -581,6 +603,9 @@ gdk_window_internal_destroy (GdkWindow *window, gboolean xdestroy,
else if (xdestroy)
XDestroyWindow (private->xdisplay, private->xwindow);
if (private->colormap)
gdk_colormap_unref (private->colormap);
private->destroyed = TRUE;
}
break;
@ -1059,6 +1084,11 @@ gdk_window_set_colormap (GdkWindow *window,
XSetWindowColormap (window_private->xdisplay,
window_private->xwindow,
colormap_private->xcolormap);
if (window_private->colormap)
gdk_colormap_unref (window_private->colormap);
window_private->colormap = colormap;
gdk_colormap_ref (window_private->colormap);
if (window_private->window_type != GDK_WINDOW_TOPLEVEL)
gdk_window_add_colormap_windows (window);
@ -1153,7 +1183,7 @@ gdk_window_get_visual (GdkWindow *window)
{
GdkWindowPrivate *window_private;
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
window_private = (GdkWindowPrivate*) window;
@ -1162,11 +1192,15 @@ gdk_window_get_visual (GdkWindow *window)
if (window_private && !window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
if (window_private->window_type == GDK_WINDOW_FOREIGN)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_visual_lookup (window_attributes.visual);
}
else
return ((GdkColormapPrivate *)window_private->colormap)->visual;
}
return NULL;
@ -1176,7 +1210,6 @@ GdkColormap*
gdk_window_get_colormap (GdkWindow *window)
{
GdkWindowPrivate *window_private;
XWindowAttributes window_attributes;
g_return_val_if_fail (window != NULL, NULL);
@ -1184,11 +1217,7 @@ gdk_window_get_colormap (GdkWindow *window)
if (!window_private->destroyed)
{
XGetWindowAttributes (window_private->xdisplay,
window_private->xwindow,
&window_attributes);
return gdk_colormap_lookup (window_attributes.colormap);
return window_private->colormap;
}
return NULL;

View File

@ -4,6 +4,11 @@
a link in a list - should be the inverse of g_list_nth(), but
haven't tested it so poof.
Thu Apr 30 21:41:30 1998 Owen Taylor <otaylor@gtk.org>
* gstring.c : Check arguments more carefully,
(gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
Tue Apr 7 19:36:48 1998 Owen Taylor <owt1@cornell.edu>
* gutils.c (g_direct_compare): Removed, because that's what

View File

@ -254,8 +254,11 @@ GString*
g_string_append (GString *fstring, gchar *val)
{
GRealString *string = (GRealString*)fstring;
int len = strlen (val);
int len;
g_return_val_if_fail (val != NULL, fstring);
len = strlen (val);
g_string_maybe_expand (string, len);
strcpy (string->str + string->len, val);
@ -282,8 +285,11 @@ GString*
g_string_prepend (GString *fstring, gchar *val)
{
GRealString *string = (GRealString*)fstring;
gint len = strlen (val);
gint len;
g_return_val_if_fail (val != NULL, fstring);
len = strlen (val);
g_string_maybe_expand (string, len);
g_memmove (string->str + len, string->str, string->len);
@ -319,10 +325,13 @@ GString *
g_string_insert (GString *fstring, gint pos, gchar *val)
{
GRealString *string = (GRealString*)fstring;
gint len = strlen (val);
gint len;
g_return_val_if_fail (val != NULL, fstring);
g_return_val_if_fail (pos >= 0, fstring);
g_return_val_if_fail (pos <= string->len, fstring);
len = strlen (val);
g_string_maybe_expand (string, len);
g_memmove (string->str + pos + len, string->str + pos, string->len - pos);
@ -361,10 +370,13 @@ g_string_erase (GString *fstring, gint pos, gint len)
{
GRealString *string = (GRealString*)fstring;
g_return_val_if_fail (len >= 0, fstring);
g_return_val_if_fail (pos >= 0, fstring);
g_return_val_if_fail (pos <= string->len, fstring);
g_return_val_if_fail (pos + len <= string->len, fstring);
g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
if (pos + len < string->len)
g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
string->len -= len;

View File

@ -32,23 +32,43 @@ if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# The Solaris, AIX, and Digital Unix default echo programs unquote
# backslashes. This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo="printf %s\\n"
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
#
# So, first we look for a working echo in the user's PATH.
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
if test "X$echo" = Xecho; then
# We didn't find a better echo, so look for alternatives.
if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
# This shell has a builtin print -r that does the trick.
echo='print -r'
#
# The following is from libtool-1.2a, won't work with this patched
# libtool-1.2
#
# elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
# # If we have ksh, try running ltconfig again with it.
# CONFIG_SHELL=/bin/ksh
# export CONFIG_SHELL
# exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
else
# Try using printf.
echo='printf %s\n'
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We lost completely, so just stick with echo.
echo=echo
fi
done
IFS="$save_ifs"
fi
fi
fi
@ -66,7 +86,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
rm="rm -f"
@ -421,7 +441,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
echo "$progname:424: checking whether we are using GNU C" >&5
echo "$progname:444: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
@ -429,7 +449,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:452: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
@ -544,14 +564,15 @@ if test -n "$pic_flag"; then
echo > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any errors to the config.log.
echo "$progname:567: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any warnings to the config.log.
cat conftest.err 1>&5
# On HP-UX, the stripped-down bundled CC does not accept +Z, but also
# reports no error. So, we need to grep stderr for (Bundled).
if grep '(Bundled)' conftest.err >/dev/null; then
# On HP-UX, both CC and GCC only warn that PIC is supported... then they
# create non-PIC objects. So, if there were any warnings, we assume that
# PIC is not supported.
if test -s conftest.err; then
echo "$ac_t"no 1>&6
can_build_shared=no
pic_flag=
@ -587,8 +608,8 @@ $rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
echo "$progname:590: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$progname:611: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$ac_t$link_static_flag" 1>&6
else
echo "$ac_t"none 1>&6
@ -620,7 +641,7 @@ if test -z "$LD"; then
if test "$with_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
echo "$progname:623: checking for ld used by GCC" >&5
echo "$progname:644: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
@ -638,10 +659,10 @@ if test -z "$LD"; then
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
echo "$progname:641: checking for GNU ld" >&5
echo "$progname:662: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
echo "$progname:644: checking for non-GNU ld" >&5
echo "$progname:665: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
@ -967,11 +988,11 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
echo "$progname:970: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
echo "$progname:991: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
# Now try to grab the symbols.
nlist=conftest.nm
if { echo "$progname:974: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
if { echo "$progname:995: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@ -1029,7 +1050,7 @@ EOF
save_CFLAGS="$CFLAGS"
LIBS='conftestm.o'
CFLAGS="$CFLAGS$no_builtin_flag"
if { (eval echo $progname:1032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo $progname:1053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5

View File

@ -30,7 +30,7 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
default_mode=
help="Try \`$progname --help' for more information."
@ -481,7 +481,7 @@ if test -z "$show_help"; then
if test "$export_dynamic" != yes; then
export_dynamic=yes
if test -n "$export_dynamic_flag_spec"; then
arg=`eval \\$echo "$export_dynamic_flag_spec"`
eval arg=\"$export_dynamic_flag_spec\"
else
arg=
fi
@ -682,7 +682,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@ -843,7 +843,7 @@ if test -z "$show_help"; then
esac
name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
libname=`eval \\$echo \"$libname_spec\"`
eval libname=\"$libname_spec\"
# All the library-specific variables (install_libdir is set above).
library_names=
@ -1006,13 +1006,13 @@ if test -z "$show_help"; then
if test "$build_libtool_libs" = yes; then
# Get the real and link names of the library.
library_names=`eval \\$echo \"$library_names_spec\"`
eval library_names=\"$library_names_spec\"
set dummy $library_names
realname="$2"
shift; shift
if test -n "$soname_spec"; then
soname=`eval \\$echo \"$soname_spec\"`
eval soname=\"$soname_spec\"
else
soname="$realname"
fi
@ -1027,7 +1027,7 @@ if test -z "$show_help"; then
test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
# Do each of the archive commands.
cmds=`eval \\$echo \"$archive_cmds\"`
eval cmds=\"$archive_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1104,7 +1104,7 @@ if test -z "$show_help"; then
reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
output="$obj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1128,7 +1128,7 @@ if test -z "$show_help"; then
# Only do commands if we really have different PIC objects.
reload_objs="$libobjs"
output="$libobj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1177,7 +1177,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@ -1254,8 +1254,8 @@ if test -z "$show_help"; then
case "$dlsyms" in
"") ;;
*.c)
$echo > "$objdir/$dlsyms" \
"/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
$echo > "$objdir/$dlsyms" "\
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
#ifdef __cplusplus
@ -1266,17 +1266,17 @@ extern \"C\" {
#define dld_preloaded_symbol_count some_other_symbol
#define dld_preloaded_symbols some_other_symbol
/* External symbol declarations for the compiler. */"
/* External symbol declarations for the compiler. */\
"
if test -f "$nlist"; then
sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
else
echo '/* NONE */' >> "$objdir/$dlsyms"
EOF
fi
$echo >> "$objdir/$dlsyms" \
"
$echo >> "$objdir/$dlsyms" "\
#undef dld_preloaded_symbol_count
#undef dld_preloaded_symbols
@ -1295,19 +1295,21 @@ struct {
__ptr_t address;
}
dld_preloaded_symbols[] =
{"
{\
"
if test -f "$nlist"; then
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
fi
$echo >> "$objdir/$dlsyms" \
" {0, (__ptr_t) 0}
$echo >> "$objdir/$dlsyms" "\
{0, (__ptr_t) 0}
};
#ifdef __cplusplus
}
#endif"
#endif\
"
;;
*)
@ -1427,8 +1429,8 @@ dld_preloaded_symbols[] =
$rm $output
trap "$rm $output; exit 1" 1 2 15
$echo > $output \
"#! /bin/sh
$echo > $output "\
#! /bin/sh
# $output - temporary wrapper script for $objdir/$output
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
@ -1459,10 +1461,9 @@ else
else
echo=\"$qecho\"
file=\"\$0\"
fi
"
$echo >> $output \
fi\
"
$echo >> $output "\
# Find the directory that this script lives in.
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
@ -1496,8 +1497,8 @@ else
# Export our shlibpath_var if we have one.
if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
$echo >> $output \
" # Add our own library path to $shlibpath_var
$echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
@ -1507,24 +1508,17 @@ else
"
fi
echo >> $output \
" if test \"\$libtool_execute_magic\" != \"$magic\"; then
$echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
args=
for arg
do
# Quote arguments (to preserve shell metacharacters).
arg=\`\$echo \"X\$arg\" | \$Xsed -e \"\$sed_quote_subst\"\`
args=\"\$args \\\"\$arg\\\"\"
done
# Export the path to the program.
PATH=\"\$progdir:\$PATH\"
export PATH
eval \"exec \$program \$args\"
exec \$program \${1+\"\$@\"}
\$echo \"\$0: cannot exec \$program \$args\"
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit 1
fi
else
@ -1534,7 +1528,8 @@ else
echo \"See the $PACKAGE documentation for more information.\" 1>&2
exit 1
fi
fi"
fi\
"
chmod +x $output
fi
exit 0
@ -1548,9 +1543,9 @@ fi"
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
cmds=`eval \\$echo \"$old_archive_from_new_cmds\"`
eval cmds=\"$old_archive_from_new_cmds\"
else
cmds=`eval \\$echo \"$old_archive_cmds\"`
eval cmds=\"$old_archive_cmds\"
fi
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
@ -1571,8 +1566,8 @@ fi"
# Only create the output if not a dry run.
if test -z "$run"; then
echo > $output \
"# $output - a libtool library file
$echo > $output "\
# $output - a libtool library file
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
# The name that we can dlopen(3).
@ -1593,7 +1588,8 @@ age=$age
revision=$revision
# Directory that this library needs to be installed in:
libdir='$install_libdir'"
libdir='$install_libdir'\
"
fi
# Do a symbolic link so that the libtool archive can be found in
@ -1835,7 +1831,7 @@ libdir='$install_libdir'"
# Do each command in the postinstall commands.
lib="$destdir/$realname"
cmds=`eval \\$echo \"$postinstall_cmds\"`
eval cmds=\"$postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1972,7 +1968,7 @@ libdir='$install_libdir'"
$run eval "$install_prog \$file \$oldlib" || exit $?
# Do each command in the postinstall commands.
cmds=`eval \\$echo \"$old_postinstall_cmds\"`
eval cmds=\"$old_postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -2010,7 +2006,7 @@ libdir='$install_libdir'"
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
cmds=`eval \\$echo \"$finish_cmds\"`
eval cmds=\"$finish_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -2021,7 +2017,7 @@ libdir='$install_libdir'"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
cmds=`eval \\$echo \"$finish_eval\"`
eval cmds=\"$finish_eval\"
$run eval "$cmds"
fi
done
@ -2047,7 +2043,7 @@ libdir='$install_libdir'"
fi
if test -n "$hardcode_libdir_flag_spec"; then
libdir=LIBDIR
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
echo " - use the \`$flag' linker flag"
fi
@ -2238,7 +2234,7 @@ libdir='$install_libdir'"
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
cmds=`eval \\$echo \"$postuninstall_cmds\"`
eval cmds=\"$postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -2250,7 +2246,7 @@ libdir='$install_libdir'"
if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
eval cmds=\"$old_postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"

334
gtk+.prj
View File

@ -1,334 +0,0 @@
;; -*- Lisp -*-
(Created-By-Prcs-Version 1 1 0)
(Project-Description "")
(Project-Version gtk+ 0 16)
(Parent-Version gtk+ 0 15)
(Descends-From -*- -*- -*-)
(Version-Log "")
(New-Version-Log "")
(Checkin-Time "Wed, 19 Feb 1997 15:49:10 -0800")
(Checkin-Login pmattis)
(Populate-Ignore ("\\.o$" "\\.a$" "^core$" "^.*/core$"
".*.deps/.*" "\\.dvi$" "\\.aux$" "\\.log"
"Makefile$" "config.cache$" "config.log$"
"configure$" "gconfig.h$" "stamp-h$"))
(Files
;; This is a comment. Fill in files here.
;; For example: (prcs/checkout.cc ())
; Files added by populate at Thu, 21 Nov 1996 16:48:40 -0800:
(docs/texinfo.tex (gtk+/1_texinfo.te 1.1 644))
(docs/gtk.texi (gtk+/2_gtk.texi 1.5 644))
(docs/gdk.texi (gtk+/3_gdk.texi 1.2 644))
(docs/Makefile.in (gtk+/4_Makefile.i 1.5 644))
(docs/Makefile.am (gtk+/5_Makefile.a 1.2 644))
(gtk/testgtk.c (gtk+/6_testgtk.c 1.14 644))
(gtk/gtkwindow.h (gtk+/7_gtkwindow. 1.6 644))
(gtk/gtkwindow.c (gtk+/8_gtkwindow. 1.10 644))
(gtk/gtkwidget.h (gtk+/9_gtkwidget. 1.8 644))
(gtk/gtkwidget.c (gtk+/10_gtkwidget. 1.14 644))
(gtk/gtkvseparator.h (gtk+/11_gtkvsepara 1.3 644))
(gtk/gtkvseparator.c (gtk+/12_gtkvsepara 1.5 644))
(gtk/gtkvscrollbar.h (gtk+/13_gtkvscroll 1.3 644))
(gtk/gtkvscrollbar.c (gtk+/14_gtkvscroll 1.5 644))
(gtk/gtkvscale.h (gtk+/15_gtkvscale. 1.2 644))
(gtk/gtkvscale.c (gtk+/16_gtkvscale. 1.7 644))
(gtk/gtkvruler.h (gtk+/17_gtkvruler. 1.4 644))
(gtk/gtkvruler.c (gtk+/18_gtkvruler. 1.7 644))
(gtk/gtkviewport.h (gtk+/19_gtkviewpor 1.3 644))
(gtk/gtkviewport.c (gtk+/20_gtkviewpor 1.6 644))
(gtk/gtkvbox.h (gtk+/21_gtkvbox.h 1.2 644))
(gtk/gtkvbox.c (gtk+/22_gtkvbox.c 1.5 644))
(gtk/gtktypeutils.h (gtk+/23_gtktypeuti 1.4 644))
(gtk/gtktypeutils.c (gtk+/24_gtktypeuti 1.6 644))
(gtk/gtktreeitem.h (gtk+/25_gtktreeite 1.3 644))
(gtk/gtktreeitem.c (gtk+/26_gtktreeite 1.4 644))
(gtk/gtktree.h (gtk+/27_gtktree.h 1.3 644))
(gtk/gtktree.c (gtk+/28_gtktree.c 1.4 644))
(gtk/gtktogglebutton.h (gtk+/29_gtktoggleb 1.5 644))
(gtk/gtktogglebutton.c (gtk+/30_gtktoggleb 1.8 644))
(gtk/gtktable.h (gtk+/31_gtktable.h 1.2 644))
(gtk/gtktable.c (gtk+/32_gtktable.c 1.8 644))
(gtk/gtkstyle.h (gtk+/33_gtkstyle.h 1.3 644))
(gtk/gtkstyle.c (gtk+/34_gtkstyle.c 1.7 644))
(gtk/gtksignal.h (gtk+/35_gtksignal. 1.7 644))
(gtk/gtksignal.c (gtk+/36_gtksignal. 1.9 644))
(gtk/gtkseparator.h (gtk+/37_gtkseparat 1.2 644))
(gtk/gtkseparator.c (gtk+/38_gtkseparat 1.4 644))
(gtk/gtkscrolledwindow.h (gtk+/39_gtkscrolle 1.2 644))
(gtk/gtkscrolledwindow.c (gtk+/40_gtkscrolle 1.8 644))
(gtk/gtkscrollbar.h (gtk+/41_gtkscrollb 1.2 644))
(gtk/gtkscrollbar.c (gtk+/42_gtkscrollb 1.4 644))
(gtk/gtkscale.h (gtk+/43_gtkscale.h 1.4 644))
(gtk/gtkscale.c (gtk+/44_gtkscale.c 1.7 644))
(gtk/gtkruler.h (gtk+/45_gtkruler.h 1.5 644))
(gtk/gtkruler.c (gtk+/46_gtkruler.c 1.8 644))
(gtk/gtkrc.h (gtk+/47_gtkrc.h 1.3 644))
(gtk/gtkrc.c (gtk+/48_gtkrc.c 1.4 644))
(gtk/gtkrange.h (gtk+/49_gtkrange.h 1.4 644))
(gtk/gtkrange.c (gtk+/50_gtkrange.c 1.6 644))
(gtk/gtkradiobutton.h (gtk+/51_gtkradiobu 1.3 644))
(gtk/gtkradiobutton.c (gtk+/b/0_gtkradiobutton.c 1.7 644))
(gtk/gtkpixmap.h (gtk+/b/1_gtkpixmap. 1.3 644))
(gtk/gtkpixmap.c (gtk+/b/2_gtkpixmap. 1.5 644))
(gtk/gtkoptionmenu.h (gtk+/b/3_gtkoptionm 1.5 644))
(gtk/gtkoptionmenu.c (gtk+/b/4_gtkoptionm 1.7 644))
(gtk/gtkobject.h (gtk+/b/5_gtkobject. 1.6 644))
(gtk/gtkobject.c (gtk+/b/6_gtkobject. 1.9 644))
(gtk/gtkmisc.h (gtk+/b/7_gtkmisc.h 1.2 644))
(gtk/gtkmisc.c (gtk+/b/8_gtkmisc.c 1.4 644))
(gtk/gtkmenushell.h (gtk+/b/9_gtkmenushe 1.5 644))
(gtk/gtkmenushell.c (gtk+/b/10_gtkmenushe 1.8 644))
(gtk/gtkmenuitem.h (gtk+/b/11_gtkmenuite 1.6 644))
(gtk/gtkmenuitem.c (gtk+/b/12_gtkmenuite 1.8 644))
(gtk/gtkmenubar.h (gtk+/b/13_gtkmenubar 1.4 644))
(gtk/gtkmenubar.c (gtk+/b/14_gtkmenubar 1.7 644))
(gtk/gtkmenu.h (gtk+/b/15_gtkmenu.h 1.5 644))
(gtk/gtkmenu.c (gtk+/b/16_gtkmenu.c 1.8 644))
(gtk/gtkmain.h (gtk+/b/17_gtkmain.h 1.4 644))
(gtk/gtkmain.c (gtk+/b/18_gtkmain.c 1.11 644))
(gtk/gtklistitem.h (gtk+/b/19_gtklistite 1.3 644))
(gtk/gtklistitem.c (gtk+/b/20_gtklistite 1.9 644))
(gtk/gtklist.h (gtk+/b/21_gtklist.h 1.5 644))
(gtk/gtklist.c (gtk+/b/22_gtklist.c 1.10 644))
(gtk/gtklabel.h (gtk+/b/23_gtklabel.h 1.2 644))
(gtk/gtklabel.c (gtk+/b/24_gtklabel.c 1.7 644))
(gtk/gtkitem.h (gtk+/b/25_gtkitem.h 1.3 644))
(gtk/gtkitem.c (gtk+/b/26_gtkitem.c 1.7 644))
(gtk/gtkimage.h (gtk+/b/27_gtkimage.h 1.2 644))
(gtk/gtkimage.c (gtk+/b/28_gtkimage.c 1.4 644))
(gtk/gtkhseparator.h (gtk+/b/29_gtkhsepara 1.2 644))
(gtk/gtkhseparator.c (gtk+/b/30_gtkhsepara 1.4 644))
(gtk/gtkhscrollbar.h (gtk+/b/31_gtkhscroll 1.2 644))
(gtk/gtkhscrollbar.c (gtk+/b/32_gtkhscroll 1.4 644))
(gtk/gtkhscale.h (gtk+/b/33_gtkhscale. 1.2 644))
(gtk/gtkhscale.c (gtk+/b/34_gtkhscale. 1.7 644))
(gtk/gtkhruler.h (gtk+/b/35_gtkhruler. 1.4 644))
(gtk/gtkhruler.c (gtk+/b/36_gtkhruler. 1.7 644))
(gtk/gtkhbox.h (gtk+/b/37_gtkhbox.h 1.2 644))
(gtk/gtkhbox.c (gtk+/b/38_gtkhbox.c 1.5 644))
(gtk/gtkgc.h (gtk+/b/39_gtkgc.h 1.3 644))
(gtk/gtkgc.c (gtk+/b/40_gtkgc.c 1.5 644))
(gtk/gtkframe.h (gtk+/b/41_gtkframe.h 1.2 644))
(gtk/gtkframe.c (gtk+/b/42_gtkframe.c 1.5 644))
(gtk/gtkenums.h (gtk+/b/45_gtkenums.h 1.6 644))
(gtk/gtkentry.h (gtk+/b/46_gtkentry.h 1.5 644))
(gtk/gtkentry.c (gtk+/b/47_gtkentry.c 1.9 644))
(gtk/gtkdrawingarea.h (gtk+/b/48_gtkdrawing 1.4 644))
(gtk/gtkdrawingarea.c (gtk+/b/49_gtkdrawing 1.6 644))
(gtk/gtkdata.h (gtk+/b/50_gtkdata.h 1.2 644))
(gtk/gtkdata.c (gtk+/b/51_gtkdata.c 1.7 644))
(gtk/gtkcontainer.h (gtk+/c/0_gtkcontainer.h 1.6 644))
(gtk/gtkcontainer.c (gtk+/c/1_gtkcontain 1.10 644))
(gtk/gtkcheckbutton.h (gtk+/c/2_gtkcheckbu 1.3 644))
(gtk/gtkcheckbutton.c (gtk+/c/3_gtkcheckbu 1.6 644))
(gtk/gtkbutton.h (gtk+/c/4_gtkbutton. 1.4 644))
(gtk/gtkbutton.c (gtk+/c/5_gtkbutton. 1.9 644))
(gtk/gtkbox.h (gtk+/c/6_gtkbox.h 1.2 644))
(gtk/gtkbox.c (gtk+/c/7_gtkbox.c 1.5 644))
(gtk/gtkbin.h (gtk+/c/8_gtkbin.h 1.2 644))
(gtk/gtkbin.c (gtk+/c/9_gtkbin.c 1.6 644))
(gtk/gtkarrow.h (gtk+/c/10_gtkarrow.h 1.2 644))
(gtk/gtkarrow.c (gtk+/c/11_gtkarrow.c 1.4 644))
(gtk/gtkalignment.h (gtk+/c/12_gtkalignme 1.2 644))
(gtk/gtkalignment.c (gtk+/c/13_gtkalignme 1.5 644))
(gtk/gtkadjustment.h (gtk+/c/14_gtkadjustm 1.3 644))
(gtk/gtkadjustment.c (gtk+/c/15_gtkadjustm 1.7 644))
(gtk/gtkaccelerator.h (gtk+/c/16_gtkacceler 1.4 644))
(gtk/gtkaccelerator.c (gtk+/c/17_gtkacceler 1.4 644))
(gtk/gtk.h (gtk+/c/18_gtk.h 1.7 644))
(gtk/fnmatch.h (gtk+/c/19_fnmatch.h 1.1 644))
(gtk/fnmatch.c (gtk+/c/20_fnmatch.c 1.1 644))
(TODO (gtk+/c/21_TODO 1.13 644))
(gtk/Makefile.in (gtk+/c/22_Makefile.i 1.10 644))
(gtk/Makefile.am (gtk+/c/23_Makefile.a 1.10 644))
(gdk/makekeysyms.sed (gtk+/c/24_makekeysym 1.1 644))
(gdk/makekeysyms (gtk+/c/25_makekeysym 1.1 755))
(gdk/makecursors.sed (gtk+/c/26_makecursor 1.1 644))
(gdk/makecursors (gtk+/c/27_makecursor 1.1 755))
(gdk/gdkx.h (gtk+/c/28_gdkx.h 1.2 644))
(gdk/gdkwindow.c (gtk+/c/29_gdkwindow. 1.8 644))
(gdk/gdkvisual.c (gtk+/c/30_gdkvisual. 1.2 644))
(gdk/gdktypes.h (gtk+/c/31_gdktypes.h 1.6 644))
(gdk/gdkrectangle.c (gtk+/c/32_gdkrectang 1.3 644))
(gdk/gdkprivate.h (gtk+/c/33_gdkprivate 1.4 644))
(gdk/gdkpixmap.c (gtk+/c/34_gdkpixmap. 1.6 644))
(gdk/gdkkeysyms.h (gtk+/c/35_gdkkeysyms 1.2 644))
(gdk/gdkimage.c (gtk+/c/36_gdkimage.c 1.4 644))
(gdk/gdkglobals.c (gtk+/c/37_gdkglobals 1.3 644))
(gdk/gdkgc.c (gtk+/c/38_gdkgc.c 1.6 644))
(gdk/gdkfont.c (gtk+/c/39_gdkfont.c 1.4 644))
(gdk/gdkdraw.c (gtk+/c/40_gdkdraw.c 1.4 644))
(gdk/gdkcursors.h (gtk+/c/41_gdkcursors 1.3 644))
(gdk/gdkcursor.c (gtk+/c/42_gdkcursor. 1.3 644))
(gdk/gdkcolor.c (gtk+/c/43_gdkcolor.c 1.4 644))
(gdk/gdk.h (gtk+/c/44_gdk.h 1.6 644))
(gdk/gdk.c (gtk+/c/45_gdk.c 1.8 644))
(gdk/Makefile.in (gtk+/c/46_Makefile.i 1.7 644))
(gdk/Makefile.am (gtk+/c/47_Makefile.a 1.7 644))
(glib/testglib.c (gtk+/c/48_testglib.c 1.8 644))
(glib/stamp-h.in (gtk+/c/49_stamp-h.in 1.1 644))
(glib/mkinstalldirs (gtk+/c/50_mkinstalld 1.1 755))
(glib/install-sh (gtk+/c/51_install-sh 1.1 755))
(glib/gutils.c (gtk+/d/0_gutils.c 1.3 644))
(glib/gtimer.c (gtk+/d/1_gtimer.c 1.2 644))
(glib/gslist.c (gtk+/d/2_gslist.c 1.6 644))
(glib/gprimes.c (gtk+/d/3_gprimes.c 1.2 644))
(glib/gmem.c (gtk+/d/4_gmem.c 1.9 644))
(glib/glist.c (gtk+/d/5_glist.c 1.4 644))
(glib/glib.h (gtk+/d/6_glib.h 1.8 644))
(glib/ghash.c (gtk+/d/7_ghash.c 1.5 644))
(glib/gerror.c (gtk+/d/8_gerror.c 1.4 644))
(glib/gconfig.h.in (gtk+/d/9_gconfig.h. 1.3 644))
(glib/gconfig.h (gtk+/d/10_gconfig.h 1.6 644))
(glib/gcache.c (gtk+/d/11_gcache.c 1.6 644))
(glib/configure.in (gtk+/d/12_configure. 1.4 644))
(glib/configure (gtk+/d/13_configure 1.4 755))
(glib/config.sub (gtk+/d/14_config.sub 1.2 755))
(glib/config.guess (gtk+/d/15_config.gue 1.2 755))
(glib/aclocal.m4 (gtk+/d/16_aclocal.m4 1.4 644))
(glib/acconfig.h (gtk+/d/17_acconfig.h 1.3 644))
(glib/README (gtk+/d/18_README 1.1 644))
(glib/NEWS (gtk+/d/19_NEWS 1.1 644))
(glib/Makefile.in (gtk+/d/20_Makefile.i 1.7 644))
(glib/Makefile.am (gtk+/d/21_Makefile.a 1.7 644))
(glib/INSTALL (gtk+/d/22_INSTALL 1.1 644))
(glib/ChangeLog (gtk+/d/23_ChangeLog 1.2 644))
(glib/COPYING (gtk+/d/24_COPYING 1.1 644))
(glib/AUTHORS (gtk+/d/25_AUTHORS 1.2 644))
(stamp-h.in (gtk+/d/26_stamp-h.in 1.1 644))
(mkinstalldirs (gtk+/d/27_mkinstalld 1.1 755))
(install-sh (gtk+/d/28_install-sh 1.1 755))
(configure.in (gtk+/d/30_configure. 1.8 644))
(configure (gtk+/d/31_configure 1.8 755))
(config.sub (gtk+/d/32_config.sub 1.2 755))
(config.h.in (gtk+/d/33_config.h.i 1.4 644))
(config.guess (gtk+/d/34_config.gue 1.2 755))
(aclocal.m4 (gtk+/d/35_aclocal.m4 1.4 644))
(acconfig.h (gtk+/d/36_acconfig.h 1.3 644))
(README (gtk+/d/37_README 1.1 644))
(NEWS (gtk+/d/38_NEWS 1.1 644))
(Makefile.in (gtk+/d/39_Makefile.i 1.9 644))
(Makefile.am (gtk+/d/40_Makefile.a 1.7 644))
(INSTALL (gtk+/d/41_INSTALL 1.1 644))
(ChangeLog (gtk+/d/42_ChangeLog 1.14 644))
(COPYING (gtk+/d/43_COPYING 1.2 644))
(AUTHORS (gtk+/d/44_AUTHORS 1.2 644))
; Files added by populate at Mon, 30 Dec 1996 13:14:24 -0800:
(gtk/gtkmenufactory.h (gtk+/0_gtkmenufac 1.4 644))
(gtk/gtkmenufactory.c (gtk+/1_gtkmenufac 1.4 644))
; Files added by populate at Thu, 02 Jan 1997 15:31:44 -0800:
(gtk/testgtkrc (gtk+/0_testgtkrc 1.2 644))
; Files added by populate at Fri, 10 Jan 1997 14:19:47 -0800:
(gtk/gtkfilesel.h (gtk+/b/0_gtkfilesel.h 1.3 644))
(gtk/gtkfilesel.c (gtk+/c/0_gtkfilesel.c 1.7 644))
(glib/gstring.c (gtk+/d/0_gstring.c 1.4 644))
; Files added by populate at Fri, 10 Jan 1997 18:01:19 -0800:
(gdk/gdkselection.c (gtk+/b/0_gdkselection.c 1.5 644))
; Files added by populate at Sun, 19 Jan 1997 18:29:12 -0800:
(gtk/gtktext.h (gtk+/b/0_gtktext.h 1.4 644))
(gtk/gtktext.c (gtk+/c/0_gtktext.c 1.7 644))
(gtk/gtkdialog.h (gtk+/d/0_gtkdialog.h 1.2 644))
(gtk/gtkdialog.c (gtk+/d/47_gtkdialog. 1.4 644))
(gdk/gdkxid.c (gtk+/d/48_gdkxid.c 1.2 644))
; Files added by populate at Thu, 23 Jan 1997 01:29:17 -0800:
(gtk/gtknotebook.h (gtk+/b/0_gtknotebook.h 1.3 644))
(gtk/gtknotebook.c (gtk+/c/0_gtknotebook.c 1.6 644))
; Files added by populate at Thu, 23 Jan 1997 02:06:11 -0800:
(gtk/line-wrap.xbm (gtk+/b/0_line-wrap.xbm 1.1 644))
(gtk/line-arrow.xbm (gtk+/c/0_line-arrow.xbm 1.1 644))
; Files added by populate at Fri, 24 Jan 1997 13:02:44 -0800:
; Files deleted by populate at Fri, 24 Jan 1997 13:02:44 -0800:
; `docs/texinfo3.7.patch'
; Files added by populate at Tue, 28 Jan 1997 16:54:35 -0800:
(gtk/simple.c (gtk+/e/0_simple.c 1.1 644))
(glib/ltmain.sh (gtk+/e/1_ltmain.sh 1.3 644))
(glib/ltconfig (gtk+/e/2_ltconfig 1.3 755))
(ltmain.sh (gtk+/e/3_ltmain.sh 1.3 644))
(ltconfig (gtk+/e/4_ltconfig 1.3 755))
; Files added by populate at Thu, 30 Jan 1997 01:30:38 -0800:
(glib/gtree.c (gtk+/b/0_gtree.c 1.3 644))
; Files added by populate at Mon, 03 Feb 1997 19:46:14 -0800:
(makecopyright (gtk+/b/0_makecopyright 1.1 755))
; Files added by populate at Sat, 08 Feb 1997 14:41:52 -0800:
(gtk/gtkprogressbar.h (gtk+/b/0_gtkprogressbar.h 1.1 644))
(gtk/gtkprogressbar.c (gtk+/c/0_gtkprogressbar.c 1.1 644))
(glib/garray.c (gtk+/d/0_garray.c 1.1 644))
; Files deleted by populate at Sat, 08 Feb 1997 14:41:52 -0800:
; `interp/Makefile.am'
; `interp/Makefile.in'
; `interp/interp.c'
;; Files added by populate at Wed, 19 Feb 1997 15:48:04 -0800:
(gtk+.xconfig.in (gtk+/b/0_gtk+.xconfig.in 1.1 644))
;; Files deleted by populate at Wed, 19 Feb 1997 15:48:04 -0800:
; docs/proposal.tex
;; Files added by populate at Thu, 17 Apr 1997 17:39:47 -0700:
(docs/macros.texi ())
(gdk/gdkproperty.c ())
(glib/missing () :symlink)
(missing () :symlink)
;; Files deleted by populate at Thu, 17 Apr 1997 17:39:47 -0700:
; gtk/gtkcanvas.c
; gtk/gtkcanvas.h
; gtk/gtkfill.c
; gtk/gtkfill.h
;; Files added by populate at Thu, 17 Apr 1997 17:41:14 -0700:
(gtk/gtktooltips.h ())
(gtk/gtktooltips.c ())
(gtk/gtkradiomenuitem.h ())
(gtk/gtkradiomenuitem.c ())
(gtk/gtkpreview.h ())
(gtk/gtkpreview.c ())
(gtk/gtkcolorsel.h ())
(gtk/gtkcolorsel.c ())
(gtk/gtkcheckmenuitem.h ())
(gtk/gtkcheckmenuitem.c ())
(gtk/gtkaspectframe.h ())
(gtk/gtkaspectframe.c ())
)
(Merge-Parents)
(New-Merge-Parents)

117
gtk.m4
View File

@ -12,6 +12,8 @@ AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed
gtk_config_prefix="$withval", gtk_config_prefix="")
AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
, enable_gtktest=yes)
if test x$gtk_config_exec_prefix != x ; then
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
@ -30,18 +32,28 @@ AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK
min_gtk_version=ifelse([$1], ,0.99.7,$1)
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
no_gtk=""
if test "$GTK_CONFIG" != "no" ; then
if test "$GTK_CONFIG" = "no" ; then
no_gtk=yes
else
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_gtktest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
dnl
dnl Now check if the installed GTK is sufficiently new. (Also sanity
dnl checks the results of gtk-config to some extent
dnl
AC_TRY_RUN([
rm -f conf.gtktest
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
@ -50,30 +62,109 @@ main ()
{
int major, minor, micro;
system ("touch conf.gtktest");
if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
return !((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
if ((gtk_major_version != $gtk_config_major_version) ||
(gtk_minor_version != $gtk_config_minor_version) ||
(gtk_micro_version != $gtk_config_micro_version))
{
printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf ("*** was found! If gtk-config was correct, then it is best\n");
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
printf("*** before re-running configure\n");
}
else
{
if ((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
printf("*** correct copy of gtk-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
else
no_gtk=yes
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$GTK_CONFIG" = "no" ; then
echo "*** The gtk-config script installed by GTK could not be found"
echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the GTK_CONFIG environment variable to the"
echo "*** full path to gtk-config."
else
if test -f conf.gtktest ; then
:
else
echo "*** Could not run GTK test program, checking why..."
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_TRY_LINK([
#include <gtk/gtk.h>
#include <stdio.h>
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK or finding the wrong"
echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
echo "***"
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
echo "*** came with the system with the command"
echo "***"
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means GTK was incorrectly installed"
echo "*** or that you have moved GTK since it was installed. In the latter case, you"
echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
rm -f conf.gtktest
])

View File

@ -203,6 +203,7 @@ EXTRA_DIST = \
line-arrow.xbm \
line-wrap.xbm \
testgtkrc \
testgtkrc2 \
gtk.defs \
runelisp \
gentypeinfo.el \

View File

@ -34,10 +34,10 @@ static void gtk_adjustment_init (GtkAdjustment *adjustment);
static guint adjustment_signals[LAST_SIGNAL] = { 0 };
guint
GtkType
gtk_adjustment_get_type ()
{
static guint adjustment_type = 0;
static GtkType adjustment_type = 0;
if (!adjustment_type)
{
@ -130,3 +130,33 @@ gtk_adjustment_set_value (GtkAdjustment *adjustment,
gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "value_changed");
}
void
gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
gfloat lower,
gfloat upper)
{
gint need_emission;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
lower = CLAMP (lower, adjustment->lower, adjustment->upper);
upper = CLAMP (upper, adjustment->lower, adjustment->upper);
need_emission = FALSE;
if (adjustment->value + adjustment->page_size < upper)
{
adjustment->value = upper - adjustment->page_size;
need_emission = TRUE;
}
if (adjustment->value > lower)
{
adjustment->value = lower;
need_emission = TRUE;
}
if (need_emission)
gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "value_changed");
}

View File

@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@ -26,21 +26,22 @@
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */
#define GTK_ADJUSTMENT(obj) GTK_CHECK_CAST (obj, gtk_adjustment_get_type (), GtkAdjustment)
#define GTK_ADJUSTMENT_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_adjustment_get_type (), GtkAdjustmentClass)
#define GTK_IS_ADJUSTMENT(obj) GTK_CHECK_TYPE (obj, gtk_adjustment_get_type ())
#define GTK_ADJUSTMENT(obj) (GTK_CHECK_CAST (obj, gtk_adjustment_get_type (), GtkAdjustment))
#define GTK_ADJUSTMENT_CLASS(klass) (GTK_CHECK_CLASS_CAST (klass, gtk_adjustment_get_type (), GtkAdjustmentClass))
#define GTK_IS_ADJUSTMENT(obj) (GTK_CHECK_TYPE (obj, gtk_adjustment_get_type ()))
typedef struct _GtkAdjustment GtkAdjustment;
typedef struct _GtkAdjustment GtkAdjustment;
typedef struct _GtkAdjustmentClass GtkAdjustmentClass;
struct _GtkAdjustment
{
GtkData data;
gfloat lower;
gfloat upper;
gfloat value;
@ -52,21 +53,25 @@ struct _GtkAdjustment
struct _GtkAdjustmentClass
{
GtkDataClass parent_class;
void (* changed) (GtkAdjustment *adjustment);
void (* changed) (GtkAdjustment *adjustment);
void (* value_changed) (GtkAdjustment *adjustment);
};
guint gtk_adjustment_get_type (void);
GtkObject* gtk_adjustment_new (gfloat value,
gfloat lower,
gfloat upper,
gfloat step_increment,
gfloat page_increment,
gfloat page_size);
void gtk_adjustment_set_value (GtkAdjustment *adjustment,
gfloat value);
GtkType gtk_adjustment_get_type (void);
GtkObject* gtk_adjustment_new (gfloat value,
gfloat lower,
gfloat upper,
gfloat step_increment,
gfloat page_increment,
gfloat page_size);
void gtk_adjustment_set_value (GtkAdjustment *adjustment,
gfloat value);
void gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
gfloat lower,
gfloat upper);

View File

@ -200,27 +200,25 @@ gtk_bin_add (GtkContainer *container,
g_return_if_fail (widget != NULL);
bin = GTK_BIN (container);
g_return_if_fail (bin->child == NULL);
if (!bin->child)
gtk_widget_set_parent (widget, GTK_WIDGET (container));
if (GTK_WIDGET_VISIBLE (widget->parent))
{
gtk_widget_set_parent (widget, GTK_WIDGET (container));
if (GTK_WIDGET_VISIBLE (widget->parent))
{
if (GTK_WIDGET_REALIZED (widget->parent) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (widget->parent) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
bin->child = widget;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (widget);
if (GTK_WIDGET_REALIZED (widget->parent) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (widget->parent) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
bin->child = widget;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (widget);
}
static void

View File

@ -160,6 +160,7 @@ gtk_box_pack_start (GtkBox *box,
g_return_if_fail (box != NULL);
g_return_if_fail (GTK_IS_BOX (box));
g_return_if_fail (child != NULL);
g_return_if_fail (child->parent == NULL);
child_info = g_new (GtkBoxChild, 1);
child_info->widget = child;
@ -199,6 +200,7 @@ gtk_box_pack_end (GtkBox *box,
g_return_if_fail (box != NULL);
g_return_if_fail (GTK_IS_BOX (box));
g_return_if_fail (child != NULL);
g_return_if_fail (child->parent == NULL);
child_info = g_new (GtkBoxChild, 1);
child_info->widget = child;

View File

@ -2495,7 +2495,7 @@ draw_row (GtkCList * clist,
{
if (gdk_rectangle_intersect (area, &cell_rectangle, &intersect_rectangle))
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
intersect_rectangle.x,
intersect_rectangle.y,
@ -2509,7 +2509,7 @@ draw_row (GtkCList * clist,
if (gdk_rectangle_intersect (area, &cell_rectangle, &intersect_rectangle))
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
intersect_rectangle.x,
intersect_rectangle.y,
@ -2538,7 +2538,7 @@ draw_row (GtkCList * clist,
else
{
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
cell_rectangle.x,
cell_rectangle.y,
@ -2551,7 +2551,7 @@ draw_row (GtkCList * clist,
cell_rectangle.y += clist->row_height + CELL_SPACING;
gdk_draw_rectangle (clist->clist_window,
widget->style->white_gc,
widget->style->base_gc[GTK_STATE_NORMAL],
TRUE,
cell_rectangle.x,
cell_rectangle.y,

View File

@ -494,12 +494,15 @@ gtk_combo_button_release (GtkWidget * widget, GdkEvent * event, GtkCombo * combo
GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK,
NULL, NULL, GDK_CURRENT_TIME);
return FALSE;
}
}
else
{
/* Don't remove the popwin when the user adjusts the scrollbats */
if (!(GTK_LIST (combo->list)->button))
return FALSE;
gtk_grab_remove (combo->popwin);
gdk_pointer_ungrab (event->button.time);
}

View File

@ -110,10 +110,15 @@ static guint container_signals[LAST_SIGNAL] = { 0 };
static GtkWidgetClass *parent_class = NULL;
guint
static const gchar *vadjustment_key = "gtk-vadjustment";
static guint vadjustment_key_id = 0;
static const gchar *hadjustment_key = "gtk-hadjustment";
static guint hadjustment_key_id = 0;
GtkType
gtk_container_get_type ()
{
static guint container_type = 0;
static GtkType container_type = 0;
if (!container_type)
{
@ -142,7 +147,11 @@ gtk_container_class_init (GtkContainerClass *class)
object_class = (GtkObjectClass*) class;
widget_class = (GtkWidgetClass*) class;
parent_class = gtk_type_class (gtk_widget_get_type ());
vadjustment_key_id = gtk_object_data_force_id (vadjustment_key);
hadjustment_key_id = gtk_object_data_force_id (hadjustment_key);
gtk_object_add_arg_type ("GtkContainer::border_width", GTK_TYPE_LONG, GTK_ARG_READWRITE, ARG_BORDER_WIDTH);
gtk_object_add_arg_type ("GtkContainer::auto_resize", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_AUTO_RESIZE);
@ -608,6 +617,7 @@ gtk_real_container_focus (GtkContainer *container,
GList *tmp_list;
GList *tmp_list2;
gint return_val;
GtkAdjustment *adjustment;
g_return_val_if_fail (container != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CONTAINER (container), FALSE);
@ -669,6 +679,25 @@ gtk_real_container_focus (GtkContainer *container,
}
}
/* check for h/v adjustments
*/
if (container->focus_child)
{
adjustment = gtk_object_get_data_by_id (GTK_OBJECT (container), vadjustment_key_id);
if (adjustment)
gtk_adjustment_clamp_page (adjustment,
container->focus_child->allocation.y,
(container->focus_child->allocation.y +
container->focus_child->allocation.height));
adjustment = gtk_object_get_data_by_id (GTK_OBJECT (container), hadjustment_key_id);
if (adjustment)
gtk_adjustment_clamp_page (adjustment,
container->focus_child->allocation.x,
(container->focus_child->allocation.x +
container->focus_child->allocation.width));
}
return return_val;
}
@ -1059,3 +1088,38 @@ gtk_container_hide_all (GtkWidget *widget)
gtk_container_foreach (container, (GtkCallback) gtk_widget_hide_all, NULL);
}
void
gtk_container_set_focus_vadjustment (GtkContainer *container,
GtkAdjustment *adjustment)
{
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_CONTAINER (container));
if (adjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
if (adjustment)
gtk_object_ref (adjustment);
gtk_object_set_data_by_id_full (GTK_OBJECT (container),
vadjustment_key_id,
adjustment,
(GtkDestroyNotify) gtk_object_unref);
}
void
gtk_container_set_focus_hadjustment (GtkContainer *container,
GtkAdjustment *adjustment)
{
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_CONTAINER (container));
if (adjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
if (adjustment)
gtk_object_ref (adjustment);
gtk_object_set_data_by_id_full (GTK_OBJECT (container),
hadjustment_key_id,
adjustment,
(GtkDestroyNotify) gtk_object_unref);
}

View File

@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@ -23,34 +23,36 @@
#include <gdk/gdk.h>
#include <gtk/gtkenums.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkadjustment.h>
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */
#define GTK_CONTAINER(obj) (GTK_CHECK_CAST ((obj), gtk_container_get_type (), GtkContainer))
#define GTK_CONTAINER(obj) (GTK_CHECK_CAST ((obj), gtk_container_get_type (), GtkContainer))
#define GTK_CONTAINER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), gtk_container_get_type (), GtkContainerClass))
#define GTK_IS_CONTAINER(obj) (GTK_CHECK_TYPE ((obj), gtk_container_get_type ()))
#define GTK_IS_CONTAINER(obj) (GTK_CHECK_TYPE ((obj), gtk_container_get_type ()))
#define GTK_TYPE_CONTAINER (gtk_container_get_type ())
#define GTK_TYPE_CONTAINER (gtk_container_get_type ())
typedef struct _GtkContainer GtkContainer;
typedef struct _GtkContainer GtkContainer;
typedef struct _GtkContainerClass GtkContainerClass;
struct _GtkContainer
{
GtkWidget widget;
GtkWidget *focus_child;
gint16 border_width;
guint auto_resize : 1;
guint need_resize : 1;
guint block_resize : 1;
/* The list of children that requested a resize
*/
GSList *resize_widgets;
@ -59,52 +61,59 @@ struct _GtkContainer
struct _GtkContainerClass
{
GtkWidgetClass parent_class;
void (* add) (GtkContainer *container,
GtkWidget *widget);
void (* remove) (GtkContainer *container,
GtkWidget *widget);
gint (* need_resize) (GtkContainer *container);
void (* foreach) (GtkContainer *container,
GtkCallback callback,
gpointer callbabck_data);
gint (* focus) (GtkContainer *container,
void (* add) (GtkContainer *container,
GtkWidget *widget);
void (* remove) (GtkContainer *container,
GtkWidget *widget);
gint (* need_resize) (GtkContainer *container);
void (* foreach) (GtkContainer *container,
GtkCallback callback,
gpointer callbabck_data);
gint (* focus) (GtkContainer *container,
GtkDirectionType direction);
};
guint gtk_container_get_type (void);
void gtk_container_border_width (GtkContainer *container,
gint border_width);
void gtk_container_add (GtkContainer *container,
GtkWidget *widget);
void gtk_container_remove (GtkContainer *container,
GtkWidget *widget);
void gtk_container_disable_resize (GtkContainer *container);
void gtk_container_enable_resize (GtkContainer *container);
void gtk_container_block_resize (GtkContainer *container);
void gtk_container_unblock_resize (GtkContainer *container);
gint gtk_container_need_resize (GtkContainer *container);
void gtk_container_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
void gtk_container_foreach_interp (GtkContainer *container,
GtkType gtk_container_get_type (void);
void gtk_container_border_width (GtkContainer *container,
gint border_width);
void gtk_container_add (GtkContainer *container,
GtkWidget *widget);
void gtk_container_remove (GtkContainer *container,
GtkWidget *widget);
void gtk_container_disable_resize (GtkContainer *container);
void gtk_container_enable_resize (GtkContainer *container);
void gtk_container_block_resize (GtkContainer *container);
void gtk_container_unblock_resize (GtkContainer *container);
gint gtk_container_need_resize (GtkContainer *container);
void gtk_container_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
void gtk_container_foreach_interp (GtkContainer *container,
GtkCallbackMarshal marshal,
gpointer callback_data,
gpointer callback_data,
GtkDestroyNotify notify);
void gtk_container_foreach_full (GtkContainer *container,
GtkCallback callback,
void gtk_container_foreach_full (GtkContainer *container,
GtkCallback callback,
GtkCallbackMarshal marshal,
gpointer callback_data,
gpointer callback_data,
GtkDestroyNotify notify);
gint gtk_container_focus (GtkContainer *container,
GtkDirectionType direction);
GList* gtk_container_children (GtkContainer *container);
GList* gtk_container_children (GtkContainer *container);
void gtk_container_register_toplevel (GtkContainer *container);
void gtk_container_unregister_toplevel (GtkContainer *container);
gint gtk_container_focus (GtkContainer *container,
GtkDirectionType direction);
void gtk_container_set_focus_vadjustment (GtkContainer *container,
GtkAdjustment *adjustment);
void gtk_container_set_focus_hadjustment (GtkContainer *container,
GtkAdjustment *adjustment);
void gtk_container_register_toplevel (GtkContainer *container);
void gtk_container_unregister_toplevel (GtkContainer *container);
#ifdef __cplusplus
}

View File

@ -1436,7 +1436,13 @@ cmpl_last_valid_char (CompletionState* cmpl_state)
static gchar*
cmpl_completion_fullname (gchar* text, CompletionState* cmpl_state)
{
if (text[0] == '/')
static char nothing[2] = "";
if (!cmpl_state_okay (cmpl_state))
{
return nothing;
}
else if (text[0] == '/')
{
strcpy (cmpl_state->updated_text, text);
}
@ -1515,10 +1521,14 @@ cmpl_init_state (void)
if (!getcwd (getcwd_buf, MAXPATHLEN))
#endif
{
cmpl_errno = errno;
return NULL;
/* Oh joy, we can't get the current directory. Um..., we should have
* a root directory, right? Right? (Probably not portable to non-Unix)
*/
strcpy (getcwd_buf, "/");
}
tryagain:
new_state->reference_dir = NULL;
new_state->completion_dir = NULL;
new_state->active_completion_dir = NULL;
@ -1542,7 +1552,11 @@ cmpl_init_state (void)
new_state->reference_dir = open_dir (getcwd_buf, new_state);
if (!new_state->reference_dir)
return NULL;
{
/* Directories changing from underneath us, grumble */
strcpy (getcwd_buf, "/");
goto tryagain;
}
return new_state;
}

View File

@ -437,13 +437,15 @@ gtk_fixed_remove (GtkContainer *container,
if (child->widget == widget)
{
gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
gtk_widget_unparent (widget);
fixed->children = g_list_remove_link (fixed->children, children);
g_list_free (children);
g_free (child);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
break;

View File

@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@ -31,54 +31,54 @@ enum {
typedef void (*GtkListSignal) (GtkObject *object,
gpointer arg1,
gpointer data);
gpointer arg1,
gpointer data);
static void gtk_list_class_init (GtkListClass *klass);
static void gtk_list_init (GtkList *list);
static void gtk_list_destroy (GtkObject *object);
static void gtk_list_map (GtkWidget *widget);
static void gtk_list_unmap (GtkWidget *widget);
static void gtk_list_realize (GtkWidget *widget);
static void gtk_list_draw (GtkWidget *widget,
static void gtk_list_class_init (GtkListClass *klass);
static void gtk_list_init (GtkList *list);
static void gtk_list_destroy (GtkObject *object);
static void gtk_list_map (GtkWidget *widget);
static void gtk_list_unmap (GtkWidget *widget);
static void gtk_list_realize (GtkWidget *widget);
static void gtk_list_draw (GtkWidget *widget,
GdkRectangle *area);
static gint gtk_list_expose (GtkWidget *widget,
static gint gtk_list_expose (GtkWidget *widget,
GdkEventExpose *event);
static gint gtk_list_enter_notify (GtkWidget *widget,
GdkEventCrossing *event);
static gint gtk_list_button_press (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_list_button_release (GtkWidget *widget,
static gint gtk_list_button_release (GtkWidget *widget,
GdkEventButton *event);
static void gtk_list_size_request (GtkWidget *widget,
static void gtk_list_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static void gtk_list_size_allocate (GtkWidget *widget,
static void gtk_list_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static void gtk_list_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_remove (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_foreach (GtkContainer *container,
static void gtk_list_add (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_remove (GtkContainer *container,
GtkWidget *widget);
static void gtk_list_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
gpointer callback_data);
static void gtk_real_list_select_child (GtkList *list,
GtkWidget *child);
static void gtk_real_list_unselect_child (GtkList *list,
GtkWidget *child);
static void gtk_real_list_select_child (GtkList *list,
GtkWidget *child);
static void gtk_real_list_unselect_child (GtkList *list,
GtkWidget *child);
static void gtk_list_marshal_signal (GtkObject *object,
static void gtk_list_marshal_signal (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args);
gpointer func_data,
GtkArg *args);
static GtkContainerClass *parent_class = NULL;
static guint list_signals[LAST_SIGNAL] = { 0 };
guint
GtkType
gtk_list_get_type ()
{
static guint list_type = 0;
@ -93,7 +93,7 @@ gtk_list_get_type ()
(GtkClassInitFunc) gtk_list_class_init,
(GtkObjectInitFunc) gtk_list_init,
(GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL,
(GtkArgGetFunc) NULL,
};
list_type = gtk_type_unique (gtk_container_get_type (), &list_info);
@ -117,27 +117,27 @@ gtk_list_class_init (GtkListClass *class)
list_signals[SELECTION_CHANGED] =
gtk_signal_new ("selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, selection_changed),
gtk_signal_default_marshaller,
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
list_signals[SELECT_CHILD] =
gtk_signal_new ("select_child",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, select_child),
gtk_list_marshal_signal,
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, select_child),
gtk_list_marshal_signal,
GTK_TYPE_NONE, 1,
GTK_TYPE_WIDGET);
GTK_TYPE_WIDGET);
list_signals[UNSELECT_CHILD] =
gtk_signal_new ("unselect_child",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, unselect_child),
gtk_list_marshal_signal,
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GtkListClass, unselect_child),
gtk_list_marshal_signal,
GTK_TYPE_NONE, 1,
GTK_TYPE_WIDGET);
GTK_TYPE_WIDGET);
gtk_object_class_add_signals (object_class, list_signals, LAST_SIGNAL);
@ -219,7 +219,7 @@ gtk_list_destroy (GtkObject *object)
void
gtk_list_insert_items (GtkList *list,
GList *items,
gint position)
gint position)
{
GtkWidget *widget;
GList *tmp_list;
@ -307,7 +307,7 @@ gtk_list_append_items (GtkList *list,
void
gtk_list_prepend_items (GtkList *list,
GList *items)
GList *items)
{
g_return_if_fail (list != NULL);
g_return_if_fail (GTK_IS_LIST (list));
@ -316,8 +316,8 @@ gtk_list_prepend_items (GtkList *list,
}
static void
gtk_list_remove_items_internal (GtkList *list,
GList *items,
gtk_list_remove_items_internal (GtkList *list,
GList *items,
gboolean no_unref)
{
GtkWidget *widget;
@ -377,15 +377,15 @@ gtk_list_remove_items_internal (GtkList *list,
}
void
gtk_list_remove_items (GtkList *list,
GList *items)
gtk_list_remove_items (GtkList *list,
GList *items)
{
gtk_list_remove_items_internal (list, items, FALSE);
}
void
gtk_list_remove_items_no_unref (GtkList *list,
GList *items)
gtk_list_remove_items_no_unref (GtkList *list,
GList *items)
{
gtk_list_remove_items_internal (list, items, TRUE);
}
@ -421,11 +421,11 @@ gtk_list_clear_items (GtkList *list,
if (start_list->prev)
start_list->prev->next = end_list;
if (end_list && end_list->prev)
end_list->prev->next = NULL;
end_list->prev->next = NULL;
if (end_list)
end_list->prev = start_list->prev;
end_list->prev = start_list->prev;
if (start_list == list->children)
list->children = end_list;
list->children = end_list;
selection_changed = FALSE;
widget = NULL;
@ -478,7 +478,7 @@ gtk_list_select_item (GtkList *list,
void
gtk_list_unselect_item (GtkList *list,
gint item)
gint item)
{
GList *tmp_list;
@ -491,7 +491,7 @@ gtk_list_unselect_item (GtkList *list,
}
void
gtk_list_select_child (GtkList *list,
gtk_list_select_child (GtkList *list,
GtkWidget *child)
{
gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECT_CHILD], child);
@ -531,7 +531,7 @@ gtk_list_child_position (GtkList *list,
}
void
gtk_list_set_selection_mode (GtkList *list,
gtk_list_set_selection_mode (GtkList *list,
GtkSelectionMode mode)
{
g_return_if_fail (list != NULL);
@ -639,7 +639,7 @@ gtk_list_draw (GtkWidget *widget,
}
static gint
gtk_list_expose (GtkWidget *widget,
gtk_list_expose (GtkWidget *widget,
GdkEventExpose *event)
{
GtkList *list;
@ -693,7 +693,12 @@ gtk_list_enter_notify (GtkWidget *widget,
item = item->parent;
if (item && (item->parent == widget))
gtk_list_select_child (list, item);
{
gtk_list_select_child (list, item);
if (!GTK_WIDGET_HAS_FOCUS (item))
gtk_widget_grab_focus (item);
}
return FALSE;
}
@ -732,7 +737,7 @@ gtk_list_button_press (GtkWidget *widget,
}
static gint
gtk_list_button_release (GtkWidget *widget,
gtk_list_button_release (GtkWidget *widget,
GdkEventButton *event)
{
GtkList *list;
@ -841,7 +846,7 @@ gtk_list_size_allocate (GtkWidget *widget,
static void
gtk_list_add (GtkContainer *container,
GtkWidget *widget)
GtkWidget *widget)
{
GtkList *list;
@ -895,8 +900,8 @@ gtk_list_remove (GtkContainer *container,
static void
gtk_list_foreach (GtkContainer *container,
GtkCallback callback,
gpointer callback_data)
GtkCallback callback,
gpointer callback_data)
{
GtkList *list;
GtkWidget *child;
@ -1028,7 +1033,7 @@ gtk_real_list_select_child (GtkList *list,
}
static void
gtk_real_list_unselect_child (GtkList *list,
gtk_real_list_unselect_child (GtkList *list,
GtkWidget *child)
{
g_return_if_fail (list != NULL);
@ -1057,10 +1062,10 @@ gtk_real_list_unselect_child (GtkList *list,
static void
gtk_list_marshal_signal (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args)
gtk_list_marshal_signal (GtkObject *object,
GtkSignalFunc func,
gpointer func_data,
GtkArg *args)
{
GtkListSignal rfunc;

View File

@ -8,7 +8,7 @@
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
@ -30,12 +30,12 @@ extern "C" {
#endif /* __cplusplus */
#define GTK_LIST(obj) GTK_CHECK_CAST (obj, gtk_list_get_type (), GtkList)
#define GTK_LIST_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_list_get_type (), GtkListClass)
#define GTK_IS_LIST(obj) GTK_CHECK_TYPE (obj, gtk_list_get_type ())
#define GTK_LIST(obj) (GTK_CHECK_CAST (obj, gtk_list_get_type (), GtkList))
#define GTK_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST (klass, gtk_list_get_type (), GtkListClass))
#define GTK_IS_LIST(obj) (GTK_CHECK_TYPE (obj, gtk_list_get_type ()))
typedef struct _GtkList GtkList;
typedef struct _GtkList GtkList;
typedef struct _GtkListClass GtkListClass;
struct _GtkList
@ -50,49 +50,49 @@ struct _GtkList
guint16 selection_end_pos;
guint selection_mode : 2;
guint scroll_direction : 1;
guint have_grab : 1;
guint16 button;
guint have_grab : 1; /* unused */
guint16 button; /* read by GtkCombo */
};
struct _GtkListClass
{
GtkContainerClass parent_class;
void (* selection_changed) (GtkList *list);
void (* select_child) (GtkList *list,
void (* selection_changed) (GtkList *list);
void (* select_child) (GtkList *list,
GtkWidget *child);
void (* unselect_child) (GtkList *list,
void (* unselect_child) (GtkList *list,
GtkWidget *child);
};
guint gtk_list_get_type (void);
GtkWidget* gtk_list_new (void);
void gtk_list_insert_items (GtkList *list,
GList *items,
gint position);
void gtk_list_append_items (GtkList *list,
GList *items);
void gtk_list_prepend_items (GtkList *list,
GList *items);
void gtk_list_remove_items (GtkList *list,
GList *items);
void gtk_list_remove_items_no_unref (GtkList *list,
GList *items);
void gtk_list_clear_items (GtkList *list,
gint start,
gint end);
void gtk_list_select_item (GtkList *list,
gint item);
void gtk_list_unselect_item (GtkList *list,
gint item);
void gtk_list_select_child (GtkList *list,
GtkWidget *child);
void gtk_list_unselect_child (GtkList *list,
GtkWidget *child);
gint gtk_list_child_position (GtkList *list,
GtkWidget *child);
void gtk_list_set_selection_mode (GtkList *list,
GtkType gtk_list_get_type (void);
GtkWidget* gtk_list_new (void);
void gtk_list_insert_items (GtkList *list,
GList *items,
gint position);
void gtk_list_append_items (GtkList *list,
GList *items);
void gtk_list_prepend_items (GtkList *list,
GList *items);
void gtk_list_remove_items (GtkList *list,
GList *items);
void gtk_list_remove_items_no_unref (GtkList *list,
GList *items);
void gtk_list_clear_items (GtkList *list,
gint start,
gint end);
void gtk_list_select_item (GtkList *list,
gint item);
void gtk_list_unselect_item (GtkList *list,
gint item);
void gtk_list_select_child (GtkList *list,
GtkWidget *child);
void gtk_list_unselect_child (GtkList *list,
GtkWidget *child);
gint gtk_list_child_position (GtkList *list,
GtkWidget *child);
void gtk_list_set_selection_mode (GtkList *list,
GtkSelectionMode mode);

View File

@ -72,7 +72,8 @@ static void gtk_object_get_arg (GtkObject *object,
static void gtk_object_shutdown (GtkObject *object);
static void gtk_object_real_destroy (GtkObject *object);
static void gtk_object_finalize (GtkObject *object);
static void gtk_object_notify_weaks (gpointer data);
static void gtk_object_notify_weaks (GtkObject *object);
static void gtk_object_data_destroy (GtkObjectData *odata);
static guint* gtk_object_data_id_alloc (void);
@ -91,7 +92,8 @@ static GHashTable *arg_info_ht = NULL;
static const gchar *user_data_key = "user_data";
static guint user_data_key_id = 0;
static const gchar *weakrefs_key = "gtk-weakrefs";
static guint weakrefs_key_id = 0;
#ifdef G_ENABLE_DEBUG
static guint obj_count = 0;
@ -259,6 +261,8 @@ gtk_object_finalize (GtkObject *object)
{
GtkObjectData *odata, *next;
gtk_object_notify_weaks (object);
odata = object->object_data;
while (odata)
{
@ -443,14 +447,14 @@ gtk_object_sink (GtkObject *object)
* referenced object is finalized.
*
* They are not implemented as a signal because they really are
* special and need to be used with great care. Unlike signals, who
* special and need to be used with great care. Unlike signals, which
* should be able to execute any code whatsoever.
*
* A weakref callback is not allowed to retain a reference to the
* object. In fact, the object is no longer there at all when it is
* called.
* object. Object data keys may be retrieved in a weak reference
* callback.
*
* A weakref callback is called atmost once.
* A weakref callback is called at most once.
*
*****************************************/
@ -463,8 +467,6 @@ struct _GtkWeakRef
gpointer data;
};
static const gchar *weakrefs_key = "gtk-weakrefs";
void
gtk_object_weakref (GtkObject *object,
GtkDestroyNotify notify,
@ -476,12 +478,14 @@ gtk_object_weakref (GtkObject *object,
g_return_if_fail (notify != NULL);
g_return_if_fail (GTK_IS_OBJECT (object));
if (!weakrefs_key_id)
weakrefs_key_id = gtk_object_data_force_id (weakrefs_key);
weak = g_new (GtkWeakRef, 1);
weak->next = gtk_object_get_data (object, weakrefs_key);
weak->next = gtk_object_get_data_by_id (object, weakrefs_key_id);
weak->notify = notify;
weak->data = data;
gtk_object_set_data_full (object, weakrefs_key, weak,
gtk_object_notify_weaks);
gtk_object_set_data_by_id (object, weakrefs_key_id, weak);
}
void
@ -494,15 +498,17 @@ gtk_object_weakunref (GtkObject *object,
g_return_if_fail (object != NULL);
g_return_if_fail (GTK_IS_OBJECT (object));
weaks = gtk_object_get_data (object, weakrefs_key);
if (!weakrefs_key_id)
return;
weaks = gtk_object_get_data_by_id (object, weakrefs_key_id);
for (wp = &weaks; *wp; wp = &(*wp)->next)
{
w = *wp;
if (w->notify == notify && w->data == data)
{
if (w == weaks)
gtk_object_set_data_full (object, weakrefs_key, w->next,
gtk_object_notify_weaks);
gtk_object_set_data_by_id (object, weakrefs_key_id, w->next);
else
*wp = w->next;
g_free (w);
@ -512,18 +518,21 @@ gtk_object_weakunref (GtkObject *object,
}
static void
gtk_object_notify_weaks (gpointer data)
gtk_object_notify_weaks (GtkObject *object)
{
GtkWeakRef *w1, *w2;
w1 = (GtkWeakRef *)data;
while (w1)
if (weakrefs_key_id)
{
w1->notify (w1->data);
w2 = w1->next;
g_free (w1);
w1 = w2;
GtkWeakRef *w1, *w2;
w1 = gtk_object_get_data_by_id (object, weakrefs_key_id);
while (w1)
{
w1->notify (w1->data);
w2 = w1->next;
g_free (w1);
w1 = w2;
}
}
}

View File

@ -349,20 +349,22 @@ gtk_paned_remove (GtkContainer *container,
GtkWidget *widget)
{
GtkPaned *paned;
gboolean was_visible;
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_PANED (container));
g_return_if_fail (widget != NULL);
paned = GTK_PANED (container);
was_visible = GTK_WIDGET_VISIBLE (widget);
if (paned->child1 == widget)
{
gtk_widget_unparent (widget);
paned->child1 = NULL;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
}
else if (paned->child2 == widget)
@ -371,7 +373,7 @@ gtk_paned_remove (GtkContainer *container,
paned->child2 = NULL;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
}
}

View File

@ -104,12 +104,16 @@ gtk_pixmap_set (GtkPixmap *pixmap,
{
gint width;
gint height;
gint oldwidth;
gint oldheight;
g_return_if_fail (pixmap != NULL);
g_return_if_fail (GTK_IS_PIXMAP (pixmap));
if (pixmap->pixmap != val)
{
oldwidth = GTK_WIDGET (pixmap)->requisition.width;
oldheight = GTK_WIDGET (pixmap)->requisition.height;
if (pixmap->pixmap)
gdk_pixmap_unref (pixmap->pixmap);
pixmap->pixmap = val;
@ -128,7 +132,13 @@ gtk_pixmap_set (GtkPixmap *pixmap,
GTK_WIDGET (pixmap)->requisition.height = 0;
}
if (GTK_WIDGET_VISIBLE (pixmap))
gtk_widget_queue_resize (GTK_WIDGET (pixmap));
{
if ((GTK_WIDGET (pixmap)->requisition.width != oldwidth) ||
(GTK_WIDGET (pixmap)->requisition.height != oldheight))
gtk_widget_queue_resize (GTK_WIDGET (pixmap));
else
gtk_widget_queue_draw (GTK_WIDGET (pixmap));
}
}
if (pixmap->mask != mask)

View File

@ -26,6 +26,7 @@
enum {
TOKEN_INVALID = G_TOKEN_LAST,
TOKEN_INCLUDE,
TOKEN_ACTIVE,
TOKEN_BASE,
TOKEN_BG,
@ -47,7 +48,8 @@ enum {
enum {
PARSE_OK,
PARSE_ERROR,
PARSE_SYNTAX
PARSE_SYNTAX,
PARSE_DONE
};
enum {
@ -175,30 +177,28 @@ static GScannerConfig gtk_rc_scanner_config =
static struct
{
char *name;
int token;
} symbols[] =
{
{ "ACTIVE", TOKEN_ACTIVE },
{ "base", TOKEN_BASE },
{ "bg", TOKEN_BG },
{ "bg_pixmap", TOKEN_BG_PIXMAP },
{ "fg", TOKEN_FG },
{ "font", TOKEN_FONT },
{ "fontset", TOKEN_FONTSET },
{ "INSENSITIVE", TOKEN_INSENSITIVE },
{ "NORMAL", TOKEN_NORMAL },
{ "pixmap_path", TOKEN_PIXMAP_PATH },
{ "PRELIGHT", TOKEN_PRELIGHT },
{ "SELECTED", TOKEN_SELECTED },
{ "style", TOKEN_STYLE },
{ "text", TOKEN_TEXT },
{ "widget", TOKEN_WIDGET },
{ "widget_class", TOKEN_WIDGET_CLASS },
};
static int nsymbols = sizeof (symbols) / sizeof (symbols[0]);
static int done;
gchar *name;
gint token;
} symbols[] = {
{ "include", TOKEN_INCLUDE },
{ "ACTIVE", TOKEN_ACTIVE },
{ "base", TOKEN_BASE },
{ "bg", TOKEN_BG },
{ "bg_pixmap", TOKEN_BG_PIXMAP },
{ "fg", TOKEN_FG },
{ "font", TOKEN_FONT },
{ "fontset", TOKEN_FONTSET },
{ "INSENSITIVE", TOKEN_INSENSITIVE },
{ "NORMAL", TOKEN_NORMAL },
{ "pixmap_path", TOKEN_PIXMAP_PATH },
{ "PRELIGHT", TOKEN_PRELIGHT },
{ "SELECTED", TOKEN_SELECTED },
{ "style", TOKEN_STYLE },
{ "text", TOKEN_TEXT },
{ "widget", TOKEN_WIDGET },
{ "widget_class", TOKEN_WIDGET_CLASS },
};
static guint nsymbols = sizeof (symbols) / sizeof (symbols[0]);
static GHashTable *rc_style_ht = NULL;
static GSList *widget_sets = NULL;
@ -341,6 +341,7 @@ gtk_rc_parse_any (const gchar *input_name,
{
GScanner *scanner;
guint i;
gboolean done;
scanner = g_scanner_new (&gtk_rc_scanner_config);
@ -363,8 +364,15 @@ gtk_rc_parse_any (const gchar *input_name,
done = FALSE;
while (!done)
{
if (gtk_rc_parse_statement (scanner) != PARSE_OK)
gint return_val;
return_val = gtk_rc_parse_statement (scanner);
switch (return_val)
{
case PARSE_OK:
break;
default:
if (scanner->next_token != G_TOKEN_NONE)
g_scanner_get_next_token (scanner);
@ -375,8 +383,10 @@ gtk_rc_parse_any (const gchar *input_name,
g_warning ("rc file parse error: \"%s\" line %d",
input_name,
scanner->line);
/* fall through */
case PARSE_DONE:
done = TRUE;
break;
}
}
g_scanner_destroy (scanner);
@ -569,8 +579,18 @@ gtk_rc_parse_statement (GScanner *scanner)
token = g_scanner_peek_next_token (scanner);
if (token == G_TOKEN_EOF)
return PARSE_DONE;
if (token == TOKEN_INCLUDE)
{
done = TRUE;
g_scanner_get_next_token (scanner);
token = g_scanner_get_next_token (scanner);
if (token != G_TOKEN_STRING)
return PARSE_ERROR;
gtk_rc_parse (scanner->value.v_string);
return PARSE_OK;
}

View File

@ -371,7 +371,8 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
GtkAllocation child_allocation;
guint previous_hvis;
guint previous_vvis;
gint count;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));
g_return_if_fail (allocation != NULL);
@ -379,12 +380,12 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
scrolled_window = GTK_SCROLLED_WINDOW (widget);
widget->allocation = *allocation;
gtk_scrolled_window_viewport_allocate (widget, &viewport_allocation);
gtk_container_disable_resize (GTK_CONTAINER (scrolled_window));
if (GTK_WIDGET_VISIBLE (scrolled_window->viewport))
{
count = 0;
do {
gtk_scrolled_window_viewport_allocate (widget, &viewport_allocation);
@ -393,16 +394,32 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
child_allocation.width = viewport_allocation.width;
child_allocation.height = viewport_allocation.height;
previous_hvis = GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar);
previous_vvis = GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar);
previous_hvis = scrolled_window->hscrollbar_visible;
previous_vvis = scrolled_window->vscrollbar_visible;
gtk_widget_size_allocate (scrolled_window->viewport, &child_allocation);
} while ((previous_hvis != GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar)) ||
(previous_vvis != GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar)));
/* If, after the first iteration, the hscrollbar and the
* vscrollbar flip visiblity, then we need both.
*/
if ((count++) &&
(previous_hvis != scrolled_window->hscrollbar_visible) &&
(previous_vvis != scrolled_window->vscrollbar_visible))
{
scrolled_window->hscrollbar_visible = TRUE;
scrolled_window->vscrollbar_visible = TRUE;
break;
}
count++;
} while ((previous_hvis != scrolled_window->hscrollbar_visible) ||
(previous_vvis != scrolled_window->vscrollbar_visible));
}
if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
if (scrolled_window->hscrollbar_visible)
{
if (!GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
gtk_widget_show (scrolled_window->hscrollbar);
child_allocation.x = viewport_allocation.x;
child_allocation.y = viewport_allocation.y + viewport_allocation.height + SCROLLBAR_SPACING (scrolled_window);
child_allocation.width = viewport_allocation.width;
@ -412,9 +429,17 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate (scrolled_window->hscrollbar, &child_allocation);
}
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
else
{
if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
gtk_widget_hide (scrolled_window->hscrollbar);
}
if (scrolled_window->vscrollbar_visible)
{
if (!GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
gtk_widget_show (scrolled_window->vscrollbar);
child_allocation.x = viewport_allocation.x + viewport_allocation.width + SCROLLBAR_SPACING (scrolled_window);
child_allocation.y = viewport_allocation.y;
child_allocation.width = scrolled_window->vscrollbar->requisition.width;
@ -424,6 +449,11 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate (scrolled_window->vscrollbar, &child_allocation);
}
else
{
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
gtk_widget_hide (scrolled_window->vscrollbar);
}
gtk_container_enable_resize (GTK_CONTAINER (scrolled_window));
}
@ -478,7 +508,11 @@ gtk_scrolled_window_foreach (GtkContainer *container,
scrolled_window = GTK_SCROLLED_WINDOW (container);
(* callback) (scrolled_window->viewport, callback_data);
if (scrolled_window->viewport)
(* callback) (scrolled_window->viewport, callback_data);
(* callback) (scrolled_window->vscrollbar, callback_data);
(* callback) (scrolled_window->hscrollbar, callback_data);
}
static void
@ -497,10 +531,10 @@ gtk_scrolled_window_viewport_allocate (GtkWidget *widget,
allocation->width = MAX (1, widget->allocation.width - allocation->x * 2);
allocation->height = MAX (1, widget->allocation.height - allocation->y * 2);
if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar))
if (scrolled_window->vscrollbar_visible)
allocation->width = MAX (1,
allocation->width - (scrolled_window->vscrollbar->requisition.width + SCROLLBAR_SPACING (scrolled_window)));
if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar))
if (scrolled_window->hscrollbar_visible)
allocation->height = MAX (1,
allocation->height - (scrolled_window->hscrollbar->requisition.height + SCROLLBAR_SPACING (scrolled_window)));
}
@ -510,9 +544,6 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment,
gpointer data)
{
GtkScrolledWindow *scrolled_win;
GtkWidget *scrollbar;
gint hide_scrollbar;
gint policy;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
@ -521,36 +552,23 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment,
if (adjustment == gtk_range_get_adjustment (GTK_RANGE (scrolled_win->hscrollbar)))
{
scrollbar = scrolled_win->hscrollbar;
policy = scrolled_win->hscrollbar_policy;
if (scrolled_win->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
scrolled_win->hscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
}
}
else if (adjustment == gtk_range_get_adjustment (GTK_RANGE (scrolled_win->vscrollbar)))
{
scrollbar = scrolled_win->vscrollbar;
policy = scrolled_win->vscrollbar_policy;
if (scrolled_win->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
scrolled_win->vscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
}
}
else
{
g_warning ("could not determine which adjustment scrollbar received change signal for");
return;
}
if (policy == GTK_POLICY_AUTOMATIC)
{
hide_scrollbar = FALSE;
if ((adjustment->upper - adjustment->lower) <= adjustment->page_size)
hide_scrollbar = TRUE;
if (hide_scrollbar)
{
if (GTK_WIDGET_VISIBLE (scrollbar))
gtk_widget_hide (scrollbar);
}
else
{
if (!GTK_WIDGET_VISIBLE (scrollbar))
gtk_widget_show (scrollbar);
}
}
}

View File

@ -49,6 +49,8 @@ struct _GtkScrolledWindow
guint8 hscrollbar_policy;
guint8 vscrollbar_policy;
gint hscrollbar_visible : 1;
gint vscrollbar_visible : 1;
};
struct _GtkScrolledWindowClass

View File

@ -630,12 +630,17 @@ gtk_selection_clear (GtkWidget *widget,
tmp_list = tmp_list->next;
}
if (tmp_list == NULL || selection_info->time > event->time)
return FALSE;
current_selections = g_list_remove_link (current_selections, tmp_list);
g_list_free (tmp_list);
g_free (selection_info);
if (selection_info->time > event->time)
return FALSE; /* return FALSE to indicate that
* the selection was out of date,
* and this clear should be ignored */
else
if (tmp_list)
{
current_selections = g_list_remove_link (current_selections, tmp_list);
g_list_free (tmp_list);
g_free (selection_info);
}
return TRUE;
}

View File

@ -266,7 +266,7 @@ gtk_style_attach (GtkStyle *style,
g_return_val_if_fail (window != NULL, NULL);
colormap = gdk_window_get_colormap (window);
gdk_window_get_geometry (window, NULL, NULL, NULL, NULL, &depth);
depth = gdk_window_get_visual (window)->depth;
new_style = gtk_style_find (style, colormap, depth);

View File

@ -570,12 +570,14 @@ gtk_table_remove (GtkContainer *container,
if (child->widget == widget)
{
gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
gtk_widget_unparent (widget);
table->children = g_list_remove (table->children, child);
g_free (child);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
break;
}

View File

@ -710,7 +710,20 @@ gtk_tree_remove_items (GtkTree *tree,
g_print("+ gtk_tree_remove_items [ tree %#x items list %#x ]\n", (int)tree, (int)items);
#endif /* TREE_DEBUG */
root_tree = GTK_TREE(GTK_TREE_ROOT_TREE(tree));
/* We may not yet be mapped, so we actively have to find our
* root tree
*/
if (tree->root_tree)
root_tree = tree->root_tree;
else
{
GtkWidget *tmp = GTK_WIDGET (tree);
while (tmp->parent && GTK_IS_TREE (tmp->parent))
tmp = tmp->parent;
root_tree = GTK_TREE (tmp);
}
tmp_list = items;
selected_widgets = NULL;
sorted_list = NULL;
@ -779,9 +792,9 @@ gtk_tree_remove_items (GtkTree *tree,
#endif /* TREE_DEBUG */
}
/* remove this item of his real parent */
/* remove this item from its real parent */
#ifdef TREE_DEBUG
g_print("* remove widget of his owner tree\n");
g_print("* remove widget from its owner tree\n");
#endif /* TREE_DEBUG */
real_tree->children = g_list_remove (real_tree->children, widget);

View File

@ -304,9 +304,6 @@ gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
tree_item->subtree = subtree;
GTK_TREE(subtree)->tree_owner = GTK_WIDGET(tree_item);
/* set root tree for selection list */
GTK_TREE(subtree)->root_tree = GTK_TREE(GTK_WIDGET(tree_item)->parent)->root_tree;
/* show subtree button */
if (tree_item->pixmaps_box)
gtk_widget_show(tree_item->pixmaps_box);
@ -994,25 +991,35 @@ gtk_tree_item_remove_subtree (GtkTreeItem* item)
g_return_if_fail (item->subtree != NULL);
if (GTK_TREE (item->subtree)->children)
gtk_tree_remove_items (GTK_TREE (item->subtree),
GTK_TREE (item->subtree)->children);
{
/* The following call will remove the children and call
* gtk_tree_item_remove_subtree() again. So we are done.
*/
gtk_tree_remove_items (GTK_TREE (item->subtree),
GTK_TREE (item->subtree)->children);
return;
}
if (GTK_WIDGET_MAPPED (item->subtree))
gtk_widget_unmap (item->subtree);
gtk_widget_unparent (item->subtree);
if (item->pixmaps_box)
gtk_widget_hide (item->pixmaps_box);
item->subtree = NULL;
item->expanded = FALSE;
if (item->pixmaps_box)
if (item->expanded)
{
gtk_container_remove (GTK_CONTAINER (item->pixmaps_box),
item->minus_pix_widget);
gtk_container_add (GTK_CONTAINER (item->pixmaps_box),
item->plus_pix_widget);
item->expanded = FALSE;
if (item->pixmaps_box)
{
gtk_container_remove (GTK_CONTAINER (item->pixmaps_box),
item->minus_pix_widget);
gtk_container_add (GTK_CONTAINER (item->pixmaps_box),
item->plus_pix_widget);
}
}
}

View File

@ -256,10 +256,10 @@ static const gchar *visual_key = "gtk-visual";
* results:
*****************************************/
guint
GtkType
gtk_widget_get_type ()
{
static guint widget_type = 0;
static GtkType widget_type = 0;
if (!widget_type)
{
@ -2244,27 +2244,31 @@ gtk_widget_basic (GtkWidget *widget)
void
gtk_widget_grab_focus (GtkWidget *widget)
{
GtkWidget *window;
GtkWidget *child;
GtkType window_type;
g_return_if_fail (widget != NULL);
window_type = gtk_window_get_type ();
window = widget->parent;
child = widget;
while (window && !gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
g_return_if_fail (GTK_IS_WIDGET (widget));
if (GTK_WIDGET_CAN_FOCUS (widget))
{
GTK_CONTAINER (window)->focus_child = child;
child = window;
window = window->parent;
}
if (window && gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
{
GTK_CONTAINER (window)->focus_child = child;
gtk_window_set_focus (GTK_WINDOW (window), widget);
GtkWidget *window;
GtkWidget *child;
GtkType window_type;
window_type = gtk_window_get_type ();
window = widget->parent;
child = widget;
while (window && !gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
{
GTK_CONTAINER (window)->focus_child = child;
child = window;
window = window->parent;
}
if (window && gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
{
GTK_CONTAINER (window)->focus_child = child;
gtk_window_set_focus (GTK_WINDOW (window), widget);
}
}
}

View File

@ -355,7 +355,7 @@ struct _GtkWidgetShapeInfo
};
guint gtk_widget_get_type (void);
GtkType gtk_widget_get_type (void);
GtkWidget* gtk_widget_new (guint type,
...);
GtkWidget* gtk_widget_newv (guint type,

View File

@ -51,6 +51,7 @@ typedef struct sTreeButtons {
guint nb_item_add;
GtkWidget* add_button;
GtkWidget* remove_button;
GtkWidget* subtree_button;
} sTreeButtons;
/* end of tree section */
@ -1065,6 +1066,22 @@ cb_remove_item(GtkWidget*w, GtkTree* tree)
g_list_free (clear_list);
}
static void
cb_remove_subtree(GtkWidget*w, GtkTree* tree)
{
GList* selected_list;
GtkTreeItem *item;
selected_list = GTK_TREE_SELECTION(tree);
if (selected_list)
{
item = GTK_TREE_ITEM (selected_list->data);
if (item->subtree)
gtk_tree_item_remove_subtree (item);
}
}
static void
cb_tree_changed(GtkTree* tree)
{
@ -1084,11 +1101,13 @@ cb_tree_changed(GtkTree* tree)
else
gtk_widget_set_sensitive(tree_buttons->add_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->remove_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->subtree_button, FALSE);
}
else
{
gtk_widget_set_sensitive(tree_buttons->remove_button, TRUE);
gtk_widget_set_sensitive(tree_buttons->add_button, (nb_selected == 1));
gtk_widget_set_sensitive(tree_buttons->subtree_button, (nb_selected == 1));
}
}
@ -1228,6 +1247,15 @@ create_tree_sample(guint selection_mode,
gtk_widget_show(button);
tree_buttons->remove_button = button;
button = gtk_button_new_with_label("Remove Subtree");
gtk_widget_set_sensitive(button, FALSE);
gtk_signal_connect(GTK_OBJECT (button), "clicked",
(GtkSignalFunc) cb_remove_subtree,
(gpointer)root_tree);
gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);
gtk_widget_show(button);
tree_buttons->subtree_button = button;
/* create separator */
separator = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(box1), separator, FALSE, FALSE, 0);
@ -2076,6 +2104,31 @@ create_menus ()
gtk_widget_destroy (window);
}
/*
* GtkScrolledWindow
*/
static void
scrolled_windows_remove (GtkWidget *widget, GtkWidget *scrollwin)
{
static GtkWidget *parent = NULL;
static GtkWidget *float_parent;
if (parent)
{
gtk_widget_reparent (scrollwin, parent);
gtk_widget_destroy (float_parent);
float_parent = NULL;
parent = NULL;
}
else
{
parent = widget->parent;
float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_reparent (scrollwin, float_parent);
gtk_widget_show (float_parent);
}
}
/*
* GtkScrolledWindow
*/
@ -2114,6 +2167,10 @@ create_scrolled_windows ()
gtk_table_set_row_spacings (GTK_TABLE (table), 10);
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), table);
gtk_container_set_focus_hadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_container_set_focus_vadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (table);
for (i = 0; i < 20; i++)
@ -2136,6 +2193,17 @@ create_scrolled_windows ()
button, TRUE, TRUE, 0);
gtk_widget_grab_default (button);
gtk_widget_show (button);
button = gtk_button_new_with_label ("remove");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(scrolled_windows_remove),
GTK_OBJECT (scrolled_window));
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area),
button, TRUE, TRUE, 0);
gtk_widget_grab_default (button);
gtk_widget_show (button);
}
if (!GTK_WIDGET_VISIBLE (window))
@ -2772,6 +2840,8 @@ create_list ()
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_MULTIPLE);
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_BROWSE);
gtk_container_add (GTK_CONTAINER (scrolled_win), list);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (list),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_win)));
gtk_widget_show (list);
for (i = 0; i < nlist_items; i++)
@ -3908,6 +3978,28 @@ static char * book_closed_xpm[] = {
" .. ",
" "};
static void
notebook_reparent (GtkWidget *widget, GtkWidget *scrollwin)
{
static GtkWidget *parent = NULL;
static GtkWidget *float_parent;
if (parent)
{
gtk_widget_reparent (scrollwin, parent);
gtk_widget_destroy (float_parent);
float_parent = NULL;
parent = NULL;
}
else
{
parent = widget->parent;
float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (float_parent);
gtk_widget_reparent (scrollwin, float_parent);
}
}
static void
page_switch (GtkWidget *widget, GtkNotebookPage *page, gint page_num)
{
@ -4187,6 +4279,13 @@ create_notebook ()
GTK_SIGNAL_FUNC (rotate_notebook),
notebook);
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
button = gtk_button_new_with_label ("reparent");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (notebook_reparent),
notebook);
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
}
if (!GTK_WIDGET_VISIBLE (window))
@ -5718,6 +5817,7 @@ create_main_window ()
int i;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, FALSE);
gtk_widget_set_name (window, "main window");
gtk_widget_set_usize (window, 200, 400);
gtk_widget_set_uposition (window, 20, 20);
@ -5754,12 +5854,15 @@ create_main_window ()
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
box2 = gtk_vbox_new (FALSE, 0);
gtk_container_border_width (GTK_CONTAINER (box2), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), box2);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (box2);
for (i = 0; i < nbuttons; i++)

View File

@ -1,5 +1,7 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
@ -8,6 +10,9 @@
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# testgtkrc2 introduces the green color in the button list
include "testgtkrc2"
pixmap_path "."
style "default"
@ -33,10 +38,11 @@ style "button"
# bg[PRELIGHT] = { 0, 0, 0.75 }
}
style 'main_button' = 'button'
# we set want buttons in the main window to be blue by default
style 'main_buttons' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
bg[PRELIGHT] = { 0, 0, 0.75 }
}
style "toggle_button" = "button"
@ -54,6 +60,14 @@ style "text"
base[NORMAL] = { 0.0, 0.0, 0.0 }
}
style "slider"
{
fg[NORMAL] = { 1.0, 1.0, 1.0 }
bg[NORMAL] = { 0.0, 0.0, 1.0 }
bg[ACTIVE] = { 0.0 ,0.0, 0.5 }
bg[PRELIGHT] = { 0.75 ,0.75, 1.0 }
}
style "ruler"
{
font = '-adobe-helvetica-medium-r-normal--*-80-*-*-*-*-*-*'
@ -74,5 +88,5 @@ widget_class "*GtkButton*" style "button"
widget_class "*Ruler" style "ruler"
widget_class "*GtkText" style "text"
widget_class "*" style "default"
widget "main window.*GtkButton*" style "main_button"
widget "main window.*GtkButton*" style "main_buttons"
widget "*GtkCurve" style "curve"

21
gtk/testgtkrc2 Normal file
View File

@ -0,0 +1,21 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# this file gets included from testgtkrc
style 'button_list' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
}
widget "main window.*GtkScrolledWindow.*GtkButton*" style "button_list"

View File

@ -32,23 +32,43 @@ if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
echo=echo
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# The Solaris and AIX default echo program unquotes backslashes.
# This makes it impossible to quote backslashes using
# The Solaris, AIX, and Digital Unix default echo programs unquote
# backslashes. This makes it impossible to quote backslashes using
# echo "$something" | sed 's/\\/\\\\/g'
# So, we emulate echo with printf '%s\n'
echo="printf %s\\n"
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We have no working printf. Try to find a not-so-buggy echo.
echo=echo
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then
echo="$dir/echo"
break
#
# So, first we look for a working echo in the user's PATH.
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH /usr/ucb; do
if test -f $dir/echo && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t'; then
echo="$dir/echo"
break
fi
done
IFS="$save_ifs"
if test "X$echo" = Xecho; then
# We didn't find a better echo, so look for alternatives.
if test "X`(print -r '\t') 2>/dev/null`" = 'X\t'; then
# This shell has a builtin print -r that does the trick.
echo='print -r'
#
# The following is from libtool-1.2a, won't work with this patched
# libtool-1.2
#
# elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then
# # If we have ksh, try running ltconfig again with it.
# CONFIG_SHELL=/bin/ksh
# export CONFIG_SHELL
# exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
else
# Try using printf.
echo='printf %s\n'
if test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then :
else
# Oops. We lost completely, so just stick with echo.
echo=echo
fi
done
IFS="$save_ifs"
fi
fi
fi
@ -66,7 +86,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
rm="rm -f"
@ -421,7 +441,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
echo "$progname:424: checking whether we are using GNU C" >&5
echo "$progname:444: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
@ -429,7 +449,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:452: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
@ -544,14 +564,15 @@ if test -n "$pic_flag"; then
echo > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any errors to the config.log.
echo "$progname:567: checking if $compiler PIC flag $pic_flag works" >&5
if { (eval echo $progname:568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any warnings to the config.log.
cat conftest.err 1>&5
# On HP-UX, the stripped-down bundled CC does not accept +Z, but also
# reports no error. So, we need to grep stderr for (Bundled).
if grep '(Bundled)' conftest.err >/dev/null; then
# On HP-UX, both CC and GCC only warn that PIC is supported... then they
# create non-PIC objects. So, if there were any warnings, we assume that
# PIC is not supported.
if test -s conftest.err; then
echo "$ac_t"no 1>&6
can_build_shared=no
pic_flag=
@ -587,8 +608,8 @@ $rm conftest*
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
echo "$progname:590: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$progname:611: checking if $compiler static flag $link_static_flag works" >&5
if { (eval echo $progname:612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo "$ac_t$link_static_flag" 1>&6
else
echo "$ac_t"none 1>&6
@ -620,7 +641,7 @@ if test -z "$LD"; then
if test "$with_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
echo "$progname:623: checking for ld used by GCC" >&5
echo "$progname:644: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
@ -638,10 +659,10 @@ if test -z "$LD"; then
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
echo "$progname:641: checking for GNU ld" >&5
echo "$progname:662: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
echo "$progname:644: checking for non-GNU ld" >&5
echo "$progname:665: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
@ -967,11 +988,11 @@ void nm_test_func(){}
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
echo "$progname:970: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
echo "$progname:991: checking if global_symbol_pipe works" >&5
if { (eval echo $progname:992: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
# Now try to grab the symbols.
nlist=conftest.nm
if { echo "$progname:974: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
if { echo "$progname:995: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@ -1029,7 +1050,7 @@ EOF
save_CFLAGS="$CFLAGS"
LIBS='conftestm.o'
CFLAGS="$CFLAGS$no_builtin_flag"
if { (eval echo $progname:1032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo $progname:1053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5

View File

@ -30,7 +30,7 @@ modename="$progname"
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.1
VERSION=1.2
default_mode=
help="Try \`$progname --help' for more information."
@ -481,7 +481,7 @@ if test -z "$show_help"; then
if test "$export_dynamic" != yes; then
export_dynamic=yes
if test -n "$export_dynamic_flag_spec"; then
arg=`eval \\$echo "$export_dynamic_flag_spec"`
eval arg=\"$export_dynamic_flag_spec\"
else
arg=
fi
@ -682,7 +682,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@ -843,7 +843,7 @@ if test -z "$show_help"; then
esac
name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
libname=`eval \\$echo \"$libname_spec\"`
eval libname=\"$libname_spec\"
# All the library-specific variables (install_libdir is set above).
library_names=
@ -1006,13 +1006,13 @@ if test -z "$show_help"; then
if test "$build_libtool_libs" = yes; then
# Get the real and link names of the library.
library_names=`eval \\$echo \"$library_names_spec\"`
eval library_names=\"$library_names_spec\"
set dummy $library_names
realname="$2"
shift; shift
if test -n "$soname_spec"; then
soname=`eval \\$echo \"$soname_spec\"`
eval soname=\"$soname_spec\"
else
soname="$realname"
fi
@ -1027,7 +1027,7 @@ if test -z "$show_help"; then
test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'`
# Do each of the archive commands.
cmds=`eval \\$echo \"$archive_cmds\"`
eval cmds=\"$archive_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1104,7 +1104,7 @@ if test -z "$show_help"; then
reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'`
output="$obj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1128,7 +1128,7 @@ if test -z "$show_help"; then
# Only do commands if we really have different PIC objects.
reload_objs="$libobjs"
output="$libobj"
cmds=`eval \\$echo \"$reload_cmds\"`
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1177,7 +1177,7 @@ if test -z "$show_help"; then
fi
if test -n "$libdir"; then
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
compile_command="$compile_command $flag"
finalize_command="$finalize_command $flag"
@ -1254,8 +1254,8 @@ if test -z "$show_help"; then
case "$dlsyms" in
"") ;;
*.c)
$echo > "$objdir/$dlsyms" \
"/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
$echo > "$objdir/$dlsyms" "\
/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */
#ifdef __cplusplus
@ -1266,17 +1266,17 @@ extern \"C\" {
#define dld_preloaded_symbol_count some_other_symbol
#define dld_preloaded_symbols some_other_symbol
/* External symbol declarations for the compiler. */"
/* External symbol declarations for the compiler. */\
"
if test -f "$nlist"; then
sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms"
else
echo '/* NONE */' >> "$objdir/$dlsyms"
EOF
fi
$echo >> "$objdir/$dlsyms" \
"
$echo >> "$objdir/$dlsyms" "\
#undef dld_preloaded_symbol_count
#undef dld_preloaded_symbols
@ -1295,19 +1295,21 @@ struct {
__ptr_t address;
}
dld_preloaded_symbols[] =
{"
{\
"
if test -f "$nlist"; then
sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms"
fi
$echo >> "$objdir/$dlsyms" \
" {0, (__ptr_t) 0}
$echo >> "$objdir/$dlsyms" "\
{0, (__ptr_t) 0}
};
#ifdef __cplusplus
}
#endif"
#endif\
"
;;
*)
@ -1427,8 +1429,8 @@ dld_preloaded_symbols[] =
$rm $output
trap "$rm $output; exit 1" 1 2 15
$echo > $output \
"#! /bin/sh
$echo > $output "\
#! /bin/sh
# $output - temporary wrapper script for $objdir/$output
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
@ -1459,10 +1461,9 @@ else
else
echo=\"$qecho\"
file=\"\$0\"
fi
"
$echo >> $output \
fi\
"
$echo >> $output "\
# Find the directory that this script lives in.
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
@ -1496,8 +1497,8 @@ else
# Export our shlibpath_var if we have one.
if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
$echo >> $output \
" # Add our own library path to $shlibpath_var
$echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
@ -1507,24 +1508,17 @@ else
"
fi
echo >> $output \
" if test \"\$libtool_execute_magic\" != \"$magic\"; then
$echo >> $output "\
if test \"\$libtool_execute_magic\" != \"$magic\"; then
# Run the actual program with our arguments.
args=
for arg
do
# Quote arguments (to preserve shell metacharacters).
arg=\`\$echo \"X\$arg\" | \$Xsed -e \"\$sed_quote_subst\"\`
args=\"\$args \\\"\$arg\\\"\"
done
# Export the path to the program.
PATH=\"\$progdir:\$PATH\"
export PATH
eval \"exec \$program \$args\"
exec \$program \${1+\"\$@\"}
\$echo \"\$0: cannot exec \$program \$args\"
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit 1
fi
else
@ -1534,7 +1528,8 @@ else
echo \"See the $PACKAGE documentation for more information.\" 1>&2
exit 1
fi
fi"
fi\
"
chmod +x $output
fi
exit 0
@ -1548,9 +1543,9 @@ fi"
# Do each command in the archive commands.
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
cmds=`eval \\$echo \"$old_archive_from_new_cmds\"`
eval cmds=\"$old_archive_from_new_cmds\"
else
cmds=`eval \\$echo \"$old_archive_cmds\"`
eval cmds=\"$old_archive_cmds\"
fi
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
@ -1571,8 +1566,8 @@ fi"
# Only create the output if not a dry run.
if test -z "$run"; then
echo > $output \
"# $output - a libtool library file
$echo > $output "\
# $output - a libtool library file
# Generated by ltmain.sh - GNU $PACKAGE $VERSION
# The name that we can dlopen(3).
@ -1593,7 +1588,8 @@ age=$age
revision=$revision
# Directory that this library needs to be installed in:
libdir='$install_libdir'"
libdir='$install_libdir'\
"
fi
# Do a symbolic link so that the libtool archive can be found in
@ -1835,7 +1831,7 @@ libdir='$install_libdir'"
# Do each command in the postinstall commands.
lib="$destdir/$realname"
cmds=`eval \\$echo \"$postinstall_cmds\"`
eval cmds=\"$postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -1972,7 +1968,7 @@ libdir='$install_libdir'"
$run eval "$install_prog \$file \$oldlib" || exit $?
# Do each command in the postinstall commands.
cmds=`eval \\$echo \"$old_postinstall_cmds\"`
eval cmds=\"$old_postinstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -2010,7 +2006,7 @@ libdir='$install_libdir'"
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
cmds=`eval \\$echo \"$finish_cmds\"`
eval cmds=\"$finish_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -2021,7 +2017,7 @@ libdir='$install_libdir'"
fi
if test -n "$finish_eval"; then
# Do the single finish_eval.
cmds=`eval \\$echo \"$finish_eval\"`
eval cmds=\"$finish_eval\"
$run eval "$cmds"
fi
done
@ -2047,7 +2043,7 @@ libdir='$install_libdir'"
fi
if test -n "$hardcode_libdir_flag_spec"; then
libdir=LIBDIR
flag=`eval \\$echo \"$hardcode_libdir_flag_spec\"`
eval flag=\"$hardcode_libdir_flag_spec\"
echo " - use the \`$flag' linker flag"
fi
@ -2238,7 +2234,7 @@ libdir='$install_libdir'"
if test -n "$library_names"; then
# Do each command in the postuninstall commands.
cmds=`eval \\$echo \"$postuninstall_cmds\"`
eval cmds=\"$postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"
@ -2250,7 +2246,7 @@ libdir='$install_libdir'"
if test -n "$old_library"; then
# Do each command in the old_postuninstall commands.
cmds=`eval \\$echo \"$old_postuninstall_cmds\"`
eval cmds=\"$old_postuninstall_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS=';'
for cmd in $cmds; do
IFS="$save_ifs"

View File

@ -51,6 +51,7 @@ typedef struct sTreeButtons {
guint nb_item_add;
GtkWidget* add_button;
GtkWidget* remove_button;
GtkWidget* subtree_button;
} sTreeButtons;
/* end of tree section */
@ -1065,6 +1066,22 @@ cb_remove_item(GtkWidget*w, GtkTree* tree)
g_list_free (clear_list);
}
static void
cb_remove_subtree(GtkWidget*w, GtkTree* tree)
{
GList* selected_list;
GtkTreeItem *item;
selected_list = GTK_TREE_SELECTION(tree);
if (selected_list)
{
item = GTK_TREE_ITEM (selected_list->data);
if (item->subtree)
gtk_tree_item_remove_subtree (item);
}
}
static void
cb_tree_changed(GtkTree* tree)
{
@ -1084,11 +1101,13 @@ cb_tree_changed(GtkTree* tree)
else
gtk_widget_set_sensitive(tree_buttons->add_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->remove_button, FALSE);
gtk_widget_set_sensitive(tree_buttons->subtree_button, FALSE);
}
else
{
gtk_widget_set_sensitive(tree_buttons->remove_button, TRUE);
gtk_widget_set_sensitive(tree_buttons->add_button, (nb_selected == 1));
gtk_widget_set_sensitive(tree_buttons->subtree_button, (nb_selected == 1));
}
}
@ -1228,6 +1247,15 @@ create_tree_sample(guint selection_mode,
gtk_widget_show(button);
tree_buttons->remove_button = button;
button = gtk_button_new_with_label("Remove Subtree");
gtk_widget_set_sensitive(button, FALSE);
gtk_signal_connect(GTK_OBJECT (button), "clicked",
(GtkSignalFunc) cb_remove_subtree,
(gpointer)root_tree);
gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);
gtk_widget_show(button);
tree_buttons->subtree_button = button;
/* create separator */
separator = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(box1), separator, FALSE, FALSE, 0);
@ -2076,6 +2104,31 @@ create_menus ()
gtk_widget_destroy (window);
}
/*
* GtkScrolledWindow
*/
static void
scrolled_windows_remove (GtkWidget *widget, GtkWidget *scrollwin)
{
static GtkWidget *parent = NULL;
static GtkWidget *float_parent;
if (parent)
{
gtk_widget_reparent (scrollwin, parent);
gtk_widget_destroy (float_parent);
float_parent = NULL;
parent = NULL;
}
else
{
parent = widget->parent;
float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_reparent (scrollwin, float_parent);
gtk_widget_show (float_parent);
}
}
/*
* GtkScrolledWindow
*/
@ -2114,6 +2167,10 @@ create_scrolled_windows ()
gtk_table_set_row_spacings (GTK_TABLE (table), 10);
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), table);
gtk_container_set_focus_hadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_container_set_focus_vadjustment (GTK_CONTAINER (table),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (table);
for (i = 0; i < 20; i++)
@ -2136,6 +2193,17 @@ create_scrolled_windows ()
button, TRUE, TRUE, 0);
gtk_widget_grab_default (button);
gtk_widget_show (button);
button = gtk_button_new_with_label ("remove");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(scrolled_windows_remove),
GTK_OBJECT (scrolled_window));
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area),
button, TRUE, TRUE, 0);
gtk_widget_grab_default (button);
gtk_widget_show (button);
}
if (!GTK_WIDGET_VISIBLE (window))
@ -2772,6 +2840,8 @@ create_list ()
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_MULTIPLE);
gtk_list_set_selection_mode (GTK_LIST (list), GTK_SELECTION_BROWSE);
gtk_container_add (GTK_CONTAINER (scrolled_win), list);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (list),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_win)));
gtk_widget_show (list);
for (i = 0; i < nlist_items; i++)
@ -3908,6 +3978,28 @@ static char * book_closed_xpm[] = {
" .. ",
" "};
static void
notebook_reparent (GtkWidget *widget, GtkWidget *scrollwin)
{
static GtkWidget *parent = NULL;
static GtkWidget *float_parent;
if (parent)
{
gtk_widget_reparent (scrollwin, parent);
gtk_widget_destroy (float_parent);
float_parent = NULL;
parent = NULL;
}
else
{
parent = widget->parent;
float_parent = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (float_parent);
gtk_widget_reparent (scrollwin, float_parent);
}
}
static void
page_switch (GtkWidget *widget, GtkNotebookPage *page, gint page_num)
{
@ -4187,6 +4279,13 @@ create_notebook ()
GTK_SIGNAL_FUNC (rotate_notebook),
notebook);
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
button = gtk_button_new_with_label ("reparent");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (notebook_reparent),
notebook);
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
}
if (!GTK_WIDGET_VISIBLE (window))
@ -5718,6 +5817,7 @@ create_main_window ()
int i;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, FALSE);
gtk_widget_set_name (window, "main window");
gtk_widget_set_usize (window, 200, 400);
gtk_widget_set_uposition (window, 20, 20);
@ -5754,12 +5854,15 @@ create_main_window ()
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
box2 = gtk_vbox_new (FALSE, 0);
gtk_container_border_width (GTK_CONTAINER (box2), 10);
gtk_container_add (GTK_CONTAINER (scrolled_window), box2);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2),
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
gtk_widget_show (box2);
for (i = 0; i < nbuttons; i++)

View File

@ -1,5 +1,7 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
@ -8,6 +10,9 @@
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# testgtkrc2 introduces the green color in the button list
include "testgtkrc2"
pixmap_path "."
style "default"
@ -33,10 +38,11 @@ style "button"
# bg[PRELIGHT] = { 0, 0, 0.75 }
}
style 'main_button' = 'button'
# we set want buttons in the main window to be blue by default
style 'main_buttons' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
bg[PRELIGHT] = { 0, 0, 0.75 }
}
style "toggle_button" = "button"
@ -54,6 +60,14 @@ style "text"
base[NORMAL] = { 0.0, 0.0, 0.0 }
}
style "slider"
{
fg[NORMAL] = { 1.0, 1.0, 1.0 }
bg[NORMAL] = { 0.0, 0.0, 1.0 }
bg[ACTIVE] = { 0.0 ,0.0, 0.5 }
bg[PRELIGHT] = { 0.75 ,0.75, 1.0 }
}
style "ruler"
{
font = '-adobe-helvetica-medium-r-normal--*-80-*-*-*-*-*-*'
@ -74,5 +88,5 @@ widget_class "*GtkButton*" style "button"
widget_class "*Ruler" style "ruler"
widget_class "*GtkText" style "text"
widget_class "*" style "default"
widget "main window.*GtkButton*" style "main_button"
widget "main window.*GtkButton*" style "main_buttons"
widget "*GtkCurve" style "curve"

21
tests/testgtkrc2 Normal file
View File

@ -0,0 +1,21 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# this file gets included from testgtkrc
style 'button_list' = 'button'
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0, 0.75, 0x00 }
}
widget "main window.*GtkScrolledWindow.*GtkButton*" style "button_list"