Compare commits

..

1236 Commits

Author SHA1 Message Date
Raph Levien
6d13f0f9b3 Checking in minor changes. Now synced with 0.9.0. 1998-09-11 00:11:05 +00:00
Manish Singh
683cb5753e added -posix check for NeXTStep
* configure.in: added -posix check for NeXTStep

* gtk/testthreads.c: applied part of gtk-joke-980907-0 to use
a unique buffer for each thread.

* docs/gtk-config.1: clarified copyright

-Yosh
1998-09-09 09:51:44 +00:00
Tim Janik
c8fbf3b01e minor fixup 1998-09-08 09:24:22 +00:00
Tim Janik
e33741aed6 use g_atexit() instead of ATEXIT.
Tue Sep  8 05:19:51 1998  Tim Janik  <timj@gtk.org>

        * gdk/gdk.c (gdk_init): use g_atexit() instead of ATEXIT.

        * gtk/gtkmain.c (gtk_init): use g_atexit() instead of ATEXIT.

        * gtk/gtkobject.c (gtk_object_init_type): use g_atexit() instead of
        ATEXIT.

        * ltconfig: use GLib's ltconfig which honours lcc.
1998-09-08 04:08:17 +00:00
Manish Singh
f830dc3f36 comment the -std1 check and save LIBS properly
-Yosh
1998-09-08 03:09:54 +00:00
Manish Singh
e096fc9752 cosmetic case change
-Yosh
1998-09-07 02:16:41 +00:00
Manish Singh
f6d4cb9b99 #include <stdlib.h> for rand()
-Yosh
1998-09-06 19:36:56 +00:00
Owen Taylor
51021f88c5 When the pointer is grabbed on an input window, either explicitely, or
Sat Sep  5 16:01:19 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkinputxfree.h gdk/gdk.c gdk/gdkinputgxi.h:
	When the pointer is grabbed on an input window,
	either explicitely, or through press-grab, and
	then grabbed on a non-input window, ungrab the
	devices.
1998-09-05 21:22:51 +00:00
Tim Janik
78dbc1efdb don't include any gdk headers. added structure definitions for
Sat Sep  5 07:13:19 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.h: don't include any gdk headers.
        added structure definitions for GtkTypeObject and GtkTypeClass,
        which cover the very basic fields of GtkObject and GtkObjectClass,
        which are actually used by the type system.

        * gtk/gtktypeutils.c: don't include gtkobject.h or gtkcontainer.h,
        we only refer to our own structures. improved class inheritance
        sanity checking a bit.

        * gtk/gtkobject.h: placed appropriate comments at the beginnings
        of the GtkObject and GtkObjectClass structures, which explain
        their relationship to GtkTypeObject and GtkTypeClass.

        * gtk/gtktypeutils.h:
        * gtk/gtkobject.h:
        moved GTK_STRUCT_OFFSET(), GTK_CHECK_CAST(), GTK_CHECK_CLASS_CAST(),
        GTK_CHECK_TYPE() and GTK_CHECK_CLASS_TYPE() macro definitions from
        gtkobject.h to gtktypeutils.h.

        * gtk/gtkobject.h:
        * gtk/gtkobject.c:
        removed gtk_object_check_cast() and gtk_object_check_class_cast()
        functions. to keep source compatibility, we can provide macro aliases
        for the corresponding gtk_type_* functions. but then again, people
        shouldn't have been using these functions anyways since they were part
        of Gtk's internal API.

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c:
        implemented gtk_type_check_object_cast() and gtk_type_check_class_cast()
        functions to check GtkTypeObject and GtkTypeClass types.
1998-09-05 06:54:20 +00:00
Tim Janik
0f0d9509c0 `const' fixups.
Thu Sep  3 07:16:54 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkctree.h:
        * gtk/gtkctree.c: `const' fixups.

        * gtk/gtkclist.h:
        * gtk/gtkclist.c: `const' fixups and some coding style adaptions.

        * gtk/gtkctree.c (gtk_ctree_insert_node): don't dereference *text
        if it is passed as NULL.
1998-09-03 07:28:37 +00:00
Raph Levien
ebe76c752c Fixed up some of the bigendian 32bpp modes. 1998-09-03 05:47:08 +00:00
Tim Janik
75bda50723 plug another small GtkSIgnalQuery leak.
Thu Sep  3 04:45:57 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccelgroup.c (gtk_accel_group_add): plug another small
        GtkSIgnalQuery leak.
1998-09-03 02:48:52 +00:00
Tim Janik
698c89e5c4 GTK_MENU_DIR_CHILD: check for the existance of
Thu Sep  3 04:22:20 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
        GTK_MENU_DIR_CHILD: check for the existance of
        menu_shell->active_menu_item before accessing its child.
        GTK_MENU_DIR_PREV:
        GTK_MENU_DIR_NEXT: if we haven't had an active item and still
        don't, make a default selection.

Wed Sep  2 00:28:58 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_propagate_state): iterate
        the children with _forall for sensitivity changes and with
        _foreach on pure state changes. this fixes a lot of the
        old inclusions of internal widgets into _foreach calls.

        * gtk/gtktree.c: removed gtk_tree_foreach, let gtk_tree_forall
        do the work. don't walk the subtrees of first level children.

        * gtk/gtktreeitem.c: provide a _forall implementation,
        which walks the subtrees as well for include_internals.

        * gtk/gtkmenuitem.c: provide a _forall implementation, which walks
        the submenus as well for include_internals.

        * gtk/gtkscrolledwindow.c: removed gtk_scrolled_window_foreach and
        implemented gtk_scrolled_window_forall, which will iterate over
        the viewport and the scrollbars for gtk_container_forall or
        iterate over the viewports children for gtk_container_foreach.

        * gtk/gtktoolbar.c:
        * gtk/gtktable.c:
        * gtk/gtkpaned.c:
        * gtk/gtkpacker.c:
        * gtk/gtkmenushell.c:
        * gtk/gtklist.c:
        * gtk/gtkfixed.c:
        * gtk/gtkclist.c:
        * gtk/gtkbox.c:
        * gtk/gtkbin.c:
        * gtk/gtknotebook.c:
        removed the old gtk_*_foreach functions and provided gtk_*_forall.

        * gtk/gtknotebook.c:
        (gtk_notebook_real_switch_page): expose tabs.
        (gtk_notebook_page_num): new function to return the page number
        of a distinct child.
        (gtk_notebook_focus): minor fixups. foxus handling is still screwed
        under some circumstances.

        * gtk/gtktreeitem.c:
        (gtk_real_tree_item_select):
        (gtk_real_tree_item_deselect): major fixes.
        some general fixups wrt queue_redraw, and tree items not being
        NO_WINDOW widgets.

        * gtk/gtklistitem.c:
        (gtk_real_list_item_select):
        (gtk_real_list_item_deselect):
        (gtk_real_list_item_toggle):
        removed unneccessary queue_redraw calls.

Wed Aug 30 09:42:07 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkoptionmenu.c: allow optionmenus to have the focus and
        automatically popup the menu on space bar.

Wed Aug 26 06:40:34 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.h:
        * gtk/gtkcontainer.c: implemented gtk_container_forall() (as a class
        method), which acts similar to gtk_container_foreach(), but iterates
        over internal children. the GtkContainer::foreach signal vanished in
        favour of a new class method ->forall() that optionally includes
        internal widgets.

        * gtk/gtkclist.c (gtk_clist_init): provide no _foreach implementation
        but a _forall implementation, since all child widgets we have are
        internal ones.
        (column_button_create): set the parent window prior
        to gtk_widget_set_parent().

        * gtk/gtkwidget.c:
        exchanged all calls to gtk_container_foreach() with
        gtk_container_forall().

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: added the GTK_COMPOSITE_CHILD, exported through
        the GtkWidget::composite_child argument. to have a widget created
        with the flag initially, two new functions got added to wrap a widgets
        creation:
        gtk_widget_push_composite_flag() and gtk_widget_pop_composite_flag().

Wed Aug 25 23:37:39 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktooltips.h:
        * gtk/gtktooltips.c: exported gtk_tooltips_create_window() as
        gtk_tooltips_force_window(), so tooltips->tip_window can be accessed
        prior to the first tip being set.
        don't put an extra reference on the window, since it is a toplevel,
        it wont get destroyed from anywhere else.

        * overall macro and GtkType fixups.
1998-09-03 02:38:53 +00:00
Federico Mena Quintero
af9c5dede4 Replaced "foo == TRUE" and "foo == FALSE" constructs by more forgiving
1998-09-02  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkcolorsel.c: Replaced "foo == TRUE" and "foo == FALSE"
	constructs by more forgiving ones.  (Does anyone else feel like
	the color selector need rewriting?).
1998-09-02 21:46:49 +00:00
Owen Taylor
0e2758ae42 Unref the adjustment.
Tue Sep  1 10:53:52 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkprogress.c (gtk_progress_finalize): Unref
	the adjustment.

	* gtk/gtkmenu.c: Modified reference counting so
	that the reference count from the toplevel that
	the menu creates to the menu is invisible to the
	application.
1998-09-01 18:41:26 +00:00
Raph Levien
7dbe380691 I should have added testrgb to the .cvsignore last time. Now I have. 1998-09-01 06:01:30 +00:00
Raph Levien
1fe35dda56 Minor improvements to gdkrgb, added testrgb to the gtk directory. 1998-09-01 05:29:45 +00:00
Frank Belew (Myth)
4bb5d92a02 file .cvsignore was initially added on branch themes-2. 1998-09-01 05:20:20 +00:00
Raph Levien
10dcedad06 Added a gdk_draw_rgb_image_dithalign function. 1998-08-31 22:18:18 +00:00
Manish Singh
f2322ebeb4 quell some warnings with g_hash_table_new
* gdk/gdkcolor.c:
(gdk_colormap_new) (gdk_colormap_get_system):
quell some warnings with g_hash_table_new

* gtk/gtkaccelgroup.c (gtk_accel_group_add): free the GtkSignalQuery when
we're done with it

* gtk/itemfactory.c:
(gtk_item_factory_from_path):
(gtk_item_factory_create_item): free some strings

* gtk/gtklabel.c:
(gtk_label_finalize): free label->pattern when done
(gtk_label_parse_uline): null terminate pattern string, delete some duplicated
code

* gtk/testthreads.c: add #include <unistd.h> for sleep()

-Yosh
1998-08-29 22:27:47 +00:00
Owen Taylor
1dafcb2a24 Make sure the mark we pass to line start is the beginning of a real line,
Tue Aug 25 16:52:47 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (recompute_geometry): Make sure the
	mark we pass to line start is the beginning of a
	real line, not a wrapped one.
1998-08-25 22:22:12 +00:00
Marius Vollmer
155da3a8c5 Started to document the lowest layers of the type system. 1998-08-25 20:51:58 +00:00
Arturo Espinosa
1cbad0a4fc Updated the stupid builtins file, again - Federico 1998-08-25 16:44:03 +00:00
Owen Taylor
caf8ebc6f1 Reference count the fonts used in the text widget.
Mon Aug 24 18:37:15 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c: Reference count the fonts used in
	the text widget.

	* gdk/gdk.h gdk/gdkcolor.c: Rename the color allocation
	freeing functions to be more consistent, and more
	convenient; leave the old names in for backwards compatibility.

	* gdk/gdkcolor.c gdk/gdkprivate.h: Reference count the
	allocations in pseudo-color colormaps to greatly reduce
	calls to XAllocColor. Keep a per-colormap hashtable to
	speed up finding if there is an already-allocated matching
	color.

	* gdk/gdkcolor.c: Don't just match read the system colormap
	when the colormap is created, but synchronize our copy
	with the system colormap periodically.

	* gdk/gdk.c gdk/gdktypes.h gtk/gtkentry.c gtk/gtktext.c:
	Change XIM constants names to match GDK conventions

	* gtk/testinput.c: Allow the drawing area to get the focus.

	* gtk/testgtk.c: Change around the Text test to demonstrates
	multiple fonts, use more colors.

	* gtk/gtkwidget.c: Improve gtk_widget_get_colormap()/visual()
	so they work after a widget is unrealized.

	* gtk/gtktext.[ch]: Remove the requirement that the text
	widget be realized before adding text (!) Allocate colors
	ourself, instead of requiring the caller allocate them.
	Allow changing styles to work properly by keeping track
	of the values for a certain property are default or
	set explicitely.

	* gtk/gtkmenu.h: Added some comments.

	* gtk/gtkentry.c: Changes to match XIM constants.

	* gtk/gdk.h gdk/gdkwindow.c: Add gdk_drawable_set_data(),
	for adding keyed data to drawables. (Uses g_dataset
	internally)

	* gdk/gdkpixmap.c: Keep track of the colors we allocate,
	when creating an XPM - store them as user data for the GdkPixmap,
	so we don't leak colors when we create pixmaps from XPM's.

	Allocate memory for color information in large blocks instead of
	as many little pieces.
1998-08-25 00:06:38 +00:00
Manish Singh
b93d689290 removed some unused variables
* gdk/gdkrgb.c: removed some unused variables

* gtk/gtkclist.c
* gtk/gtkmain.c: #if 0'd out some unused code

* gtk/gtkobject.c: check for NULL object hash table in gtk_object_debug

-Yosh
1998-08-24 18:13:08 +00:00
Tim Janik
02a871bc31 begin the parameter elipsis (...) after the first argument name. this
Mon Aug 24 02:36:53 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkarg.h:
        * gtk/gtkarg.c:
        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c:
        * gtk/gtkobject.h:
        * gtk/gtkobject.c:
        * gtk/gtkcontainer.h:
        * gtk/gtkcontainer.c:
        (gtk_object_new):
        (gtk_object_set):
        (gtk_widget_new):
        (gtk_widget_set):
        (gtk_container_add_with_args):
        (gtk_container_child_set):
        begin the parameter elipsis (...) after the first argument name. this
        change is source compatible, since it was always required, even as NULL.
        (gtk_args_collect):
        (gtk_object_args_collect):
        (gtk_container_child_args_collect):
        changed prototypes to pass first_arg_name, also, pass va_list variable
        by value (portability concerns). callers changed.

        * gtk/gtkargcollector.c: implemented gtk_arg_collect_value() as
        a huge macro GTK_ARG_COLLECT_VALUE() <shrug>. this is needed because we
        can't pass va_list variables by reference for portability reasons.
1998-08-24 05:27:29 +00:00
Raph Levien
db10ace6c8 Added some calls to gdk_rgb_init, so it's much more likely to correctly
initialize now.
1998-08-22 05:41:32 +00:00
Carsten Haitzler
6cfad41c09 file makemakefile.sh was initially added on branch themes-2. 1998-08-22 01:29:55 +00:00
Carsten Haitzler
6ccb4844c9 file README was initially added on branch themes-2. 1998-08-22 01:29:54 +00:00
Carsten Haitzler
17a24b0ca3 file Makefile.am was initially added on branch themes-2. 1998-08-22 01:29:53 +00:00
Carsten Haitzler
04f593c9fb file ICON.png was initially added on branch themes-2. 1998-08-22 01:29:52 +00:00
Owen Taylor
41e007894c file ltmain.sh was initially added on branch themes-2. 1998-08-22 00:13:35 +00:00
Owen Taylor
97c37421a6 file ltconfig was initially added on branch themes-2. 1998-08-22 00:13:34 +00:00
Owen Taylor
5682c4abb6 file makemakefile.sh was initially added on branch themes-2. 1998-08-21 23:47:22 +00:00
Owen Taylor
cb6b2054ab file Makefile.am was initially added on branch themes-2. 1998-08-21 23:47:21 +00:00
Owen Taylor
0363711f77 file .cvsignore was initially added on branch themes-2. 1998-08-21 23:47:20 +00:00
Owen Taylor
bf7eeebb3a file install-sh was initially added on branch themes-2. 1998-08-21 23:41:07 +00:00
Owen Taylor
2c099e45e3 file README was initially added on branch themes-2. 1998-08-21 23:41:06 +00:00
Owen Taylor
9c891d4417 file NEWS was initially added on branch themes-2. 1998-08-21 23:41:05 +00:00
Owen Taylor
0c27e75cbe file ChangeLog was initially added on branch themes-2. 1998-08-21 23:41:02 +00:00
Owen Taylor
02a024df2f file AUTHORS was initially added on branch themes-2. 1998-08-21 23:41:01 +00:00
Stuart Parmenter
7aac253dcc added GTK_HAVE_FEATURES_1_1_2 1998-08-21 17:07:11 +00:00
Tim Janik
a7b3b116a9 added a function to perform a binary version check, returning a static
Fri Aug 21 02:31:26 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.h:
        * gtk/gtkmain.c (gtk_check_version): added a function to perform a
        binary version check, returning a static string for error descriptions,
        or NULL on success.
1998-08-21 02:22:06 +00:00
Owen Taylor
29d8fe021b Check to see if we've computed our geometry yet, and if not, ignore the
Thu Aug 20 20:08:15 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c ([un]draw_cursor): Check to see if we've
	computed our geometry yet, and if not, ignore the request.

	  gtk/gtktext.c (correct_cache_insert): Fiddled around]
	some more. All the bug-test codes seem to work at once
	now. (fingers crossed...)
1998-08-21 00:13:38 +00:00
Carsten Haitzler
f616dc9a9a file gtkrc was initially added on branch themes-2. 1998-08-20 22:20:49 +00:00
Carsten Haitzler
bd088fe083 file metal_theme_main.c was initially added on branch themes-2. 1998-08-20 22:20:06 +00:00
Carsten Haitzler
94ed72d3e6 file metal_theme_draw.c was initially added on branch themes-2. 1998-08-20 22:20:05 +00:00
Carsten Haitzler
c312fe1c8d file metal_theme.h was initially added on branch themes-2. 1998-08-20 22:20:04 +00:00
Carsten Haitzler
2fde6f677e file README.metal was initially added on branch themes-2. 1998-08-20 22:20:03 +00:00
Manish Singh
568b42bd52 silly visual fixes
* gdk/gdkrgb.c: silly visual fixes

* gtk/testgtk.c: call gdk_rgb_init so color preview test actually works

-Yosh
1998-08-20 20:10:52 +00:00
Federico Mena Quintero
cad57a6686 Do not do anything if the event's window is not the bin window.
1998-08-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkhandlebox.c (gtk_handle_box_button_changed): Do not do
	anything if the event's window is not the bin window.
	(gtk_handle_box_motion): Likewise.
1998-08-20 16:55:16 +00:00
Raph Levien
e946fcf69d Change to testgtk to go along with GdkRgb integration into gtk_preview. 1998-08-20 06:59:26 +00:00
Raph Levien
f1a524a21e Minor fixes that were needed for the Gimp/GdkRgb integration. 1998-08-20 06:52:52 +00:00
Tim Janik
38db8d1951 allow argument parsing in gtk without G_ENABLE_DEBUG being defined
Wed Aug 19 00:11:14 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): allow argument parsing in gtk without
        G_ENABLE_DEBUG being defined (specifically --gtk-module= and
        --g-fatal-warnings), noticed by miguel.
1998-08-18 22:22:22 +00:00
Tim Janik
49dfa78e74 use g_get_current_dir() instead of getcwd().
Tue Aug 18 17:54:40 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkrc.c (gtk_rc_parse_file): use g_get_current_dir() instead of
        getcwd().

        * gdk/gdkprivate.h:
        * gdk/gdkglobals.c:
        * gdk/gdkwindow.c:
        * gdk/gdk.c:
        * gtk/gtkwindow.c:
        * gtk/gtkitemfactory.c:
        dropped gdk_progname, use g_get_prgname()/g_set_prgname() instead.

        * gtk/gtkselection.c:
        * gtk/gtkpreview.c:
        * gtk/gtkobject.c:
        * gtk/gtkmain.c:
        * gtk/gtktypeutils.c: indentation fixes due to g_message() use.

        * gdk/gdkrgb.c: exchanged occourances of g_print with g_message.
1998-08-18 16:58:09 +00:00
Lars Hamann
1575a19c59 fix for sigsegv in case of show_tabs == NULL
Tue Aug 18 17:22:22 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_switch_focus_tab):
	* gtk/gtknotebook.c (gtk_notebook_update_labels): fix for sigsegv
	in case of show_tabs == NULL
1998-08-18 15:31:49 +00:00
Tim Janik
7f2909bbab restricted the --g*fatal-* arguments to --g-fatal-warnings again. this
Tue Aug 18 03:54:43 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): restricted the --g*fatal-* arguments
        to --g-fatal-warnings again. this option now causes log levels of
        WARNING and CRITICAL to abort().

        * gdk/gdk.c:
        * gdk/gdkdnd.c:
        * gdk/gdkcc.c:
        * gdk/gdkfont.c:
        * gdk/gdkwindow.c:
        * gdk/gdkvisual.c:
        * gtk/gtkwidget.c:
        * gtk/gtktypeutils.c:
        * gtk/gtktree.c:
        * gtk/gtkfontsel.c:
        * gtk/gtkmain.c:
        * gtk/gtkobject.c:
        * gtk/gtkpreview.c:
        * gtk/gtkselection.c:
        * gtk/gtktext.c:
        * gtk/gtktree.c:
        * gtk/gtktreeitem.c:
        did a global search&replace to substitute g_print() calls with
        g_message(). libraries shouldn't use printf(), g_print() or
        g_printerr() at all.
        a bunch of the replacements should probably be wrapped into the
        G{D|T}K_NOTE() macros, so they are special cased for debugging
        purposes in a sane way, avoiding all the nasty #ifdef DEBUG_MY_TEDDY
        things.

        * gdk/gdkrgb.c: left this out currently.

        * gdk/gdkdnd.c: added copyright notice.
1998-08-18 03:59:41 +00:00
Raph Levien
fdc36ada3f It works better when I actually check the file in :) (I.e. this is the
speedup I was trying to check in a minute ago).
1998-08-18 00:34:43 +00:00
Raph Levien
265a137efc More speedups to the 565_d case. 1998-08-18 00:32:34 +00:00
Lars Hamann
17d141c8e5 new class methods: (sort_list) (insert_row) (remove_row)
Tue Aug 18 00:29:13 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkclist.h:
        (struct _GtkCListClass): new class methods:
        (sort_list) (insert_row) (remove_row) (set_cell_contents)

        * gtk/gtkclist.c :
        (cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
        removed and replaced by (set_cell_contents)
        (set_cell_contents): function for class method set_cell_contents
        (real_insert_row): function for class method insert_row
        (real_remoce_row): function for class method remove_row
        (real_sort_list): function for class method sort_list
        (default_compare): fix to avoid problems with cell types != CELL_TEXT

        * gtk/gtkctree.h :
        (gtk_ctree_export_to_gnode): new function to export a ctree as gnode
        (gtk_ctree_node_is_visible): new function to return visibility state
        of a node
		(gtk_ctree_show_stub): new function to set visibility of root stub

        renamed functions :
        (gtk_ctree_insert) -> (gtk_ctree_insert_node)
        (gtk_ctree_remove) -> (gtk_ctree_remove_node)
        (gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
        (gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
        (gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
        (gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
        (gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
        (gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
        (gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
        (gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
        (gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
        (gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
        (gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
        (gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
        (gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
        (gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
        (gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
        (gtk_ctree_sort) -> (gtk_ctree_sort_node)
		(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)

        * gtk/gtkctree.c :
        (cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
        removed and replaced by (set_cell_contents)
        (set_cell_contents): function for class method set_cell_contents
        (real_insert_row): function for class method insert_row
        (real_remoce_row): function for class method remove_row
        (real_sort_list): function for class method sort_list
        (default_compare): removed. CTree now also compares two GtkCTreeRows
        instead of two GtkCTreeNodes.
        (gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
        unlinking the node
        (real_tree_expand) (real_tree_collapse): fix for refcounting of
        node pixmaps
        (set_node_info): call gtk_ctree_node_set_pixtext instead of
        manipulating the row itself

        * gtk/testgtk.c: use renamed functions of GtkCTree.
        new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
        at work.
1998-08-17 23:48:04 +00:00
Tim Janik
47215ba403 removed gtk_input_add_interp.
Mon Aug 17 15:31:38 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c: removed gtk_input_add_interp.

        * gtk/gtkeditable.c (gtk_editable_set_position): fixed bogus "return"
        keyword.
        (gtk_editable_get_event_time): fix default: case.

        * gtk/gtkclist.c (gtk_clist_swap_rows): fixes for lvalue casts.

        * gdk/gdkpixmap.c: made a bunch of unexported functions static.

        * gdk/gdkcolor.c:
        * gdk/gdkvisual.c: include "gdkx.h", since it exports prototypes
        of our functions.

        * various minor compilation cleanups, such as bogus commas in
        enums and similar things.

M
1998-08-17 14:48:51 +00:00
Dietmar Maurer
690a18f032 gdk.c: fixed bug in gdk_input_remove 1998-08-17 08:28:13 +00:00
Tim Janik
d2716f8bfd NULL terminate the arg list to g_strconcat() (thanx raph).
Mon Aug 17 07:47:43 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): NULL terminate the arg list to g_strconcat()
        (thanx raph).
1998-08-17 05:49:13 +00:00
Shawn Amundson
477f14037c release delayed... 1998-08-17 05:24:45 +00:00
CDT 1998 Shawn T. Amundson
42cabcf5fb Released GTK+ 1.1.2
Sun Aug 16 23:14:20 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 1.1.2

        * NEWS: updated for 1.1.2
        * gtk+.spec: version = 1.1.2
1998-08-17 05:04:33 +00:00
Tim Janik
dceb6a11c8 remove the ugly HAVE_LIBGLE test (last time i typed that word!). 1998-08-17 03:54:27 +00:00
Tim Janik
fe63fe5da9 don't call module initializers multiple times. changed --gtk-with-module
Mon Aug 17 05:10:29 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): don't call module initializers multiple
        times. changed --gtk-with-module to --gtk-module at owen's request.
1998-08-17 03:12:10 +00:00
Tim Janik
2b7f8016b5 feature a new commandline option --gtk-with-module=<module> that allows
Mon Aug 17 03:47:55 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): feature a new commandline option
        --gtk-with-module=<module> that allows additional loading and
        initialization of modules (e.g. GLE).
1998-08-17 02:41:42 +00:00
Tim Janik
7b9b0ab0fa version bump to 1.1.1, binary age 0, interface age 0. pass "gmodule" to
Mon Aug 17 01:40:00 1998  Tim Janik  <timj@gtk.org>

        * configure.in: version bump to 1.1.1, binary age 0, interface age 0.
        pass "gmodule" to AM_PATH_GLIB, with that we require libgmodule.so now.

        * gtk/gtkmain.c (gtk_init): since glib's g_return*_if_fail macros log
        with G_LOG_LEVEL_CRITICAL now, i added "--g-fatal-checks",
        "--gdk-fatal-checks" and "--gtk-fatal-checks". that makes up six
        different *-fatal-* arguments now. this needs to be revised and
        compressed to a reasonable amount of arguments.
1998-08-17 00:40:55 +00:00
Tim Janik
31de6ff4e0 fatal warning option is split up now, "--g-fatal-warnings" causes fatal
Sun Aug 16 20:51:59 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): fatal warning option is split up now,
        "--g-fatal-warnings" causes fatal warnings in GLib,
        "--gdk-fatal-warnings" causes fatal warnings in Gdk,
        "--gtk-fatal-warnings" causes fatal warnings in Gtk.

        * gtk/Makefile.am: define G_LOG_DOMAIN for gtk.
        * gdk/Makefile.am: define G_LOG_DOMAIN for gdk.

        * gtk/testgtk.c:
        * gdk/gxid.c:
        we need ugly #undef G_LOG_DOMAIN at the start of these files currently,
        since automake doesn't support per target _CFLAGS yet.

        * configure.in: require GLib 1.1.3.
1998-08-16 21:15:11 +00:00
johne
a4a3c87b3d Forgot Changelog. 1998-08-15 07:32:34 +00:00
John Ellis
db85d915e7 New function to set a callback to test if a node in drag can be dropped
Sat Aug 15 03:19:30 1998  John Ellis  <johne@bellatlantic.net>

        * gtk/gtkctree.[ch] (gtk_ctree_set_drag_compare_func): New function
        to set a callback to test if a node in drag can be dropped onto
        it's currrent location.
        * gtk/gtkctree.c (set_mouse_cursor),(check_cursor): New functions
        to change the pointer when a drag destination is not allowed.
1998-08-15 07:30:01 +00:00
Arturo Espinosa
736bdbeaeb Regenerated gtktypebuiltins.h by hand. The autostuff files really need to be
changed to detect the presence of awk/perl and enable regeneration of the maintainer-only files
inside the gtk subdirectory - Federico
1998-08-14 22:20:47 +00:00
Raph Levien
0e563e0064 Committing a patch by Ray Lehtiniemi to speed up 565_d by 25%. 1998-08-14 04:06:42 +00:00
Owen Taylor
0dece0ba4f Added file README.cvs-commits
* Added file README.cvs-commits
1998-08-13 21:18:43 +00:00
Owen Taylor
814bfe1305 Changed GtkSignalFunc back to () from (void). (again!)
Thu Aug 13 16:47:44 1998  Owen Taylor  <otaylor@redhat.com>

	* Changed GtkSignalFunc back to () from (void). (again!)
1998-08-13 21:00:43 +00:00
Nat Friedman
eff77f116b Fixed the GtkSignalFunc typedef to read "(void)" instead of "()", which
Fixed the GtkSignalFunc typedef to read "(void)" instead of "()", which was
causing it to not build on my irix machine.
1998-08-13 19:03:48 +00:00
Tony Gale
87f9cc2162 One character type fix - tony [gale@gtk.org] 1998-08-13 13:35:11 +00:00
BST 1998 Tony Gale
e8e7692534 - Tidy up of the menufactory example from Andy Kahn <kahn@zk3.dec.com> -
Thu Aug 13 09:11:11 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - Tidy up of the menufactory example from
            Andy Kahn <kahn@zk3.dec.com>
          - New section on Range Widgets from
            David Huggins-Daines <bn711@freenet.carleton.ca>
          - Started a new section on 'Advanced Event and Signal
            Handling' - used an email from Owen.
          - New appendix on Gdk Event Types
          - Added the tictactoe full example code to the
            'Code Examples' appendix
1998-08-13 13:11:14 +00:00
Owen Taylor
7a235648ea More ChangeLog fixups. 1998-08-12 16:53:45 +00:00
Owen Taylor
0346147a0e Removed leftover bits from ChangeLog 1998-08-12 16:50:41 +00:00
Owen Taylor
4af7480f8f Added gdk_text/string_extents() - too calculate all the metrics at once of
Tue Jul 21 12:42:01 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.h gdk/gdkfont.c: Added gdk_text/string_extents() -
	  too calculate all the metrics at once of a string, including
	  things which weren't calculated before.

	* gtk/Makefile.am gtk/gtk.h gtk/gtktearoffmenu.[ch]: New
	  MenuItem type, that when put as the first thing in a
	  menu, makes the menu tearoff. Currently drawn as a
	  dashed line.

	* gtk/gtkmenuitem.h gtk/gtkcheckmenuitem.c: Added a flag
	  "hide_on_activate" to the MenuItem class structure to allow
	  check and radio buttons to be changed with <Space> without
	  hiding the menu.

	* gtk/gtkaccellabel.[ch]: Added new capabilities to set
	  a underline_group and underline_mods for the label -
	  accelerators added in the underline group matching
	  underline_mods will be displayed as an underline character.

	  This doesn't work - Save As needs to be underlined
	  as Save _As.

	* gtk/gtkitemfactory.c:
	  - Create a AccelGroup for each MenuShell we create.
	  - If an '&' appears before a  character 'c' in the path,
	    then make 'c' an accelerator in the menu's accel group,
	    and if the menuitem is menubar <alt>C an accelerator
	    in the itemfactory's accel group.

	* gtk/gtklabel.[ch]: Add support for a pattern arg -
          which is a string. If an '_' appears in this string,
	  the corresponding position in the label is underlined.

          Add gtk_label_parse_uline() convenience function which
	  takes a string with embedded underlines, sets the
	  pattern and label, and returns the accelerator keyval.

	* gtk/gtkmenu.[ch]: Make menus no longer a toplevel widget.
	  Instead, they create a GtkWindow and add themselves
	  to that. (When torn off, another new feature, they
	  create another GtkWindow to hold the torn off menu)

	  New function gtk_menu_set_tearoff_state()

	* gtk/gtkenums.h gtk/gtkmenushell.[ch] gtk/gtkenums.h:
	  Added action signals  for keyboard navigation of menus.

	* gtk/gtkmenushell.c: Key press handler which activates
          bindings for navigation, and accelerators, for handling
	  underline accelerators. Exported functions to select
	  and activate menu items in a menushell.

	* gtk/testgtk.c: Added a new "Item Factory" test which
	  tests GtkItemFactory and the new keyboard navigation
	  of menus.
1998-08-12 16:49:13 +00:00
Tim Janik
5d270c2f45 relookup nodes after external functions have been called. also relookup
Tue Aug 11 20:52:58 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.c (gtk_type_class_init): relookup nodes after
        external functions have been called. also relookup nodes after
        this function has been invoked.
1998-08-11 19:29:36 +00:00
Owen Taylor
ca7082a04a Removed has_cursor, set the cursor beginning of Text when creating the
Tue Aug 11 15:04:52 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.[ch]: Removed has_cursor, set the cursor
	  beginning of Text when creating the Text widget.

	* gtk/testgtk.c: Grab the focus on the text widget so
	  as to test out the above.

Tue Aug 11 14:55:00 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkeditable.c: Reverted part of timj's change of Jul 16.
	  ::changed is a notification signal and should have no default
	  handler. A complete redraw of the Text widget does _not_ need to
	  be done on every text insertion.

Tue Aug 11 13:07:29 1998  Owen Taylor  <otaylor@redhat.com>
	(gtk-abilleira-072198-patch)

	* gtk/gtkwindow.[ch]:
	  Add gtk_window_set_modal() which sets a flag; when
	  set the window does a gtk_grab_add() when the window
	  is shown, and a gtk_grab_remove() when the window
	  is hidden.

	* gtk/gtkfilesel.[ch]: Test if it is running in modal form and in
	  that case will run "Create Dir","Delete File" and "Rename File"
	  dialogs as modal too.

	* gtk/testgtk.c: Added a button with an example of creating modal
	  dialog boxes. Including file selection and color selection standard
	  dialogs.

Tue Aug 11 00:44:47 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkhscrollbar.c gtk/gtkvscrollbar.c gtk/gtktoolbar.c:
	  Removed CAN_FOCUS by default from scrollbars, button
	  children of toolbar. (But not GDK_TOOLBAR_CHILD_WIDGET children)
	  (Scrollbar definitely good change, toolbar bit more questionable)
1998-08-11 19:06:18 +00:00
Tim Janik
b46f089b6f #include fixes (reported by Asbjoern Pettersen).
Tue Aug 11 17:49:33 1998  Tim Janik  <timj@gtk.org>

        * examples/packbox/packbox.c: #include fixes (reported by Asbjoern
        Pettersen).
1998-08-11 18:27:49 +00:00
Owen Taylor
f6abe64479 Applied gtk-pedersen-980727-0; added all logical operations to
Tue Aug 11 00:35:56 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0;
	  added all logical operations to gc->function.
1998-08-11 04:32:14 +00:00
Carsten Haitzler
20661babbf file DUMMY was initially added on branch themes-2. 1998-08-11 03:06:26 +00:00
Carsten Haitzler
1f3c079761 file vline.png was initially added on branch themes-2. 1998-08-11 03:06:24 +00:00
Carsten Haitzler
d7cf38387c file trough.png was initially added on branch themes-2. 1998-08-11 03:06:23 +00:00
Carsten Haitzler
c86201e87e file shadow2.png was initially added on branch themes-2. 1998-08-11 03:06:22 +00:00
Carsten Haitzler
279d363ab2 file shadow1.png was initially added on branch themes-2. 1998-08-11 03:06:21 +00:00
Carsten Haitzler
7d4023e88e file scrollbar_vert1.png was initially added on branch themes-2. 1998-08-11 03:06:20 +00:00
Carsten Haitzler
e2269c4f03 file scrollbar_thumb2.png was initially added on branch themes-2. 1998-08-11 03:06:19 +00:00
Carsten Haitzler
9648fd88b8 file scrollbar_thumb.png was initially added on branch themes-2. 1998-08-11 03:06:18 +00:00
Carsten Haitzler
4ed3aa1cb8 file scrollbar_horiz1.png was initially added on branch themes-2. 1998-08-11 03:06:17 +00:00
Carsten Haitzler
355fbf04b8 file ruler_vert.png was initially added on branch themes-2. 1998-08-11 03:06:16 +00:00
Carsten Haitzler
7f39f122d2 file ruler_horiz.png was initially added on branch themes-2. 1998-08-11 03:06:15 +00:00
Carsten Haitzler
96457c0af4 file progressbar.png was initially added on branch themes-2. 1998-08-11 03:06:13 +00:00
Carsten Haitzler
0b49ebc6f2 file option_menu.png was initially added on branch themes-2. 1998-08-11 03:06:12 +00:00
Carsten Haitzler
b08cdd5c00 file option2.png was initially added on branch themes-2. 1998-08-11 03:06:11 +00:00
Carsten Haitzler
62c2373866 file option1.png was initially added on branch themes-2. 1998-08-11 03:06:10 +00:00
Carsten Haitzler
5baacee740 file hline.png was initially added on branch themes-2. 1998-08-11 03:06:09 +00:00
Carsten Haitzler
ae6489b868 file handle_vert_thumb.png was initially added on branch themes-2. 1998-08-11 03:06:08 +00:00
Carsten Haitzler
bebf5b23fd file gap_top_start.png was initially added on branch themes-2. 1998-08-11 03:06:07 +00:00
Carsten Haitzler
334ad44555 file gap_top_end.png was initially added on branch themes-2. 1998-08-11 03:06:06 +00:00
Carsten Haitzler
bdd1baec35 file gap_top.png was initially added on branch themes-2. 1998-08-11 03:06:05 +00:00
Carsten Haitzler
075c96bc26 file gap_right_start.png was initially added on branch themes-2. 1998-08-11 03:06:04 +00:00
Carsten Haitzler
7f400fd777 file gap_right_end.png was initially added on branch themes-2. 1998-08-11 03:06:03 +00:00
Carsten Haitzler
8e0cab7cba file gap_right.png was initially added on branch themes-2. 1998-08-11 03:06:02 +00:00
Carsten Haitzler
981607d4a0 file gap_left_start.png was initially added on branch themes-2. 1998-08-11 03:06:01 +00:00
Carsten Haitzler
cd14b33a8a file gap_left_end.png was initially added on branch themes-2. 1998-08-11 03:05:59 +00:00
Carsten Haitzler
99fee10fe1 file gap_left.png was initially added on branch themes-2. 1998-08-11 03:05:58 +00:00
Carsten Haitzler
c9122881c8 file gap_bottom_start.png was initially added on branch themes-2. 1998-08-11 03:05:57 +00:00
Carsten Haitzler
0bff0b31cb file gap_bottom_end.png was initially added on branch themes-2. 1998-08-11 03:05:56 +00:00
Carsten Haitzler
78280d9de0 file gap_bottom.png was initially added on branch themes-2. 1998-08-11 03:05:55 +00:00
Carsten Haitzler
2109f32cfa file frame_gap_top_start.png was initially added on branch themes-2. 1998-08-11 03:05:54 +00:00
Carsten Haitzler
90eca42b09 file frame_gap_top_end.png was initially added on branch themes-2. 1998-08-11 03:05:53 +00:00
Carsten Haitzler
2fe4312b12 file frame_gap.png was initially added on branch themes-2. 1998-08-11 03:05:52 +00:00
Carsten Haitzler
9aac2c5a1f file frame2.png was initially added on branch themes-2. 1998-08-11 03:05:51 +00:00
Carsten Haitzler
884770db85 file frame1.png was initially added on branch themes-2. 1998-08-11 03:05:50 +00:00
Carsten Haitzler
0caf9d85a5 file focus.png was initially added on branch themes-2. 1998-08-11 03:05:49 +00:00
Carsten Haitzler
853ec8ef22 file extension_top1.png was initially added on branch themes-2. 1998-08-11 03:05:48 +00:00
Carsten Haitzler
2be1b69313 file extension_right1.png was initially added on branch themes-2. 1998-08-11 03:05:47 +00:00
Carsten Haitzler
59f64fa998 file extension_left1.png was initially added on branch themes-2. 1998-08-11 03:05:46 +00:00
Carsten Haitzler
a77eacb2a1 file extension_bottom1.png was initially added on branch themes-2. 1998-08-11 03:05:45 +00:00
Carsten Haitzler
601f4ecdb4 file entry2.png was initially added on branch themes-2. 1998-08-11 03:05:44 +00:00
Carsten Haitzler
a46bb12afe file entry1.png was initially added on branch themes-2. 1998-08-11 03:05:43 +00:00
Carsten Haitzler
54467af1c1 file curve_bg1.png was initially added on branch themes-2. 1998-08-11 03:05:42 +00:00
Carsten Haitzler
6b678e59fd file check2.png was initially added on branch themes-2. 1998-08-11 03:05:41 +00:00
Carsten Haitzler
e924208067 file check1.png was initially added on branch themes-2. 1998-08-11 03:05:40 +00:00
Carsten Haitzler
4cb1634b8c file button_def.png was initially added on branch themes-2. 1998-08-11 03:05:39 +00:00
Carsten Haitzler
a63c1000a8 file button9.png was initially added on branch themes-2. 1998-08-11 03:05:38 +00:00
Carsten Haitzler
ee791f46b4 file button8.png was initially added on branch themes-2. 1998-08-11 03:05:37 +00:00
Carsten Haitzler
e08f874a51 file button7.png was initially added on branch themes-2. 1998-08-11 03:05:36 +00:00
Carsten Haitzler
0cb81deacc file button6.png was initially added on branch themes-2. 1998-08-11 03:05:35 +00:00
Carsten Haitzler
71828f4669 file button5.png was initially added on branch themes-2. 1998-08-11 03:05:34 +00:00
Carsten Haitzler
c808e8ee75 file button4.png was initially added on branch themes-2. 1998-08-11 03:05:33 +00:00
Carsten Haitzler
41035ec767 file button3.png was initially added on branch themes-2. 1998-08-11 03:05:32 +00:00
Carsten Haitzler
a8eac0c33e file button2.png was initially added on branch themes-2. 1998-08-11 03:05:31 +00:00
Carsten Haitzler
c79aed0e05 file button1.png was initially added on branch themes-2. 1998-08-11 03:05:30 +00:00
Carsten Haitzler
13da0b3878 file brown_bg2.png was initially added on branch themes-2. 1998-08-11 03:05:29 +00:00
Carsten Haitzler
8ef268f205 file brown_bg1.png was initially added on branch themes-2. 1998-08-11 03:05:28 +00:00
Carsten Haitzler
23fbaaadb0 file arrow_up3.png was initially added on branch themes-2. 1998-08-11 03:05:27 +00:00
Carsten Haitzler
fce02ea0be file arrow_up2.png was initially added on branch themes-2. 1998-08-11 03:05:26 +00:00
Carsten Haitzler
2abc008e51 file arrow_up1.png was initially added on branch themes-2. 1998-08-11 03:05:25 +00:00
Carsten Haitzler
d6aa14f9ac file arrow_right3.png was initially added on branch themes-2. 1998-08-11 03:05:24 +00:00
Carsten Haitzler
2e8dae28fd file arrow_right2.png was initially added on branch themes-2. 1998-08-11 03:05:23 +00:00
Carsten Haitzler
19cc4bc416 file arrow_right1.png was initially added on branch themes-2. 1998-08-11 03:05:22 +00:00
Carsten Haitzler
708e45dd43 file arrow_left3.png was initially added on branch themes-2. 1998-08-11 03:05:20 +00:00
Carsten Haitzler
965e34a43c file arrow_left2.png was initially added on branch themes-2. 1998-08-11 03:05:19 +00:00
Carsten Haitzler
874b1d06e7 file arrow_left1.png was initially added on branch themes-2. 1998-08-11 03:05:18 +00:00
Carsten Haitzler
a698395064 file arrow_down3.png was initially added on branch themes-2. 1998-08-11 03:05:17 +00:00
Carsten Haitzler
e53b16ed74 file arrow_down2.png was initially added on branch themes-2. 1998-08-11 03:05:16 +00:00
Carsten Haitzler
fe7211b9c2 file arrow_down1.png was initially added on branch themes-2. 1998-08-11 03:05:15 +00:00
Lars Hamann
3184f21f0a Fix for resize bug. Call gtk_widget_size_allocate instead of
Sun Aug  9 23:31:59 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call
        gtk_widget_size_allocate instead of gtk_widget_queue_resize
        if the visibility state of a scrollbar changes.
1998-08-10 17:56:43 +00:00
Tim Janik
d86059ea5a fixed an #include statement (reported by Eric Kidd).
Mon Aug 10 12:49:54 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkhbbox.h: fixed an #include statement (reported by Eric Kidd).
1998-08-10 10:52:08 +00:00
Shawn Amundson
c355f84a19 file gtk_vbox.pod was initially added on branch gtk-1-0. 1998-08-07 03:12:10 +00:00
Shawn Amundson
25884cfbf5 file gtk_hbox.pod was initially added on branch gtk-1-0. 1998-08-07 03:12:09 +00:00
Shawn Amundson
123d1f2673 file gtk.pod was initially added on branch gtk-1-0. 1998-08-07 03:12:06 +00:00
Tim Janik
c493091772 hm, someone changed an enum and didn't update auto-files... 1998-08-07 02:54:23 +00:00
Stefan Jeske
b7afebffed Renamed my_merge and my_mergesort to gtk_clist_merge and
Thu Aug  6 22:37:21 1998  Stefan Jeske  <stefan@gtk.org>

	* gtk/gtkclist.c: Renamed my_merge and my_mergesort to
 	gtk_clist_merge and gtk_clist_mergesort. :)
1998-08-06 20:49:24 +00:00
Raph Levien
2a98c4a504 Fixed some minor comment typos and added myself to AUTHORS in gtk+. 1998-08-06 04:09:40 +00:00
Martin Baulig
123709106e Renamed merge' -> my_merge' and mergesort' -> my_mergesort'.
1998-08-06  Martin Baulig  <martin@home-of-linux.org>

	* gtk/gtkclist.c: Renamed `merge' -> `my_merge' and
	`mergesort' -> `my_mergesort'.
1998-08-06 02:20:47 +00:00
Stefan Jeske
c8df83a2fe new enum GtkSortType.
Wed Aug  5 21:12:37 1998  Stefan Jeske  <stefan@gtk.org>

	* gtk/gtkenums.h: new enum GtkSortType.

	* gtk/gtkclist.h:
	* gtk/gtkclist.c:
	Added sorting capabilities to GtkCList. New APIs :
	gtk_clist_set_compare_func, gtk_clist_set_sort_column,
	gtk_clist_set_sort_type, gtk_clist_sort, gtk_clist_set_auto_sort.
	New internal functions : default_compare, merge, mergesort.

	(gtk_clist_append): This is just a wrapper for gtk_clist_insert now.

	(gtk_clist_insert): Modified to handle gtk_clist_append and the
	auto sort flag. Changed the return value from void to gint to
	return the row number where the element was actually inserted.

	(gtk_clist_swap_rows): Return immediately if auto sort flag is set.

	* gtk/gtkctree.h:
	* gtk/gtkctree.c:
	Removed the auto_sort flag, replaced ctree->node_compare with
	clist->compare all over the place, modified default_compare to
	match clist's needs. Removed APIs : gtk_ctree_set_auto_sort,
	gtk_ctree_set_compare_func. Removed GtkCTreeCompareFunc typedef.

	* gtk/testgtk.c: Modified clist/ctree samples to demonstrate
	sorting. The lists can be sorted by a column by clicking the
	corresponding title button.
1998-08-05 20:02:32 +00:00
PDT 1998 Shawn T. Amundson
e48d4e7159 Released GTK+ 1.1.1
Tue Aug  4 22:02:49 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 1.1.1
1998-08-05 05:04:30 +00:00
Lars Hamann
e3b8e18524 changed to return a gboolean (gtk_ctree_insert_gnode): new function for
Wed Aug  5 02:57:20 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkctree.h:
        * gtk/gtkctree.c:
        (gtk_ctree_find): changed to return a gboolean
        (gtk_ctree_insert_gnode): new function for recursive insertion of a
        GNode tree.
        (gtk_ctree_real_select_recursive): fix for extended selection
        (gtk_ctree_sort_recursive): in case node == NULL, sort root nodes too.
        (gtk_ctree_set_node_info) (set_node_info): few fixes for expanded flag
1998-08-05 02:11:32 +00:00
Tim Janik
c4b3014e09 version bump to 1.1.1, binary age 0, interface age 0. GLib version 1.1.1
Tue Aug  4 16:18:26 1998  Tim Janik  <timj@gtk.org>

        * configure.in: version bump to 1.1.1, binary age 0, interface age 0.
        GLib version 1.1.1 is now required at minimum.

        * docs/Makefile.am: added gtk_tut_fr.sgml to EXTRA_DIST (french version
        of the Gtk+ tutorial, contributed by Eric Jacoboni <jaco@dotcom.fr>.
1998-08-04 23:44:27 +00:00
Owen Taylor
ed3c12aa5f Added missing else 1998-08-04 15:07:55 +00:00
Owen Taylor
f7a5303612 Undraw the cursor before (possibly) deleting the cursor's text property.
Mon Aug  3 19:24:48 1998  Owen Taylor  <otaylor@redhat.com>

 	* gtk/gtktext.c (gtk_text_forward_delete): Undraw the
 	  cursor before (possibly) deleting the cursor's text
 	  property.

 	* gtk/gtktext.c (correct_cache_delete): More attempts
 	  to clean the line-start cache up after inserting
 	  a property. Among other things, make sure to
 	  fix up text->current_line, since it is used to
 	  refetch the changed lines.
1998-08-04 14:56:44 +00:00
Owen Taylor
790a6ae5b2 Empty rows/columns of the table should not have been marked as being able
Tue Aug  4 10:59:19 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktable.[ch]: Empty rows/columns of the table
        should not have been marked as being able to shrink.
	(Fixes prorlem with shrinking scrollbarless GIMP canvases)
1998-08-04 14:55:04 +00:00
Michael Fulbright
fb8cd9520f Changed a %postun to a %preun, should get rid of errors when uninstalling
Dr Mike <msf@redhat.com>
1998-08-04 14:34:23 +00:00
Federico Mena Quintero
f8a40e214a New public function to find a row by its data pointer using a custom
1998-08-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkctree.c (gtk_ctree_find_by_row_data_custom): New public
	function to find a row by its data pointer using a custom
	comparison function.
1998-08-03 19:50:23 +00:00
Vincent Renardias
08d246be89 Mon, 3 Aug 1998 20:08:46 +0200 [Vincent]
* French version of the Gtk+ tutorial contributed by Eric Jacoboni <jaco@dotcom.fr>
1998-08-03 18:05:06 +00:00
George Lebl
2a1cd0c42e don't you hate it when you apply the wrong patch and discover it only
after applying it and committing
-George
1998-08-03 06:22:41 +00:00
George Lebl
fba2b02b10 draw the buttons during a "draw" as well, this fixes a bug when the whole
Sun Aug 02 22:58:00 1998  George Lebl  <jirka@5z.com>

        * gtk/gtkclist.c: draw the buttons during a "draw" as well,
          this fixes a bug when the whole widget is made non-sesitive
          the buttons weren't redrawn
1998-08-03 05:58:49 +00:00
Lars Hamann
c3c5e72151 reset drag_pos after abort removed a few unneeded lines fixed compiler
Mon Aug  3 00:04:09 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (abort_column_resize): reset drag_pos after abort
	* gtk/gtkclist.c (gtk_clist_key_press): removed a few unneeded lines
	* gtk/gtkcombo.c (gtk_combo_list_key_press): fixed compiler warning
1998-08-02 22:18:20 +00:00
Owen Taylor
d597937560 Change window_private->parent pointer when reparenting.
Sun Aug  2 03:08:07 1998  Owen Taylor  <otaylor@gtk.org>

        * gdk/gdkwindow.c (gdk_window_reparent): Change
          window_private->parent pointer when reparenting.
1998-08-02 07:15:00 +00:00
Raph Levien
7ba4ba0d2f Made some config changes to make it work better both as a standalone
module (i.e. with Gtk 1.0) and as a module under Gtk 1.1+, i.e. harmonized
with the separate GdkRgb release.
1998-08-02 05:39:47 +00:00
Lars Hamann
8ad52d1024 Few fixes for column resize. Store resize column in clist->drag_pos.
Fri Jul 31 20:45:07 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkclist.c (gtk_clist_button_press) (gtk_clist_motion)
        (gtk_clist_button_release) (new_column_width): Few fixes for
        column resize. Store resize column in clist->drag_pos.

Thu Jul 31 15:18:36 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkctree.h
        * gtk/gtkctree.c
        * gtk/testgtk.c : New typedef GtkCTreeNode, changed all GList *node
        to GtkCTreeNode *node.

        * gtk/gtklist.h : added extended selection mode and auto scrolling.
        (struct _GtkList): removed unneeded variables timer, button,
        selection_start_pos, selection_end_pos, scroll_direction, have_grab.
        Added new variables undo_selection, undo_unselection, last_focus_child,
        undo_focus_child, htimer, vtimer, anchor, drag_pos, anchor_state,
        drag_selection, add_mode.

        New functions :
        (gtk_list_extend_selection), (gtk_list_start_selection),
        (gtk_list_end_selection), (gtk_list_select_all),
        (gtk_list_unselect_all), (gtk_list_scroll_horizontal),
        (gtk_list_scroll_vertical), (gtk_list_toggle_add_mode),
        (gtk_list_toggle_focus_row), (gtk_list_toggle_row),
        (gtk_list_undo_selection), (gtk_list_end_drag_selection)

        * gtk/gtklist.c :
        (gtk_list_enter_notify): removed, because auto scrolling now works
        with gtk_list_motion_notify

        New functions, needed for auto scrolling :
        (gtk_list_motion_notify) (gtk_list_move_focus_child)

        New functions for extended selection support :
        (gtk_list_set_anchor), (gtk_list_fake_unselect_all),
        (gtk_list_fake_toggle_row), (gtk_list_update_extended_selection),
        (gtk_list_focus_lost)

        (gtk_list_set_focus_child): modified gtk_container_set_focus_child
        function to support auto scrolling, and avoid out-of-sync errors in
        case auf GTK_SELECTION_BROWSE
        (gtk_list_focus): modified gtk_container_focus function to avoid out
        off sync errors in case auf GTK_SELECTION_EXTENDED

        * gtk/gtklistitem.h
        * gtk/gtklistitem.c :
        New signal functions for key binding support :
        (toggle_focus_row), (select_all), (list_item), (unselect_all)
        (list_item), (undo_selection), (start_selection), (end_selection)
        (extend_selection), (scroll_horizontal), (scroll_vertical),
        (toggle_add_mode)
        (gtk_list_item_realize): added  GDK_KEY_PRESS_MASK |
        GDK_KEY_RELEASE_MASK
        (gtk_list_item_draw_focus): modify gc if parent has add_mode set.

        * gtk/gtkcombo.c :
        (gtk_combo_popup_button_press):  grab pointer for combo->list
        (gtk_combo_button_release): ungrab only if combo->popwin HAS_GRAB
        (gtk_combo_list_key_press): take care of which child HAS_GRAB
        (gtk_comb_init): don't connect combo->button with button_release_event
1998-07-31 20:48:06 +00:00
Carsten Haitzler
cf7b958af5 file pixmap_theme_main.c was initially added on branch themes-2. 1998-07-31 16:47:50 +00:00
Carsten Haitzler
1616d67d81 file pixmap_theme_draw.c was initially added on branch themes-2. 1998-07-31 16:47:49 +00:00
Carsten Haitzler
c312e81604 file pixmap_theme.h was initially added on branch themes-2. 1998-07-31 16:20:32 +00:00
Carsten Haitzler
bd745719cf file b_full.png was initially added on branch themes-2. 1998-07-30 18:53:11 +00:00
Carsten Haitzler
e884fc143d file b3.png was initially added on branch themes-2. 1998-07-30 18:53:10 +00:00
Carsten Haitzler
0e6bf066c6 file b2.png was initially added on branch themes-2. 1998-07-30 18:53:09 +00:00
Carsten Haitzler
0d1978edbf file b1.png was initially added on branch themes-2. 1998-07-30 18:53:08 +00:00
Carsten Haitzler
ddabef3c49 file b0.png was initially added on branch themes-2. 1998-07-30 18:53:07 +00:00
Carsten Haitzler
dcc96c09bd file _rulev.png was initially added on branch themes-2. 1998-07-30 18:53:06 +00:00
Carsten Haitzler
032196b9dd file _ruleh.png was initially added on branch themes-2. 1998-07-30 18:53:04 +00:00
Carsten Haitzler
f6665c9c0a file _prog_vgrad.png was initially added on branch themes-2. 1998-07-30 18:53:03 +00:00
Carsten Haitzler
e6f7751958 file _option2.png was initially added on branch themes-2. 1998-07-30 18:53:02 +00:00
Carsten Haitzler
93ab7875e4 file _option1.png was initially added on branch themes-2. 1998-07-30 18:53:01 +00:00
Carsten Haitzler
b7ab832906 file _focus.png was initially added on branch themes-2. 1998-07-30 18:53:00 +00:00
Carsten Haitzler
b5658eeaef file _check2.png was initially added on branch themes-2. 1998-07-30 18:52:59 +00:00
Carsten Haitzler
cc7f7a2eb5 file _check1.png was initially added on branch themes-2. 1998-07-30 18:52:58 +00:00
Carsten Haitzler
103739f248 file _box_out_dgrad6.png was initially added on branch themes-2. 1998-07-30 18:52:57 +00:00
Carsten Haitzler
3f314b2cd8 file _box_out_dgrad5.png was initially added on branch themes-2. 1998-07-30 18:52:56 +00:00
Carsten Haitzler
fe480d99b4 file _box_out_dgrad4.png was initially added on branch themes-2. 1998-07-30 18:52:55 +00:00
Carsten Haitzler
965d225c9a file _box_out_dgrad3.png was initially added on branch themes-2. 1998-07-30 18:52:54 +00:00
Carsten Haitzler
82765cc166 file _box_out_dgrad2.png was initially added on branch themes-2. 1998-07-30 18:52:53 +00:00
Carsten Haitzler
7329d5cb8c file _box_out_dgrad1.png was initially added on branch themes-2. 1998-07-30 18:52:52 +00:00
Carsten Haitzler
44097af086 file _arrow_u3.png was initially added on branch themes-2. 1998-07-30 18:52:51 +00:00
Carsten Haitzler
527bf45430 file _arrow_u2.png was initially added on branch themes-2. 1998-07-30 18:52:50 +00:00
Carsten Haitzler
5f6e095722 file _arrow_u1.png was initially added on branch themes-2. 1998-07-30 18:52:49 +00:00
Carsten Haitzler
919c335569 file _arrow_r3.png was initially added on branch themes-2. 1998-07-30 18:52:48 +00:00
Carsten Haitzler
2720bec633 file _arrow_r2.png was initially added on branch themes-2. 1998-07-30 18:52:47 +00:00
Carsten Haitzler
13ce27bfef file _arrow_r1.png was initially added on branch themes-2. 1998-07-30 18:52:46 +00:00
Carsten Haitzler
d1812f696e file _arrow_l3.png was initially added on branch themes-2. 1998-07-30 18:52:45 +00:00
Carsten Haitzler
03def75b3f file _arrow_l2.png was initially added on branch themes-2. 1998-07-30 18:52:44 +00:00
Carsten Haitzler
63ff245b44 file _arrow_l1.png was initially added on branch themes-2. 1998-07-30 18:52:43 +00:00
Carsten Haitzler
5622a388fa file _arrow_d3.png was initially added on branch themes-2. 1998-07-30 18:52:42 +00:00
Carsten Haitzler
23aec8934e file _arrow_d2.png was initially added on branch themes-2. 1998-07-30 18:52:41 +00:00
Carsten Haitzler
d0ccf396e7 file _arrow_d1.png was initially added on branch themes-2. 1998-07-30 18:52:40 +00:00
Carsten Haitzler
4ed4f66911 file win95_theme_main.c was initially added on branch themes-2. 1998-07-30 18:52:38 +00:00
Carsten Haitzler
e2aace2ade file win95_theme_draw.c was initially added on branch themes-2. 1998-07-30 18:52:37 +00:00
Carsten Haitzler
5fa74836b8 file win95_theme.h was initially added on branch themes-2. 1998-07-30 18:52:36 +00:00
Carsten Haitzler
24de292011 file motif_theme_main.c was initially added on branch themes-2. 1998-07-30 18:52:32 +00:00
Carsten Haitzler
9cf57615e6 file motif_theme_draw.c was initially added on branch themes-2. 1998-07-30 18:52:31 +00:00
Carsten Haitzler
8857d094a8 file motif_theme.h was initially added on branch themes-2. 1998-07-30 18:52:30 +00:00
Carsten Haitzler
43916bf90f file configure.in was initially added on branch themes-2. 1998-07-30 18:52:29 +00:00
Carsten Haitzler
551b25196f file autogen.sh was initially added on branch themes-2. 1998-07-30 18:52:28 +00:00
Carsten Haitzler
0d45a265fa file Makefile.in was initially added on branch themes-2. 1998-07-30 18:52:27 +00:00
Carsten Haitzler
d0b6c5e10f file Changelog was initially added on branch themes-2. 1998-07-30 18:52:26 +00:00
Lars Hamann
a9912f2e78 removed a few unneeded lines
* gtk/gtkclist.c (gtk_clist_motion): removed a few unneeded lines
1998-07-30 10:52:35 +00:00
Lars Hamann
cfd59821e7 column resize now works with horizontal autoscrolling, GtkCTree's 'reorder
* gtk/gtkclist.c (gtk_clist_motion): column resize now works with
  horizontal autoscrolling, GtkCTree's 'reorder ability' now works
  with horizontal and vertical autoscrolling.
1998-07-29 21:46:39 +00:00
CDT 1998 Shawn T. Amundson
e93751bbbd new directory new file, initial gtk_button man page
Tue Jul 28 20:32:03 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * gtk/docs/man: new directory
        * gtk/docs/man/gtk_button.pod: new file, initial gtk_button man page
1998-07-29 01:33:51 +00:00
Lars Hamann
7b5763fdd0 small fix for border drawing bug
* gtk/gtknotebook.c (gtk_notebook_paint): small fix for border drawing
  bug
1998-07-28 21:43:04 +00:00
Carsten Haitzler
0e7cab347a file th_main.c was initially added on branch themes-2. 1998-07-28 20:39:26 +00:00
Carsten Haitzler
8ad3303188 file th_draw.c was initially added on branch themes-2. 1998-07-28 20:39:25 +00:00
Carsten Haitzler
7b07769355 file th.h was initially added on branch themes-2. 1998-07-28 20:39:24 +00:00
Carsten Haitzler
dc69fc120d file COMPILE was initially added on branch themes-2. 1998-07-28 20:39:23 +00:00
CDT 1998 Shawn T. Amundson
71c52a71f4 new format for GDK documentation. Eventually plan to remove gdk.texi, but
Tue Jul 28 00:15:28 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * docs/gdk.sgml: new format for GDK documentation.  Eventually
	  plan to remove gdk.texi, but not quite yet.  Just getting
	  started.
1998-07-28 05:19:38 +00:00
BST 1998 Tony Gale
49fdaf4fff GtkTree section from David Huggins-Daines <bn711@freenet.carleton.ca>, add
Mon Jul 27 09:18:13 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml: GtkTree section from
          David Huggins-Daines <bn711@freenet.carleton.ca>,
          add a GtkText widget example
        * examples/text/* example/tree/* : new examples for the
          GtkTree and GtkText widgets
        * docs/gtk_tut.sgml: added an appendix to hold complete code                          examples that aren't in a full form elsewhere in the
          tutorial (e.g. scribble)
1998-07-27 08:24:38 +00:00
BST 1998 Tony Gale
8864534892 GtkTree section from David Huggins-Daines <bn711@freenet.carleton.ca>, add
Mon Jul 27 09:18:13 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml: GtkTree section from
          David Huggins-Daines <bn711@freenet.carleton.ca>,
          add a GtkText widget example
        * examples/text/* example/tree/* : new examples for the
          GtkTree and GtkText widgets
1998-07-27 08:21:40 +00:00
CDT 1998 Shawn T. Amundson
718259dcc2 Released GTK+ 1.1.0
Mon Jul 27 00:46:21 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 1.1.0
1998-07-27 06:59:50 +00:00
Tim Janik
31055c2981 fixed EXTRA_DIST sections 1998-07-27 02:51:48 +00:00
Tim Janik
f111f4b58e revamped the definitions for 1-1-0, so that all the new API stuff is
Mon Jul 27 04:18:26 1998  Tim Janik  <timj@gtk.org>

        * gtkfeatures.h.in: revamped the definitions for 1-1-0, so that all
        the new API stuff is reflected in one #define GTK_HAVE_FEATURES_1_1_0.
1998-07-27 02:24:39 +00:00
Tim Janik
fc7c7f466f fixup, so that enum values are looked up.
Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
        values are looked up.

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
        gtk_type_enums_find_value to lookup enum values.

        * gtk/gtkctree.h:
        * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
        GtkCTreeExpansionType. fixed signal creations to pass the enum
        types not just the base type GTK_TYPE_ENUM.

        * gtk/gtkclist.h:
        * gtk/gtkclist.c: fixed signal creations to pass the real enum
        types not just the base type GTK_TYPE_ENUM.
1998-07-27 01:50:16 +00:00
Lars Hamann
656061cb2b little fix to avoid warnings
* gtk/gtkclist.c gtk/gtkctree.c : little fix to avoid warnings
1998-07-26 15:54:41 +00:00
Stefan Jeske
a7f95d982f --- 1998-07-26 14:46:52 +00:00
Stefan Jeske
7170996088 Began cleanup, e.g. use gtk_widget_show_all instead of many
gtk_widget_show's. Completely rewrote the button box sample
(only one window now). Removed "miscellaneous" button.
1998-07-26 14:45:40 +00:00
Stefan Jeske
fb430a8dc5 Fixed wrong allocation for GTK_BUTTONBOX_END.
(allocation->x  =>  allocation->y)
1998-07-26 14:44:36 +00:00
Lars Hamann
65044acefd fix for pointer grab
* gtk/gtkclist.c (gtk_clist_button_press) (gtk_clist_button_release)
  (abort_column_resize) (gtk_clist_key_press): fix for pointer grab

* gtk/gtkctree.c (real_tree_select): added check to avoid double
  selected rows
  (gtk_ctree_button_press)
  (gtk_ctree_button_release): fix for pointer grab
1998-07-26 13:12:07 +00:00
Damon Chaplin
72415bc1a7 *** empty log message *** 1998-07-25 12:17:45 +00:00
Damon Chaplin
3f8175bb20 Fixed 2 bugs in font selection - initialising array sizes and checking that
a bitmapped font can be scaled.
1998-07-25 12:09:38 +00:00
Tim Janik
5c86382961 minor adjustments. 1998-07-25 04:07:04 +00:00
Lars Hamann
165fab7605 test for node != NULL (gtk_ctree_is_visible) (gtk_ctree_realize)
* gtk/gtkctree.c (gtk_ctree_sort_recursive)
  (gtk_ctree_sort_recursive): test for node != NULL
  (gtk_ctree_is_visible) (gtk_ctree_realize) (gtk_ctree_unrealize)
  (gtk_ctree_last) : added sanity checks
* gtk/gtkclist.c (gtk_clist_button_press): removed "no_focus_row"
1998-07-25 01:10:58 +00:00
Lars Hamann
f970ecf821 mini code cleanup
* gtk/gtkclist.c (toggle_focus_row): mini code cleanup
1998-07-24 16:22:53 +00:00
Paolo Molaro
7b1a4b5eb5 Fri, 24 Jul 1998 10:56:22 +0200 Paolo Molaro <lupus@debian.org>
* gtk/gtkfeatures.h.in: added GTK_HAVE_ENUM_VALUE_STRUCT.
1998-07-24 08:53:59 +00:00
Tim Janik
8c56db61e3 introduce testbindings on C-1 for buttons, to check out binding
Thu Jul 23 00:11:39 1998  Tim Janik  <timj@gtk.org>

        * gtk/testgtkrc: introduce testbindings on C-1 for buttons,
        to check out binding priorities. someone should really write
        gtkrc-mode for emacs.

        * gtk/gtkwidget.c (gtk_widget_class_init): remove ugly bindings test.
        * gtk/testgtk.c (main): and move it here ;). this test says something
        on release of C-9. (this works only if the mouse pointer is on a
        spinbutton and there is no focus widget).

        * gtk/gtkrc.h:
        * gtk/gtkrc.c:
        export gtk_rc_parse_color, gtk_rc_parse_state and a new function
        gtk_rc_parse_priority to parse path priority types.
        export rc tokens.
        feature binding parsing.

Wed Jul 22 23:41:17 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbindings.h:
        * gtk/gtkbindings.c: new function gtk_binding_parse_binding() to
        feature binding parsing in rc files.
        * gtk/gtkbindings.c (gtk_binding_set_new): bug fix.
        * gtk/gtkbindings.c (gtk_binding_pattern_compare): bug fix, we used to
        order the bindings with lowest priority first.
1998-07-22 22:29:10 +00:00
Manish Singh
3ea4f70fa6 actually builds and runs properly on big endian machines now, because we
* gdk/gdkrgb.c: actually builds and runs properly on big endian machines
now, because we #include config.h. Also fixed up a compile error in the
WORDS_BIGENDIAN case in gdk_rgb_convert_565_gray. I made the fix by looking
at patterns in the other code; Raph can you verify this?

* gdk/gdkthreads.c: #include <unistd.h> to quell compiler warnings

-Yosh
1998-07-22 22:22:05 +00:00
Lars Hamann
aa1bf58196 few fixes for gtk_signal_emits
* gtk/gtkctree.c (tree_select/unselect) (tree_expand/collapse)
  (tree_toggle_expansion) (real_select/unselect_row)
  (gtk_ctree_select/unselect) : few fixes for gtk_signal_emits
1998-07-22 21:13:48 +00:00
Tim Janik
59a36172d8 make auto-files update 1998-07-22 19:23:51 +00:00
Owen Taylor
b4c814e272 We free things from the text property MemChunk, so it needs to be
Wed Jul 15 17:44:47 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (new_text_property): We free things from
	the text property MemChunk, so it needs to be G_ALLOC_AND_FREE.

	* Fix up line start cache when splitting a property
	during an insert.
1998-07-21 19:31:38 +00:00
Elliot Lee
8cf49d7c10 genmarshal.pl: Handle complex types, and functions with a return value but
genmarshal.pl: Handle complex types, and functions with a return value but
	       no parameters.
genmarshal.pl gtkmarshal.* gtkwidget.c: Remove support for GDK_EVENT and
				        STYLE parameter types.
1998-07-21 18:49:53 +00:00
Elliot Lee
5f8748c53e Marshallers for C_CALLBACK parameters now pass "func, func_data," instead
Marshallers for C_CALLBACK parameters now pass "func, func_data," instead
of "func,".
1998-07-21 16:06:00 +00:00
Raph Levien
d154bfafd9 More minor config fixes. 1998-07-21 05:53:44 +00:00
Raph Levien
4667d36ccd Fixed minor config bug. 1998-07-21 05:20:29 +00:00
Elliot Lee
e53fd25b04 missed this 1998-07-21 05:01:37 +00:00
Stefan Jeske
dbfe3d3967 Fixed wrong size of activity indicator. It is settable now as a fraction
Tue Jul 21 06:32:43 1998  Stefan Jeske  <stefan@gtk.org>

	* gtk/gtkprogressbar.{c,h} gtk/testgtk.c: Fixed wrong size of
 	activity indicator. It is settable now as a fraction of the
	total width/height using gtk_progress_bar_set_activity_blocks.
	Renamed gtk_progress_bar_set_number_of_blocks to
	gtk_progress_bar_set_discrete_blocks.
1998-07-21 04:49:01 +00:00
Elliot Lee
7c30f2a15f Use common marshalling routines instead of having widget-private ones. It
Use common marshalling routines instead of having widget-private ones.
It compiles & links.

testgtk segfaults. I'm convinced that is Somebody Else's Problem
(marshalling routine gets func_data=0x0 and blithely passes it on) but the
fact that it happens now & not before makes me wrong :-)
1998-07-21 04:13:42 +00:00
Lars Hamann
cebb7bfc9f new functions, recursive process tree to specified depth
* gtk/gtkctree.c (gtk_ctree_post_recursive_to_depth)
  (gtk_ctree_pre_recursive_to_depth): new functions, recursive process
  tree to specified depth
  (gtk_ctree_expand_to_depth): expand tree to specified depth
  (gtk_ctree_collapse_to_depth): collapse all nodes with level >= depth
1998-07-20 19:45:45 +00:00
Lars Hamann
bfa2ec274b fix for vertical scrolling in case of GTK_CLIST_ADD_MOD changed pixmap
* gtk/gtkclist.c (scroll_vertical): fix for vertical scrolling in case
  of GTK_CLIST_ADD_MOD
* gtk/testgtk.c (add1000_clist): changed pixmap
1998-07-19 22:42:21 +00:00
Tim Janik
c1c8caa28c export gtk_binary_age and gtk_interface_age.
Sat Jul 18 22:59:04 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.h:
        * gtk/gtkmain.c: export gtk_binary_age and gtk_interface_age.

        * gtk/gtktypeutils.h:
        * gtk/gtkitemfactory.h: remove "void" from prototypes again.

Sat Jul 18 00:54:01 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtknotebook.c (gtk_notebook_set_child_arg): added support for
        CHILD_ARG_MENU_LABEL, CHILD_ARG_TAB_LABEL
        (gtk_notebook_get_child_arg): added support for CHILD_ARG_MENU_LABEL,
        CHILD_ARG_POSITION
        (gtk_notebook_reorder_child): new funktion to change position of a
        notebook page
        (gtk_notebook_draw_arrow): draw left/right arrow with
        GTK_SHADOW_ETCHED_IN if focus_tab is first/last tab.

        * gtk/gtkstyle.c (gtk_default_draw_arrow):
        added GTK_SHADOW_ETCHED_IN/OUT
1998-07-19 19:09:27 +00:00
Stefan Jeske
b43c45571d Introduced generic GtkProgress widget. Derived GtkProgressBar from
Sun Jul 19 12:19:16 1998  Stefan Jeske  <stefan@gtk.org>

	* gtk/gtkprogress.c gtk/gtkprogress.h gtk/gtkprogressbar.c
	  gtk/gtkprogressbar.h gtk/Makefile.am gtk/gtk.h gtk/testgtk.c:
	Introduced generic GtkProgress widget. Derived GtkProgressBar from
	GtkProgress. Made GtkProgressBar much more flexible (see testgtk).
1998-07-19 10:35:39 +00:00
Manish Singh
c25b3aad1e explicitly specify void in prototype
-Yosh
1998-07-18 06:50:57 +00:00
Lars Hamann
15201b48c9 Changelog fix 1998-07-17 16:07:08 +00:00
Lars Hamann
c0ce3a6107 fix to avoid flicker at begin/end of list
* gtk/gtkclist.c (scroll_vertical): fix to avoid flicker at begin/end
  of list
1998-07-17 16:05:42 +00:00
Owen Taylor
656eaa93bf If xid_ht hasn't been created yet, don't do the lookup.
Thu Jul 16 20:11:36 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkxid.c (gdk_xid_table_lookup): If xid_ht
	hasn't been created yet, don't do the lookup.
1998-07-17 14:48:35 +00:00
Tim Janik
2bc6d4548f sropped the approach of copying all signal specific data into a
Fri Jul 17 05:30:47 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_handlers_run) (gtk_signal_real_emit):
        sropped the approach of copying all signal specific data into a
        GtkHandlerInfo structure. we rather keep the signal data on the stack
        in gtk_signal_real_emit and pass that over to gtk_handlers_run. this
        avoids multiple lookups of the signal pointer and works savely together
        with destroy notifiers of handlers.

        * gtk/gtkentry.c (gtk_entry_key_press): care for the posssibility that
        someone destroys the entry on the ::activate signal.
1998-07-17 06:10:02 +00:00
Tim Janik
ca7b223bf0 care for the posssibility that someone destroys the entry on the
Fri Jul 17 05:30:47 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkentry.c (gtk_entry_key_press): care for the posssibility that
        someone destroys the entry on the ::activate signal.
1998-07-17 03:56:13 +00:00
Tim Janik
ca17982ed2 use misc->xpad for x calculation instead of ypad (typo). (gtk_arrow_set):
Fri Jul 17 01:21:32 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkarrow.c (gtk_arrow_expose): use misc->xpad for x calculation
        instead of ypad (typo).
        (gtk_arrow_set): clear all of the arrow's allocation (left a 1 pixel
        border around the allocation).
        (gtk_arrow_init): the static requisition needs to be setup in this
        function rather than gtk_widget_new(), so arrow creation works without
        the gtk_arrow_new() constructing.
        (gtk_arrow_expose): return TRUE, since we actually handled the expose.

        * gtk/gtkwidget.c (gtk_widget_real_size_request): provide a default
        implementation for GtkWidget::size_request, so size requisition for
        simple statically sized widgets like GtkArrow works.
1998-07-17 00:03:35 +00:00
Manish Singh
699dcbab17 Fix slight screwup
-Yosh
1998-07-16 23:05:22 +00:00
Manish Singh
5886cc2cdf minor changes to gtk-config: --cflags doesn't prepend -I@libdir@/glib/include
anymore, since glib-config handles it; --libs strips out redundant -L<path>'s
properly (there was code in there to do it before, but it didn't work)

-Yosh
1998-07-16 21:24:52 +00:00
Tim Janik
81517a6d4c signdness corrections all ove the place. implementation of object
Thu Jul 16 18:24:41 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtknotebook.h:
        * gtk/gtknotebook.c: signdness corrections all ove the place.
        implementation of object arguments: GtkNotebook::enable_popup,
        GtkNotebook::tab_pos, GtkNotebook::tab_border, GtkNotebook::show_tabs,
        GtkNotebook::show_border, GtkNotebook::scrollable and GtkNotebook::page.
        begun implementation of child args, we have GtkNotebook::tab_label, but
        GtkNotebook::menu_label and GtkNotebook::position still lack the
        implementation.
        (gtk_notebook_remove_page):
        (gtk_notebook_current_page): allow negative indices (-1) as alias for
        the last page.

        * gtk/gtkentry.h:
        * gtk/gtkentry.c: GtkType and macro fixups. implementation of object
        arguments GtkEntry::max_length and GtkEntry::visibility.
        (gtk_entry_adjust_scroll): queue a redraw.

        * gtk/gtkeditable.h:
        * gtk/gtkeditable.c: GtkType und macro fixups. implementation of
        object arguments GtkEditable::text_position and GtkEditable::editable.
        new (action) signal GtkEditable::set_editable.
        provide a default handler for GtkEditable::changed that queues a redraw.

        * gtk/gtktext.h:
        * gtk/gtktext.c: GtkType und macro fixups. override GtkEditable::
        set_editable.
1998-07-16 20:23:12 +00:00
Elliot Lee
5e3acecc12 Make gdk_window_foreign_new fail gracefully 1998-07-16 19:41:12 +00:00
Lars Hamann
8f733319d1 fix for sigsegv in case of drag_target == NULL fix for
* gtk/gtkctree.c (gtk_ctree_button_release): fix for sigsegv in
  case of drag_target == NULL
* gtk/gtkclist.c (gtk_clist_button_press): fix for GTK_2/3BUTTON_PRESS.
  Clist did not emit an select_row signal in case of GTK_2/3BUTTON_PRESS.
* gtk/gtkfilesel.c (gtk_file_selection_file_button,
  gtk_dir_selection_file_button): fix due to changes in clist's
  select_row signal.
1998-07-16 13:05:02 +00:00
Tim Janik
af24aef782 handle negative values similar to gtk_widget_set_uposition(). that is:
Thu Jul 16 01:27:15 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c (gtk_widget_set_usize): handle negative values
        similar to gtk_widget_set_uposition(). that is: -1=unspecified,
        -2=leave untouched. changed the width/height field of GtkWidgetAuxInfo
        to be gint16s rather than guint16s, since that's what the code expected
        (for a long time actually).

        * gtk/gtkviewport.c:
        added support for object arguments: GtkViewport::shadow_type,
        GtkViewport::vadjustment and GtkViewport::hadjustment.
        (gtk_viewport_add): chain gtk_bin_add.

        * gtk/gtkscrolledwindow.c:
        added support for object argument: GtkScrolledWindow::hscrollbar_policy,
        GtkScrolledWindow::vscrollbar_policy and GtkScrolledWindow::viewport.

        * gtk/gtkadjustment.h:
        * gtk/gtkadjustment.c:
        * gtk/gtkctree.h:
        * gtk/gtkclist.h:
        * gtk/gtkctree.c:
        * gtk/gtkclist.c:
        * gtk/gtkscrolledwindow.h:
        * gtk/gtkscrolledwindow.c:
        * gtk/gtkviewport.h:
        * gtk/gtkviewport.c:
        GtkType and macro fixups.
1998-07-16 02:47:15 +00:00
Lars Hamann
8b9b7b9d04 Added focus handling, horizontal and vertical autoscrolling, extended
* gtk/gtkctree.h :
* gtk/gtkctree.c :
  Added focus handling, horizontal and vertical autoscrolling,
  extended Selection Mode, key bindings
  Added gtk_ctree_toggle_expansion & gtk_ctree_toggle_expansion_recursive
  Changed gtk_ctree_scroll_to to gtk_ctree_moveto.
  Removed gtk_ctree_clear.

* gtk/gtkclist.h :
* gtk/gtkclist.c :
  Added focus handling, horizontal and vertical autoscrolling,
  extended Selection Mode, key bindings
1998-07-15 23:40:00 +00:00
Manish Singh
b665608816 Build fixes for gdkrgb
-Yosh
1998-07-15 21:15:33 +00:00
Raph Levien
23124810d1 Integrating GdkRgb 0.0.3 into the Gtk+ source tree.
Integrating GdkRgb 0.0.3 into the Gtk+ source tree.
1998-07-15 20:25:52 +00:00
Tim Janik
a3c7dca8cf pass only the signal_id to this function. it needs to relookup the signal
Wed Jul 15 14:20:10 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_real_emit): pass only the signal_id
        to this function. it needs to relookup the signal multiple times.
        this fixes spurious segfaults that could show up with signal intensive
        code, when classes are created during a pending emission (which is
        normal case).
1998-07-15 12:25:43 +00:00
Tim Janik
7702d2f8fc don't destroy a buttons child if it isn't a label.
Tue Jul 14 19:12:12 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbutton.c (gtk_button_set_arg): don't destroy a buttons
        child if it isn't a label.
1998-07-14 17:48:28 +00:00
Tim Janik
a91be9352f macro and GtkType fixups.
Tue Jul 14 11:41:38 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkdialog.h:
        * gtk/gtkseparator.h:
        * gtk/gtkhseparator.h:
        * gtk/gtkvseparator.h: macro and GtkType fixups.
1998-07-14 16:34:48 +00:00
Tim Janik
da355feec6 display the current cursor name.
Tue Jul 14 06:25:46 1998  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c (create_cursors): display the current cursor name.

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c (gtk_type_init_builtin_types): cleanups to
        the fundamental type definition. the GtkArg union now only covers
        the required storage types for argument values. adapted the GTK_VALUE_*
        macro set. handle GTK_TYPE_UCHAR. definiton of type set bounds macros.

        * gtk/gtkargcollector.c (gtk_arg_collect_value): clean ups of the
        code, fixed int/float collection. fixed a bug in the sanity checking
        code for GtkObjects.

        * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixups of the
        argument collection code.

        * gtk/gtksignal.c (gtk_signal_collect_params): use the type set bounds
        macros when distinguishing the return type.
1998-07-14 07:40:15 +00:00
George Lebl
f38374c160 check if old_parent_private is not NULL before trying to g_list_remove the
Mon Jul 13 12:42:51 1998  George Lebl  <jirka@5z.com>

        * gdk/gdkwindow.h: (gdk_window_reparent) check if old_parent_private
          is not NULL before trying to g_list_remove the child. A patch
          from Michael Lausch.

this finally fixes the swallows for the panel :)
1998-07-13 19:43:33 +00:00
Tim Janik
8792bbbd28 fix float argument collection (always casted to doubles upon argument
Sun Jul 12 16:40:06 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkargcollector.c (gtk_arg_collect_value): fix float argument
        collection (always casted to doubles upon argument passing).
1998-07-12 14:43:03 +00:00
Tim Janik
34b7b5d74e call the base classes' object_init_func for derived objects with the
Sun Jul 12 05:59:26 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.c (gtk_type_new): call the base classes'
        object_init_func for derived objects with the object's ->klass field
        still pointing to the corresponding base class, otherwise overridden
        class functions could get called with partly-initialized objects.
        (change from Tero Pulkkinen <terop@modeemi.cs.tut.fi>).
1998-07-12 04:13:02 +00:00
Tim Janik
ab7cb5019e new functions which wraps gtk_arg_get_info().
Sun Jul 12 02:47:35 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkobject.h:
        * gtk/gtkobject.c:
        (gtk_object_arg_get_info): new functions which wraps gtk_arg_get_info().

        * gtk/gtkcontainer.h:
        * gtk/gtkcontainer.c:
        (gtk_container_child_arg_get_info): new function which wraps
        gtk_arg_get_info().
1998-07-12 01:34:20 +00:00
Tim Janik
5edb04999c strictly check for the associated get/set arg functions. if an arg is
Fri Jul 10 13:29:53 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c:
        (gtk_container_arg_get):
        (gtk_container_arg_set):
        * gtk/gtkobject.c:
        (gtk_object_arg_set):
        (gtk_object_arg_get):
        strictly check for the associated get/set arg functions. if an
        arg is readable or writable, the associated class functions *must*
        be provided.
1998-07-10 11:36:26 +00:00
Tim Janik
ab3f4a1607 only take the padding into account if there is an accelerator.
Fri Jul 10 09:37:50 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccellabel.c (gtk_accel_label_accelerator_width): only take the
        padding into account if there is an accelerator.
1998-07-10 08:53:52 +00:00
Tim Janik
55b5e035fc collect the arguments with gtk_container_child_args_collect, not through
Fri Jul 10 05:51:44 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c:
        (gtk_container_add_with_args): collect the arguments with
        gtk_container_child_args_collect, not through gtk_object_args_collect.
        (gtk_container_child_set): likewise.

(cut 'n paste strikes back)
1998-07-10 03:59:44 +00:00
Tim Janik
002d37e6e3 added a new internal type GTK_TYPE_IDENTIFIER which is derived from
Fri Jul 10 04:20:35 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: added a new internal type GTK_TYPE_IDENTIFIER
        which is derived from GTK_TYPE_STRING.

        * gtk/gtkbindings.c: reworked the argument type handling.
1998-07-10 02:33:06 +00:00
CDT 1998 Shawn T. Amundson
524be636e9 add in just enough support for 1 or 4 bits so that it seems to allow
Thu Jul  9 21:03:19 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * gtk/gtkpreview.c: add in just enough support for 1 or 4 bits
	  so that it seems to allow normal operation in those modes,
	  although you will only see black.  1 bit untested
1998-07-10 02:09:10 +00:00
CDT 1998 Shawn T. Amundson
26dcaeaf56 4 bit support, increased available_depths array, which was too low (?)
Thu Jul  9 20:20:04 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * gdk/gdkvisuals.c: 4 bit support, increased available_depths
	  array, which was too low (?)
1998-07-10 01:27:37 +00:00
Tim Janik
347efc33b8 deleted most of the argument handling code, since that is now implemented
Fri Jul 10 00:02:04 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkcontainer.h:
	* gtk/gtkcontainer.c: deleted most of the argument handling code, since
	that is now implemented in gtkarg.c. similar to gtk_object_args_collect,
	we now export a new function gtk_container_child_args_collect().
	for consistency with the object arguments, a few functions got renamed:
	gtk_container_child_arg_get -> gtk_container_child_get,
	gtk_container_child_arg_set -> gtk_container_child_set,
	gtk_container_child_arg_getv -> gtk_container_child_getv,
	gtk_container_child_arg_setv -> gtk_container_child_setv,
	gtk_container_add_with_argv -> gtk_container_addv.
	note, gtk_container_add_with_args() remained, because its equivalent
	would be gtk_container_add(,, ...) which would break all existing code.
	(gtk_container_add_child_arg_type): similar to gtk_object_add_arg_type,
	we expect the `arg_name' argument to be a const static string now.
	(gtk_container_get_child_arg_type): function removed.

Thu Jul  9 07:03:04 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkargcollector.c: new file which holds gtk_arg_collect_value().
	this is a static inline function that collects command line arguments
	from a va_list. this file can just be included in all places that
	need this functionality.

	* gtk/gtkarg.h:
	* gtk/gtkarg.c: new files which implement most of the argument
	handling stuff from gtkobject.c. also collected a few more
	gtk_arg_* utility functions from else places.

	* gtk/gtkobject.h:
	* gtk/gtkobject.c: moved most of the argument handling code into
 	gtkarg.c. we now export gtk_object_args_collect() as a non-public
	method with a blind va_list pointer.
	(gtk_object_add_arg_type): the `arg_name' argument is required to be a
	const static string now.
	(gtk_object_get_arg_type): function got removed.

	* gtk/gtkwidget.c:
	(gtk_widget_set):
	(gtk_widget_new): adaptions for gtk_object_args_collect().

	* gtk/gtktypeutils.c (gtk_type_init_builtin_types): changed the internal
 	fundamental type name so as to have a valid prefix, e.g. "bool"->
	"gboolean", "string"->"GtkString" and somesuch, left "void" as is,
	though that should probably be something like GtkNone since the
	type itself is called GTK_TYPE_NONE.
	even the internal type names need to avoid name clashes and must live
	in their own namespace, several code portions rely on that.
	we should relly have typedefs such as typedef gchar* GtkString; so the
	fundamental type names can be used for code dumpers just like with all
	the Gtk/Gdk types.
1998-07-09 23:00:34 +00:00
Tim Janik
9b4d90465e handle GTK_RELIEF_HALF, which was introduced to keep either
Wed Jul  8 15:31:28 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbutton.c: handle GTK_RELIEF_HALF, which was introduced to
        keep either GTK_STATE_NORMAL for relief buttons (GTK_RELIEF_NONE) or
        to still honour GTK_WIDGET_STATE(), e.g. for coloured buttons
        (GTK_RELIEF_HALF).
        (gtk_button_paint): set the background for prelighted buttons with
        GTK_STATE_NORMAL only if GTK_RELIEF_NONE.
        (gtk_button_draw_focus): if GTK_RELIEF_NONE, use GTK_STATE_NORMAL for
        the shadow type (otherwise we get strange shadows for coloured buttons).
        (gtk_button_set_relief): queue a redraw after changing
        the relief.
        (gtk_button_class_init):
        (gtk_button_set_arg):
        (gtk_button_get_arg): added object argument "GtkButton::relief".

        * gtk/gtkenums.h (enum): added GTK_RELIEF_HALF.
1998-07-08 14:12:27 +00:00
Tim Janik
88fba9f845 totaly binary incomnpatible change:
Mon Jul  6 18:30:48 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbutton.h:
        * gtk/gtkbutton.c: GtkButtons are now derived from GtkBin. we mirror
        GTK_BIN (button)->child to button->child to keep source compatibility.

        * gtk/gtkoptionmenu.c:
        * gtk/gtkclist.c:
        * gtkcheckbutton.c: don't refer to button->child, but
        GTK_BIN (button)->child instead.
1998-07-07 01:25:27 +00:00
BST 1998 Tony Gale
da0930717e update anon CVS info
Mon Jul  6 12:06:23 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtkfaq.sgml: update anon CVS info
1998-07-06 11:07:53 +00:00
Tim Janik
90408c4641 changed reversed_[12] to reserved_[12] in gtk_*_get_type functions.
Sat Jul  4 13:16:24 1998  Tim Janik  <timj@gtk.org>

        * gtk/*.c: changed reversed_[12] to reserved_[12] in gtk_*_get_type
        functions.

        * gdk/gdkwindow.c:
        * gdk/gdkvisual.c: check for some pointer values to be != NULL, prior
        to XFree() calls.
1998-07-04 15:31:30 +00:00
Federico Mena Quintero
c2eb7c28fe Added GDK_HAVE_FULL_CROSSING_EVENT, since I seem to have erroneously added
1998-07-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkfeatures.h.in: Added GDK_HAVE_FULL_CROSSING_EVENT, since
	I seem to have erroneously added it to gtkfeatures.h (not .h.in).
1998-07-03 22:39:22 +00:00
Manish Singh
24ca48fe78 Added GTK_HAVE_RELIEF_STYLE
-Yosh
1998-07-03 21:56:28 +00:00
Carsten Haitzler
5d37ea836c file theme2_window.c was initially added on branch themes. 1998-07-03 20:33:16 +00:00
Carsten Haitzler
9b5ef39404 file theme2_checkbutton.c was initially added on branch themes. 1998-07-03 20:33:14 +00:00
Carsten Haitzler
ca98134099 file d3_n.png was initially added on branch themes. 1998-07-03 20:23:36 +00:00
Carsten Haitzler
fc5df6bb7f file d2_n.png was initially added on branch themes. 1998-07-03 20:23:35 +00:00
Carsten Haitzler
188ea9b487 file d2_h.png was initially added on branch themes. 1998-07-03 20:23:34 +00:00
Carsten Haitzler
9dc1fd02b3 file d2_d.png was initially added on branch themes. 1998-07-03 20:23:33 +00:00
Carsten Haitzler
6a5a84b317 file d1_n.png was initially added on branch themes. 1998-07-03 20:23:32 +00:00
Carsten Haitzler
6d10b256ef file d1_h.png was initially added on branch themes. 1998-07-03 20:23:31 +00:00
Carsten Haitzler
8433a5afe5 file d1_d.png was initially added on branch themes. 1998-07-03 20:23:30 +00:00
Carsten Haitzler
65f993b4ac file b_out.png was initially added on branch themes. 1998-07-03 20:23:29 +00:00
Carsten Haitzler
0f3a3909d1 file b_in.png was initially added on branch themes. 1998-07-03 20:23:28 +00:00
Carsten Haitzler
d2cb5285d5 file b_full.png was initially added on branch themes. 1998-07-03 20:23:27 +00:00
Tim Janik
2e8e686cae temporary implementation of action signal "debug_msg"
Wed Jul  1 20:58:46 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"

        * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
        error that prevented signal to entry addition for signals with
        parameters.
1998-07-01 19:36:53 +00:00
Manish Singh
09de6fb1d4 fix for properly detecting shared lib support on SunPro cc (taken from
libtool 1.2.a)

-Yosh
1998-07-01 17:06:47 +00:00
Tim Janik
ddefd9c9f5 implementation of the "class" keyword for styles.
Wed Jul  1 03:33:30 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkrc.c: implementation of the "class" keyword for styles.
1998-07-01 01:35:13 +00:00
Tim Janik
79e1b1ab6f minor updates. 1998-06-30 20:31:00 +00:00
Tim Janik
1018412555 fixed lookup order for rc styles. the latest defined rc set pattern is
Tue Jun 30 14:30:37 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkrc.c: fixed lookup order for rc styles. the latest defined
        rc set pattern is favoured, this is needed for overriding of style
        patterns with subsequently parsed rc files.
1998-06-30 12:34:36 +00:00
Tim Janik
b483ca4b97 code overhaul for simplicity and more descriptive error messages.
Tue Jun 30 12:45:19 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkrc.c: code overhaul for simplicity and more descriptive
        error messages.
1998-06-30 11:05:20 +00:00
Tim Janik
80b0b3ea05 ok, this enables the possibility for key-release bindings.
but nearly no widget really cares to set GDK_KEY_RELEASE_MASK,
which needs to be enabled in order for release bindings to work.

Tue Jun 30 09:24:40 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccelgroup.c (gtk_accelerator_parse): parse "<Release>"
        modifier as well.
        (gtk_accelerator_name): add "<Release>" to the accelerator name if
        neccessary.

        * gtk/gtkbindings.c (BINDING_MOD_MASK): take BINDING_MOD_MASK into
        account.

        * gtk/gtkwidget.c (gtk_widget_real_key_release_event): implemented
        default handler for key-release events, which checks for activation
        of GDK_RELEASE_MASK key bindings.

        * gdk/gdktypes.h (enum): added GDK_RELEASE_MASK to GdkModifierType.
1998-06-30 08:20:45 +00:00
Tim Janik
bf44f089cd implemented default handler for key-release events, which checks for
Tue Jun 30 09:24:40 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_real_key_release_event): implemented
        default handler for key-release events, which checks for activation
        of GDK_RELEASE_MASK key bindings.

        * gdk/gdktypes.h (enum): added GDK_RELEASE_MASK to GdkModifierType.
1998-06-30 08:02:53 +00:00
Tim Janik
1d82cc2f2e GtkType and macro fixups. widget argument implementation:
Mon Jun 29 13:39:45 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkarrow.h: GtkType and macro fixups.
        * gtk/gtkarrow.c: widget argument implementation: "GtkArrow::arrow_type",
        "GtkArrow::shadow_type".
1998-06-29 11:41:46 +00:00
Elliot Lee
dedcbc9918 Added OBJECT type 1998-06-29 02:12:46 +00:00
Tim Janik
09423315a1 GtkType and macro fixups.
Sun Jun 28 11:39:17 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkalignment.h:
        * gtk/gtkbin.h: GtkType and macro fixups.

        * gtk/gtkalignment.c (gtk_alignment_class_init): widget argument
        implementation: GtkAlignment::xalign, GtkAlignment::yalign,
        GtkAlignment::xscale, GtkAlignment::yscale.
1998-06-28 10:07:37 +00:00
Tim Janik
e63d08e43f call the base class init fucntions from all parent types upon class
Sun Jun 28 04:29:10 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtktypeutils.c (gtk_type_class_init): call the base class init
	fucntions from all parent types upon class initialization.

	* gtk/gtkcontainer.c:
 	(gtk_container_get_type): announce gtk_container_base_class_init to
 	the type system.
	(gtk_container_base_class_init): new function to feature base class
	initialization.
	(gtk_container_get_child_arg):
	(gtk_container_set_child_arg): call the GtkContainerClass get_child_arg
	and set_child_arg methods of the class indicated through the argument
	name.

	* gtk/gtkobject.c:
	(gtk_object_base_class_init): new function to feature base class
 	initialization.
	(gtk_object_init_type): announce gtk_object_base_class_init to the type
	system.
	(gtk_object_class_init): setup the get_arg and set_arg pointers for
	GtkObjectClass.
	(gtk_object_setv):
 	(gtk_object_getv): call the GtkObjectClass get_arg and set_arg methods,
 	instead of bothering the type system with this.

	* gtk/gtkaccellabel.c:
	* gtk/gtkbutton.c:
	* gtk/gtkradiobutton.c:
	* gtk/gtktable.c:
	* gtk/gtktogglebutton.c:
	* gtk/gtktipsquery.c:
	* gtk/gtkbox.c:
	* gtk/gtkpacker.c:
	* gtk/gtkwidget.c:
	* gtk/gtkwindow.c:
	* gtk/gtkframe.c:
	* gtk/gtkmisc.c:
	* gtk/gtklabel.c: set the object_class->{g|s}et_arg pointers to the
	corresponding gtk_*_{g|s]et_arg functions and updated the gtk_*_get_type
	functions wrt GtkTypeInfo initialization. changed a lot of the set/get
	arg functions to take a GtkObject argument.

	gtk/gtkadjustment.c:
	gtk/gtkalignment.c:
	gtk/gtkarrow.c:
	gtk/gtkaspectframe.c:
	gtk/gtkbbox.c:
	gtk/gtkbin.c:
	gtk/gtkcheckbutton.c:
	gtk/gtkcheckmenuitem.c:
	gtk/gtkclist.c:
	gtk/gtkcolorsel.c:
	gtk/gtkcombo.c:
	gtk/gtkctree.c:
	gtk/gtkcurve.c:
	gtk/gtkdata.c:
	gtk/gtkdialog.c:
	gtk/gtkdrawingarea.c:
	gtk/gtkeditable.c:
	gtk/gtkentry.c:
	gtk/gtkeventbox.c:
	gtk/gtkfilesel.c:
	gtk/gtkfixed.c:
	gtk/gtkfontsel.c:
	gtk/gtkgamma.c:
	gtk/gtkhandlebox.c:
	gtk/gtkhbbox.c:
	gtk/gtkhbox.c:
	gtk/gtkhpaned.c:
	gtk/gtkhruler.c:
	gtk/gtkhscale.c:
	gtk/gtkhscrollbar.c:
	gtk/gtkhseparator.c:
	gtk/gtkimage.c:
	gtk/gtkinputdialog.c:
	gtk/gtkitem.c:
	gtk/gtkitemfactory.c:
	gtk/gtklist.c:
	gtk/gtklistitem.c:
	gtk/gtkmenu.c:
	gtk/gtkmenubar.c:
	gtk/gtkmenuitem.c:
	gtk/gtkmenushell.c:
	gtk/gtknotebook.c:
	gtk/gtkoptionmenu.c:
	gtk/gtkpaned.c:
	gtk/gtkpixmap.c:
	gtk/gtkpreview.c:
	gtk/gtkprogressbar.c:
	gtk/gtkradiomenuitem.c:
	gtk/gtkrange.c:
	gtk/gtkruler.c:
	gtk/gtkscale.c:
	gtk/gtkscrollbar.c:
	gtk/gtkscrolledwindow.c:
	gtk/gtkseparator.c:
	gtk/gtkspinbutton.c:
	gtk/gtkstatusbar.c:
	gtk/gtktext.c:
	gtk/gtktoolbar.c:
	gtk/gtktooltips.c:
	gtk/gtktree.c:
	gtk/gtktreeitem.c:
	gtk/gtkvbbox.c:
	gtk/gtkvbox.c:
	gtk/gtkviewport.c:
	gtk/gtkvpaned.c:
	gtk/gtkvruler.c:
	gtk/gtkvscale.c:
	gtk/gtkvscrollbar.c:
	gtk/gtkvseparator.c: updated the GtkTypeInfo initialization code to
	match the modified GtkTypeInfo structure.
1998-06-28 07:46:10 +00:00
Manish Singh
e07f8bfc6f ChangeLog fun
-Yosh
1998-06-28 06:25:36 +00:00
Manish Singh
4b7bbd4434 use rand() instead of random() for portability
-Yosh
1998-06-28 06:24:49 +00:00
Manish Singh
28c7089077 use native Xlib XConvertCase if it's available
-Yosh
1998-06-28 05:44:14 +00:00
Tim Janik
f93afa9c75 compatibility function to provide XConvertCase() functionality from X11R6
Sat Jun 27 15:44:46 1998  Tim Janik  <timj@gtk.org>

        * gdk/gdk.c (gdkx_XConvertCase): compatibility function to provide
        XConvertCase() functionality from X11R6 on X11R5 systems.
1998-06-27 13:51:41 +00:00
Stefan Jeske
37460b2078 Added functions gdk_text_height, gdk_string_height, gdk_char_height to
Thu Jun 25 10:50:34 1998  Stefan Jeske  <stefan@gtk.org>

	* gdk/gdk.h gdk/gdkfont.c: Added functions gdk_text_height,
 	gdk_string_height, gdk_char_height to retrieve the exact
	height of a text.
1998-06-25 09:01:42 +00:00
BST 1998 Tony Gale
713cecba4c add section on GtkCList widget, contributed by Stefan Mars
Thu Jun 25 07:53:51 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml: add section on GtkCList widget, contributed                                       by Stefan Mars <mars@lysator.liu.se>
        * examples/clist/clist.c examples/clist/Makefile: example code
          for GtkCList widget from the Tutorial
1998-06-25 08:57:29 +00:00
Stefan Jeske
e5e47e6879 fix for the compatibility fix 1998-06-25 07:43:27 +00:00
Tim Janik
faa1434735 do not avoid to queue for a resize if the container is not visible, we
Wed Jun 24 16:38:02 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbin.c (gtk_bin_remove): do not avoid to queue for a resize
        if the container is not visible, we might be a toplevel! this holds
        for all other base container implementations as well, that are
        candidates to derive toplevels from. in general the resizing code will
        care about visibility itself.
        * gtk/gtkmenushell.c (gtk_menu_shell_remove): likewise.
        * gtk/gtkbox.c (gtk_box_remove): likewise.

        * gtk/gtkwindow.c (gtk_window_move_resize): save ->use_uposition around
        gtk_window_set_hints(), since we haven't calculated the new position
        yet.

        * gdk/gdkwindow.c (gdk_window_get_pointer): take care that *x, *y and
        *mask are alway initialized in a sane way, regardless of the return
        value.
1998-06-24 17:15:05 +00:00
Tim Janik
11f5588755 changelog entry 1998-06-24 12:24:20 +00:00
Tim Janik
9860caa539 new function gtk_container_child_arg_set, similar to
Wed Jun 24 14:14:32 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c: new function gtk_container_child_arg_set, similar
        to gtk_container_child_arg_setv, but takes a variable argument list.
        new function gtk_container_get_child_arg_type, which is needed by
        gtk_object_collect_args.

        * gtk/gtkobject.c: changed prototype for gtk_object_collect_args, to
        take a function pointer to figure the argument type.
        adapted callers to pass gtk_object_get_arg_type.
        * gtk/gtkwidget.c: adapted gtk_object_collect_args callers to pass
        gtk_object_get_arg_type..

        * gtk/gtkpacker.h:
        * gtk/gtkpacker.c:
        (gtk_packer_reorder_child): new function to change the packing order
        of a child.
        (gtk_packer_size_request):
        (gtk_packer_size_allocate): take container->border_width into acount.

        * gtk/gtkpacker.c: implemented widget arguments:
        "GtkPacker::spacing", "GtkPacker::border_width", "GtkPacker::pad_x",
        "GtkPacker::pad_y", "GtkPacker::ipad_x", "GtkPacker::ipad_y".
        implemented child arguments:
        "GtkPacker::side", "GtkPacker::anchor", "GtkPacker::expand",
        "GtkPacker::fill_x", "GtkPacker::fill_y", "GtkPacker::use_default",
        "GtkPacker::border_width", "GtkPacker::pad_x", "GtkPacker::pad_y",
        "GtkPacker::ipad_x", "GtkPacker::ipad_y", "GtkPacker::position".

        * gtk/gtkmisc.c (gtk_misc_set_arg): for padding args, set the padding,
        not the alignment.

        * gtk/gtkeventbox.h:
        * gtk/gtkeventbox.c: GtkType and macro fixups.

        * gtk/testgtk.c (entry_toggle_sensitive): new function to toggle
        sensitivity of an entry.

        * gtk/gtkstyle.c (gtk_style_new): support normal grey as default color
        for insensitive base.

        * gtk/gtkentry.c (gtk_entry_realize): set the window backgrounds
        widget state dependent.
        (gtk_entry_style_set): likewise.
        (gtk_entry_state_changed): set background color on state changes.
        (gtk_entry_draw_text): for non selected text, use state dependent
        colors.

        * gtk/gtktogglebutton.c: support for widget arguments
        "GtkToggleButton::active" and "GtkToggleButton::draw_indicator".
1998-06-24 12:22:23 +00:00
Stefan Jeske
14bd8cf9e5 Added compatibility code for 1.0.x-like parameters. Changed internal
* gtk/gtkspinbutton.c (gtk_spin_button_spin): Added compatibility
code for 1.0.x-like parameters. Changed internal interface of
gtk_spin_button_real_spin. Several fixes to avoid emission of
"value_changed" where possible.
1998-06-24 07:59:05 +00:00
Tim Janik
dbce6083ef added a frame with radio buttons to select the resize_mode for the
Wed Jun 24 07:47:29 1998  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c (create_idle_test): added a frame with radio buttons
        to select the resize_mode for the idle-labels container.

        * gtk/gtkframe.h:
        * gtk/gtkframe.c: GtkType and macro corrections.

        * gtk/gtkradiobutton.c (gtk_radio_button_set_arg): new function to
        support radio grouping.

Tue Jun 23 08:01:09 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c (gtk_container_set_resize_mode): queue a resize
        unconditionally if resize_mode has changed.

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): set
        GTK_RESIZE_QUEUE on the scrolled window.
        (gtk_scrolled_window_construct): set GTK_RESIZE_PARENT for the vieport.

Tue Jun 23 04:20:30 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.h:
        * gtk/gtkcontainer.c:
        (GTK_IS_RESIZE_CONTAINER): new macro to find out if
        a given gtkobject is a container with resize_mode==GTK_RESIZE_PARENT.
        (gtk_container_queue_resize): new function to queue a container for
        a *size* reallocation (doesn't affect its position, and thus its
        parent is left untouched usually).
        (gtk_container_get_resize_container): new function to retrive the next
        most resize container which is not itself queued for a resize.
        (gtk_container_idle_sizer): new function to carefully process the
        container_resize_queue since it can change during invokation of
        gtk_container_check_resize().
        (gtk_container_resize_children): total rework of this function to
        properly handle resize containers. makes a lot of assumptions whitch
        are stated in the comments.

        * gtk/gtkcontainer.c:
        (gtk_container_real_check_resize): only requeue ourselves if we are not
        a resize container.
        (gtk_container_clear_resize_widgets): care for automatic deletion of our
        resize_widgets list on size_allocate through a handler connection.

        * gtk/gtkwindow.c (gtk_window_shutdown): new functionm to reset the
        focus and default widget of a window, so to take the burden from
        gtk_widget_unparent.

        * gtk/gtkviewport.c: removed gtk_viewport_check_resize, which tried
        to be clever, but actually messed up the resize_children logic and
        caused unneccessary allocations on its whole branch. besides this,
        it messed up the display by not invoking a redraw after the allocation.

        * gtk/gtktable.c (gtk_table_set_child_arg): reverted recent change, so
        that it is the child again that is queued for a resize.
        (gtk_table_attach): likewise.
        (gtk_table_remove): likewise.
1998-06-24 06:25:14 +00:00
Manish Singh
00362c03f7 s/GkWidget/GtkWidget/
-Yosh
1998-06-24 05:23:19 +00:00
Miguel de Icaza
4c7408d9ea Export the gtk_entry_adjust_scroll. Required if you change the cursor
1998-06-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

        * gtk/gtkentry.h, gtk/gtkentry.c: Export the
        gtk_entry_adjust_scroll.  Required if you change the cursor
        position and want to sync it up with your code (Midnight Commander
        gtk front end needs this).

        * gtk/gtktable.c: Deal with tables that have size 0, 0.
1998-06-23 15:55:51 +00:00
BST 1998 Tony Gale
eab38fa264 new file to explain how the code examples should be extracted from the
Tue Jun 23 12:12:19 BST 1998  Tony Gale  <gale@gtk.org>

        * examples/README.1ST: new file to explain how the
          code examples should be extracted from the tutorial.
1998-06-23 11:15:20 +00:00
Raja R Harinath
494e401a15 Restore lost/hidden ChangeLog entry. 1998-06-22 22:27:23 +00:00
Lars Hamann
1b5a1e1acb new CTree line style GTK_CTREE_LINES_TABBED 1998-06-22 17:00:21 +00:00
Raja R Harinath
e14c6c1d87 Remove $(srcdir) from, and clean up, the dependencies. Generate to
1998-06-21  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gtk.defs,gtktypebuiltins*): Remove $(srcdir)
	from, and clean up, the dependencies.  Generate to intermediate
	files to prevent problems with Ctrl-C.

	* gtk/genmarshal.pl: Generate `gtkmarshal.[ch]' in $srcdir.

Also commit readable/indented gtkmarshal.[ch].
1998-06-21 22:03:58 +00:00
Seth Alves
fdaecac622 removed extra comma at end of enum 1998-06-20 19:59:39 +00:00
Stefan Jeske
1ae617e324 - Bug fix for precision problem causing occasional double emission of
* gtk/gtkspinbutton.h gtk/gtkspinbutton.c gtk/testgtk.c:
        - Bug fix for precision problem causing occasional double emission
	  of "value_changed" signal (hopefully works now).
        - API change (should be binary compatible) :
	  new enum GtkSpinType; modified gtk_spin_button_spin to use it.
	  Modified cursor example appropriately.
	  To spin by something other than step_/page_increment, use
	  gtk_spin_button_spin (spin, GTK_SPIN_USER_DEFINED, increment).
	- Made GTK_SHADOW_NONE the default. ;)
	- Fixed casting of GtkAdjustment* to GtkWidget* in
	  gtk_spin_button_value_changed.
1998-06-19 17:33:51 +00:00
Tim Janik
5c68ecbc0f fail silently for toplevels. if resize_mode changes to GTK_RESIZE_PARENT,
Fri Jun 19 06:18:19 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c (gtk_container_set_resize_mode): fail silently
        for toplevels. if resize_mode changes to GTK_RESIZE_PARENT, clear the
        resize widget list before queuing the container for a new reize.
        (gtk_container_need_resize): changed return value to FALSE, since this
        used to indicate that no further resizes are needed.
        (gtk_container_set_arg):
        (gtk_container_get_arg):
        (gtk_container_class_init): implemented GtkContainer::resize_mode
        argument.

        (gtk_container_resize_children): when we walk up the tree of a resize
        widget we need to stop if we are the current parent.

        * gtk/gtkwidget.c (gtk_widget_queue_resize): flag the resize child with
        GTK_RESIZE_NEEDED for container->resize_mode==GTK_RESIZE_IMMEDIATE.
        (gtk_widget_hide_all): retrive the toplevel widget from via
        gtk_widget_get_resize_container().
1998-06-19 06:56:15 +00:00
Owen Taylor
5c5a45f9b0 Only respond to selection with button 1. This allows context-sensitive
Thu Jun 18 23:08:36 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtklist.c (gtk_list_button_press): Only respond
	  to selection with button 1. This allows context-sensitive
	  menus to work correctly.
1998-06-19 03:12:19 +00:00
Tim Janik
3c90c2cd53 replaced some gtk_object_data_force_id with g_quark_from_static_string
Fri Jun 19 03:29:04 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccelgroup.c:
        * gtk/gtkbindings.c:
        * gtk/gtkcontainer.c:
        * gtk/gtkitemfactory.c:
        * gtk/gtkobject.c:
        * gtk/gtksignal.c:
        * gtk/gtkwidget.c: replaced some gtk_object_data_force_id with
        g_quark_from_static_string calls to save memory.

        * gtk/gtkobject.c (gtk_object_set_data_by_id_full): invoke the destroy
        function _after_ the new data has been setup.
        minor changes to object data functions to feature the GQuark type.
1998-06-19 02:07:47 +00:00
Owen Taylor
913831b26f Remove --g-fatal-warnings flag from argv.
Thu Jun 18 21:13:54 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkmain.c (gtk_init): Remove --g-fatal-warnings flag
	  from argv.

Thu Jun 18 20:22:28 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/genmarshal.pl: Modified to be more idiomatic Perl,
	  to be more readable perl, to spit out stuff that looks
	  more like readable C, and to pipe output through indent
	  so output looks a lot like readable C. No functional
	  changes.

Thu Jun 18 17:43:31 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkpixmap.[ch] (gtk_pixmap_set): Clear the background if
	  necessary when switching to a masked pixmap. (Based on a patch
	  from Ullrich Hafner <hafner@informatik.uni-wuerzburg.de>)

Thu Jun 18 16:18:10 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkeditable.[ch]: Added action signals for keyboard
   	  bindings. (move_cursor, kill_word, etc, etc, etc).

          removed the time argument from
	  gtk_editable_cut/copy/paste_clipboard (source but not
          binary incompatible...) Instead get time from
	  gtk_get_current_event ().

	* gtk/gtktext.c gtk/gtkentry.c: Support the new editable
	  signals.

Thu Jun 18 02:52:09 1998  Owen Taylor  <otaylor@gtk.org>

	Patches from Damon Chaplin <DAChaplin@email.msn.com>:

        gtk/gtkfontsel.h: Fixed GtkFontSelectionClass - I forgot to change
	     parent class to GtkNotebookClass when splitting the widget in
	     two.  Also updated some comments.

        gtk/gtkfontsel.c: Fixed bug when toggling 'Allow scaled bitmaps'
               button without a font selected.

             Fixed bug in set_font_name - I hadn't updated the code to
               search for the style in the font_style clist - it was
               still assuming the style row was equal to its index,
               but it isn't any more.

             Changed 'Reset' button on filter page to 'Clear Filter'.
             Deleted old code relating to the old 'Filter Fonts' toggle
             Updated some comments.
             Cleared 'Actual Fontname' if no font is set.

        gtk/testgtk.c: Fixed problem when 'OK' button is pressed - it was
	     destroying the GtkFontSelection instead of the
             GtkFontSelectionDialog.

Thu Jun 18 02:15:31 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkmain.c (gtk_init): Added --g-fatal-warnings
	  flag to make all warnings fatal errors.

	* gtk/testthreads.c: moved <pthreads.h> include inside
	  #ifdef USE_PTHREADS

Thu Jun 18 01:37:31 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkenums.h gtk/gtkcontainer.[ch] gtk/gtkwidget.c
	  gtk/gtkmenu.c gtk/gtkviewport.c gtk/gtkwindow.c:

	- Added new function gtk_container_set_resize_mode() for
	  fine-grained control of where resize-queueing is done.

	- Removed GtkContainer::need_resize and GtkWindow::move_resize
	- Added GtkContainer::check_resize to replace need_resize.

	- Added function gtk_container_check_resize() to trigger
	  queued resizes, and gtk_container_resize_children() to
	  Figure which children need to be size-allocated. (logic
	  moved from gtkwindow.c)

	- Reorganized code in gtkwindow.c

	- Set the resize-mode for viewports so that resizes within
	  a viewport don't propagate out of it.
1998-06-19 01:26:24 +00:00
Federico Mena Quintero
25bd56b995 Use pointer<->int conversion macros to avoid warnings.
1998-06-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkfontsel.c: Use pointer<->int conversion macros to avoid warnings.

	* gtk/gtkaccellabel.c (gtk_accel_label_accelerator_width): Use
	g_return_val_if_fail, because the function *does* return a value.
1998-06-18 22:32:36 +00:00
Tim Janik
f83d57e91b yeppers, accelerator changes to fix the gimp. commit message dedicated to
yeppers, accelerator changes to fix the gimp.
commit message dedicated to sopwith ;)

Thu Jun 18 03:30:06 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccellabel.h:
        * gtk/gtkaccellabel.c: new function gtk_accel_label_accelerator_width to
        request the size of the accelerator portion of an accel label.
        (gtk_accel_label_size_request): don't request for the accelerators size.
        (gtk_accel_label_expose_event): only draw the accelerator if we got
        enough extra space.

        * gtk/gtkmenuitem.c (gtk_menu_item_size_request): request accelerator
        width from children.

        * gtk/gtkmenu.c (gtk_menu_key_press): when adding an accelerator to an
        object (after removal has been requested) check if there is still an
        accelerator remaining to avoid adding two accelerators on an object.
        this can happen for locked accelerators (or accelerator-frozen widgets).
        (gtk_menu_size_request): feature childrens accelerator width in size
        requests.

        * gtk/gtknotebook.c (gtk_notebook_menu_item_create): use
        gtk_widget_freeze_accelerators() for dynamically created menu items.

        * gtk/gtksignal.h:
        * gtk/gtksignal.c: new function gtk_signal_handler_pending_by_func()
        which will return a handler_id > 0 if the specified function is pending
        for `signal_id'.

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: remove gtk_widget_stop_accelerator, which was just
        a signal handler function to stop accelerator addition.
        added gtk_widget_freeze_accelerators and gtk_widget_thaw_accelerators
        which will prevent (undo) any accelerators from being added to or
        removed from a widget.
1998-06-18 03:22:09 +00:00
Stefan Jeske
85adae970a *** empty log message *** 1998-06-17 20:09:43 +00:00
Stefan Jeske
7cb2ce4d11 Changed GtkSpinButtonUpdatePolicy enum, added keyboard
acceleration, new API gtk_spin_button_set_snap_to_ticks.
1998-06-17 20:07:31 +00:00
Tim Janik
7d0331a679 new function gdk_window_at_pointer() to retrive the current GdkWindow the
Wed Jun 17 03:47:40 1998  Tim Janik  <timj@gtk.org>

        * gdk/gdk.h:
        * gdk/gdkwindow.c: new function gdk_window_at_pointer() to retrive
        the current GdkWindow the pointer is on if there is any.

        * gtk/gtktable.c (gtk_table_init): preallocate a table with one row
        and one column, so we don't construction logic at all. changed a few
        (x < y - 1) to (x + 1 < y), to avoid failing evaluations due to
        unsigned int wraps.

        * gtk/gtkwidget.c (gtk_widget_set_parent): removed left over code
        portion, added an additional check for parent != widget.

        * more GtkType and macro fixups.
1998-06-17 08:48:22 +00:00
Elliot Lee
7bb4d7d961 Fixed functions with no arguments 1998-06-17 05:12:27 +00:00
Federico Mena Quintero
ed1e531c36 Now accepts an extra "clip" parameter, which is the clipping rectangle to
1998-06-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkhandlebox.c (draw_textured_frame): Now accepts an extra
	"clip" parameter, which is the clipping rectangle to use.  This
	eliminates the extremely annoying flicker when exposing parts of
	the handlebox.
1998-06-17 03:34:22 +00:00
Manish Singh
b7f7f3d98d fix from TimJ for off-by-one error in table resizing
-Yosh
1998-06-16 21:09:24 +00:00
Stefan Jeske
673c79d7d1 TODO 1998-06-16 07:39:06 +00:00
Tim Janik
742d01908f boy! did i really modify that many files?
anyways, here go the child args and a lot of cleanups ;)
you wouldn't want me to put the ChangeLog entry in here, would you?
1998-06-16 05:20:05 +00:00
Owen Taylor
d36df18dee Moved font lists from the klass structure to a static structure in
Mon Jun 15 23:39:44 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkfontsel.[ch] (gtk_font_selection_dialog_init): Moved font
	lists from the klass structure to a static structure
	in gtkfontsel.c; cleans up global the namespace.

Mon Jun 15 22:16:10 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/makeenums.pl (parse_entries): Fix (untriggered)
	bug with /*< skip >*/ and remove warning.
1998-06-16 03:40:04 +00:00
Manish Singh
406fd3362c Added maintainer-rule autogened files
-Yosh
1998-06-16 01:17:43 +00:00
Owen Taylor
2ee01439f0 Made the gtkmarshal.* generation rules maintainer-only.
Mon Jun 15 20:14:09 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/Makefile.am: Made the gtkmarshal.* generation
	rules maintainer-only.

Really add makeenums.pl (this is getting to be a bad habit)
1998-06-16 00:13:04 +00:00
Owen Taylor
4079c878ca Actually add in the files... 1998-06-15 23:29:27 +00:00
Owen Taylor
48a9f44f31 gdk/gdktypes.h gdk/gdkprivate.h gtk/gtk*.h gtk/Makefile.am gtk/makenums.pl
Mon Jun 15 16:29:45 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdktypes.h gdk/gdkprivate.h gtk/gtk*.h
	  gtk/Makefile.am gtk/makenums.pl

	Removed out the G_ENUM/FLAGS mechanism in favor
	of a perl script that parses the standard headers
	(with occasional /*< nick=foo >*/ style overrides)
	and extracts the enumerations.

	  gtk/maketypes.awk: Small improvments to the
	  translation of names. (Avoid splitting gc into
	  g_c_.)

Mon Jun 15 16:25:44 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/Makefile.am gtk/gtk.h gtk/gtkfontsel.[ch] gtk/testgtk.c:
	Damon Chaplin's <DAChaplin@email.msn.com> Font selection widget,
        and a simple example for testgtk.

Mon Jun 15 15:58:34 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkentry.c:
	- Restored gtk_entry_adjust_scroll to static
	- Changed text positioning code so that we always
	  display as large a portion of the text as possible.

Mon Jun 15 15:42:12 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c (gtk_text_finalize): Free internal
	structures of text widget. Also, unreference pixmaps
	when unrealizing.

Sat Jun 13 19:14:39 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkinputcommon.h (gdk_input_device_new): Change
	3.3.1 bug workaround to number keys starting at 1.

Sat Jun 13 11:56:57 1998  Owen Taylor  <otaylor@gtk.org>

	* docs/gtk_tut.sgml: Fixed urls for complete example
	source for scribble+widget-writing examples.
1998-06-15 21:27:17 +00:00
Elliot Lee
e144ff2bb5 Redo (and complete) movement of all pointer types into pointer_data in the GtkArg union 1998-06-14 16:59:42 +00:00
Elliot Lee
f57e0ba8b1 Reformat two function prototypes for cosmetics 1998-06-14 16:50:48 +00:00
Tim Janik
c390a6ec47 reverting changes that depend on other code which i'm going to
commit later this night (so gtk at least compiles for people).
1998-06-14 15:02:05 +00:00
Tim Janik
b8368a54a2 heal gtk. ;) 1998-06-14 14:37:39 +00:00
Elliot Lee
208057b914 s/string_data/pointer_data/ as needed to match GtkArg
s/string_data/pointer_data/ as needed to match GtkArg
1998-06-14 07:58:02 +00:00
Owen Taylor
e17f31db8f Patch from Tom Bech <tomb@ii.uib.no>, to handle color specs of the form c
Sat Jun 13 11:48:26 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkpixmap.c (gdk_pixmap_extract_color):
	Patch from Tom Bech <tomb@ii.uib.no>, to handle color
	specs of the form c #abcdef [ more keys ] properly.
1998-06-13 15:51:34 +00:00
Stefan Jeske
2e5dda7c62 *** empty log message *** 1998-06-13 09:02:05 +00:00
Stefan Jeske
b39687aac8 New API to set the shadow type of the arrow panel. 1998-06-13 08:56:27 +00:00
Owen Taylor
92270f8620 Removed code for drawing the child in two places at once. Unfortunately,
Fri Jun 12 21:20:42 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkoptionmenu.c (gtk_option_menu_expose): Removed
	code for drawing the child in two places at once. Unfortunately,
	not only does it not work anymore (because reparenting has
	been fixed), but it also triggers reparent/expose loops
	in some cases.

	* gtk/gtkoptionmenu.c (gtk_option_menu_remove_contents): Removed
	an unecessary unrealize.
1998-06-13 01:36:28 +00:00
Tim Janik
1dc1b050b2 renamed enum GtkAnchor and GtkSide to GtkAnchorType and GtkSideType, to be
Fri Jun 12 09:24:47 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkpacker.h:
        * gtk/gtkpacker.c: renamed enum GtkAnchor and GtkSide to GtkAnchorType
        and GtkSideType, to be consistent with the rest of Gtk's enum
        definitions. wrapped the enum definitions with the G_ eunm wrappers.
        spelled out the GTK_ANCHOR_* enum values, since single letters don't
        work out corectly as nick-names (left the old values as aliases).
        some signdness corrections (border-width, spacing), could stand more.
1998-06-12 08:10:29 +00:00
CDT 1998 Shawn T. Amundson
cab220ee8b Added gtkpacker
Thu Jun 11 14:38:33 CDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * gtk/gtkpacker.c, gtk/gtkpacker.h, gtk/gtk.h, gtk/Makefile.am:
          Added gtkpacker

        * examples/packer/pack.c, examples/packer/Makefile: Added
          gtkpacker example
1998-06-12 00:49:11 +00:00
Dick Porter
d0ff2dbc79 Removed glib, since it's in its own module now. 1998-06-11 20:00:42 +00:00
Owen Taylor
dbcf64a3f2 Fixed broken list-removal code.
Thu Jun 11 13:09:00 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c (remove_cache_line): Fixed broken
	list-removal code.

	* gtk/gtktext.c: (gtk_text_delete_(forward/backward)_cahr)
	Check bounds before deleting.
1998-06-11 17:52:12 +00:00
Owen Taylor
0895f5b669 Support ACLOCAL_FLAGS
Wed Jun 10 23:21:33 1998  Owen Taylor  <otaylor@gtk.org>

	* autogen.sh: Support ACLOCAL_FLAGS
1998-06-11 03:19:39 +00:00
Manish Singh
07d3d46f08 #define GTK_HAVE_ACCEL_GROUP
-Yosh
1998-06-11 01:45:22 +00:00
Owen Taylor
7ffe514812 Added missing quotes.
Wed Jun 10 20:54:37 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk-config.in: Added missing quotes.
1998-06-11 00:52:24 +00:00
Raja R Harinath
e2fdd9e54f Renamed from G_COMPILED_WITH_DEBUGGING.
* acconfig.h (GTK_COMPILED_WITH_DEBUGGING): Renamed from
G_COMPILED_WITH_DEBUGGING.
1998-06-11 00:27:08 +00:00
Raja R Harinath
8d99ec411e Explain check better.
* configure.in (fd_set): Explain check better.

* acinclude.m4: New file.  Contains `libtool.m4' from libtool-1.2,
the version from which gtk+'s libtool forked.  Needed for people
who use post-1.2 alphas of libtool.
1998-06-11 00:12:59 +00:00
Raja R Harinath
122ca000b5 Remove last remaining file 1998-06-10 23:52:31 +00:00
Owen Taylor
7086e475e3 glib/* Moved to glib module
Wed Jun 10 19:36:35 1998  Owen Taylor  <otaylor@gtk.org>

	* glib/* Moved to glib module

	* INSTALL Makefile.am acconfig.h autogen.sh configure.in
	  gtk-config.in gtk.m4 gdk/Makefile.am gtk/Makefile.am

	  configuration changes for the above:

	  - Use AM_PATH_GLIB by default to find glib; also accept
	    a --with-glib option for using an uninstalled glib.

	  - Put --enable-debug information into config.h so
	    that we rebuild when it changes. (was in glibconfig.h)
1998-06-10 23:44:55 +00:00
Lars Hamann
6b61461a40 adapted clist pixmap clipping
* gtk/gtkctree.c (draw_row): adapted clist pixmap clipping

        * gtk/gtknotebook.h (struct _GtkNotebookClass):
        * gtk/gtknotebook.c (gtk_real_notebook_switch_page):
        added missing argument (according to Joseph Coleman's bug report)

        * gtk/gtknotebook.c (gtk_notebook_set_focus_child): new class
        function to fix notebook focus handling
1998-06-10 21:48:21 +00:00
Owen Taylor
344572dc71 Renamed g_const_pointer => gconstpointer. 1998-06-10 16:59:28 +00:00
Tim Janik
b70abe38c1 prevent gdk_init() from segfaulting when invoked with (NULL, NULL); (this
Wed Jun 10 06:25:17 1998  Tim Janik  <timj@gtk.org>

        * gdk/gdk.c (gdk_init): prevent gdk_init() from segfaulting when
        invoked with (NULL, NULL); (this worked sometime ago).

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: enum and flags type creation can now be done
        through gtk_type_register_enum() and gtk_type_register_flags(),
        which allow to specify the enum value arrays directly.
        the NULL terminated value arrays can be retrived through
        gtk_type_enum_get_values() and gtk_type_flags_get_values();
        (gtk_type_children_types): new function to query derived types.
1998-06-10 07:32:52 +00:00
Tim Janik
6430ad631a enum and flags type creation can now be done through
Wed Jun 10 06:25:17 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: enum and flags type creation can now be done
        through gtk_type_register_enum() and gtk_type_register_flags(),
        which allow to specify the enum value arrays directly.
        the NULL terminated value arrays can be retrived through
        gtk_type_enum_get_values() and gtk_type_flags_get_values();
1998-06-10 04:55:22 +00:00
Raja R Harinath
c486540935 Thinko... The ChangeLog entry still stands. 1998-06-10 02:15:50 +00:00
Raja R Harinath
602a038747 Add $(srcdir) where needed (in the rule), and removed it where not needed
1998-06-09  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gtk.defs,gtktypebuiltins*): Add $(srcdir)
	where needed (in the rule), and removed it where not needed
	(in the dependencies).
1998-06-10 02:10:23 +00:00
Raja R Harinath
d292dd9b27 Pass $srcdir in environment to genmarshal.pl. Look for `gtkmarshal.list'
1998-06-09  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gtkmarshal.c gtkmarshal.h): Pass $srcdir in
	environment to genmarshal.pl.
	* gtk/genmarshal.pl: Look for `gtkmarshal.list' in $srcdir.
1998-06-10 01:04:46 +00:00
Tim Janik
5ab6b7e020 more const pointer corrections. 1998-06-10 00:54:54 +00:00
Owen Taylor
2cabeeb1c3 Removed g_object_pointer_hash, which was just g_direct_hash.
Tue Jun  9 18:44:57 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkobject.c: Removed g_object_pointer_hash, which
	was just g_direct_hash.

Mon May 25 19:54:20 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in: x_libs=, not $x_libs=. Enough said.
          (Case only hit for --disable-xshm)

Mon May 25 12:08:14 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in (LDFLAGS): Add to $CFLAGS and $LDFLAGS
	  when testing for X libraries, don't replace them. Because
	  the user might have specified the path to the X libraries
	  themself before running configure.

	* examples/**.c: Changed all gpointer * to gpointer

Sat May 23 21:54:05 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in (LDFLAGS): Bomb out with a moderately
	  helpful message if detection of X libraries fails.

Sat May 23 18:57:06 1998  Owen Taylor  <otaylor@gtk.org>

  [ Combination of:
     gtk-rrh-980412-0.patch (Raja R Harinath <harinath@cs.umn.edu>)
     gtk-jbuhler-980516-0 (Jeremy Buhler <jbuhler@cs.washington.edu>) ]

	* gdk/gdk.h gdk/gdkcc.c gdk/gdkfont.c gtk/gtkmain.c
	  gtk/gtksignal.c gtk/gtktext.c:

	  Fixups for warnings from adding const to type of GHashFunc,
	  GCompareFunc

	* gtk/gtkcombo.c (gtk_combo_entry_key_press): Minor style/
	  ansi-warnings fixups.

Tue Jun  9 17:47:33 1998  Owen Taylor  <otaylor@gtk.org>

	* glib.h: Remove #error - HP/UX.

Sat May 23 19:00:01 1998  Owen Taylor  <otaylor@gtk.org>
  [ Combination of:
     gtk-rrh-980412-0.patch (Raja R Harinath <harinath@cs.umn.edu>)
     gtk-jbuhler-980516-0 (Jeremy Buhler <jbuhler@cs.washington.edu>) ]

	* glib.h ghash.c gstring.c gdataset.c gutils.c:
	- Added new typedef g_const_pointer; expunged all incorrect
	  uses of 'const gpointer'.
	- Fixed up warnings that that created,
	- Changed GHashFunc and GCompareFunc to take g_const_pointer
	  arguments. (Necessary, but will cause warnings in existing
	  code until fixed)
	- Added other new const in harmless positions.
1998-06-09 23:18:11 +00:00
Federico Mena Quintero
a1fe6d0337 Removed the fleur_cursor field. Now the cursor is created/destroyed on
1998-06-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
	fleur_cursor field.  Now the cursor is created/destroyed on demand
	by the routines that need it.

	* gtk/gtkhandlebox.c (gtk_handle_box_button_changed):
	(gtk_handle_box_motion): The fleur cursor is created and destroyed
	only when needed.
1998-06-09 21:01:45 +00:00
Elliot Lee
aff37e7bea Fix for people using name mangling 1998-06-09 20:16:12 +00:00
Elliot Lee
c3ccc9b136 Just a convenience to parallel gtk-config
Just a convenience to parallel gtk-config
1998-06-09 20:10:48 +00:00
Manish Singh
bd1e56dd83 Warning cleanups.. cvsignore stuff
-Yosh
1998-06-09 10:33:56 +00:00
Tim Janik
cd34fdd047 renamed the newly created gtk_enum_get_values and gtk_enum_set_values to
Tue Jun  9 09:57:09 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: renamed the newly created gtk_enum_get_values and
        gtk_enum_set_values to gtk_type_enum_get_values and
        gtk_type_enum_set_values respectively, since they are actually type
        system features.

        * gtk/gtktypebuiltins_evals.c: oops, screwed the NULL termination with
        my last commit. ;)
1998-06-09 08:21:20 +00:00
Tim Janik
b377b2dc47 removed some bogus commas. 1998-06-09 07:14:34 +00:00
Tim Janik
a21d063ef8 new functions gtk_selection_data_copy and gtk_selection_data_free.
Tue Jun  9 01:57:23 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkselection.h:
        * gtk/gtkselection.c: new functions gtk_selection_data_copy and
        gtk_selection_data_free.

        * gtk/gtkwidget.c (gtk_widget_class_init): fixed gtk_signal_new() call
        for "selection_received", which was completely bogus.
        * other fixups to gtk_signal_new() calls all over the place.

        * gtk/gtktypebuiltins.h: types as variables (formerly macros).
        * gtk/gtktypebuiltins_vars.c: type variable implementations.
        * gtk/gtktypebuiltins_ids.c: array entries for builtin type
        declarations.
        * gtk/gtktypebuiltins_evals.c: enum value arrays.
        * gtk/gtk-boxed.defs: gtk and gdk structure definitions, used to build
        gtk.defs.
        * gtk/gtk.defs: generated file with scheme syntax for type definitions
        of gtk and gdk structures and enums.
        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: reworked type ids, so they are variables not
        macros anymore (this fixes binary incompatibility with new enum
        definitions).

        * gtk/gtkwidget.c (gtk_widget_real_key_press_event): proccess possible
        key bindings for this widget.
        * gtk/gtkwindow.c (gtk_window_key_press_event): chain parent class'
        handler.

        * gtk/gtkobject.h:
        * gtk/gtkobject.c: removed gtk_object_class_new_user_signal_no_recurse()
        again. new functions gtk_object_class_user_signal_new () and
        gtk_object_class_user_signal_newv (), to feature the GtkSignalRunType
        flag on the signal creation.
Mon Jun  8 20:52:21 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.h: new signal GtkContainer::set_focus_child.
1998-06-09 07:11:55 +00:00
Tim Janik
257c54a021 check for func in g_[s]list_insert_sorted and g_[s]list_find_custom 1998-06-08 04:09:21 +00:00
Tim Janik
207eecc424 wrapped enum definitions with glib macros.
Mon Jun  8 02:52:37 1998  Tim Janik  <timj@gtk.org>

        * gdk/gdkprivate.h:
        * gdk/gdktypes.h:
        * gtk/gtkprivate.h:
        * gtk/gtkwidget.h:
        * gtk/gtkobject.h: wrapped enum definitions with glib macros.

        * reworked enum value array generation code. gtk.defs is a generated
        file now.
1998-06-08 03:38:24 +00:00
Elliot Lee
1e32cc3d63 Start of marshalling centralization.
Start of marshalling centralization.

Please check this over for sanity. I think the perl script and Makefile might
need fixing up to allow builddir != srcdir

I will start converting all the widgets to use this scheme if no problems
arise.
1998-06-08 01:37:27 +00:00
Manish Singh
db0c8b158c hrm.. extra #pragma..
-Yosh
1998-06-07 23:43:00 +00:00
Manish Singh
c1665b1441 silly typo
-Yosh
1998-06-07 23:22:42 +00:00
Elliot Lee
a0d3a674d0 Added g_s?list_find_custom functions to allow user to specify a
Added g_s?list_find_custom functions to allow user to specify a
GCompareFunc to determine whether a node matches or not.

If you have a better idea for naming the functions, please, make it so! :)
1998-06-07 20:18:21 +00:00
Elliot Lee
8725269e0d Allow the user to pass --enable-mem-check and --enable-mem-profile at
Allow the user to pass --enable-mem-check and --enable-mem-profile at
compile time.
1998-06-07 17:37:15 +00:00
Tim Janik
8102e79daf feature check menu items in the compatibility code (this required me to
Sun Jun  7 14:34:31 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.c (gtk_item_factory_create_menu_entries): feature
        check menu items in the compatibility code (this required me to remove
        the "<check>" part from the menu item name, grrr).
1998-06-07 13:44:34 +00:00
Tim Janik
50a9ba1f26 further additions to fit the gimp's code. additions to the dumping code to
Sun Jun  7 10:53:02 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.h:
        * gtk/gtkitemfactory.c: further additions to fit the gimp's code.
        additions to the dumping code to feature GtkPatternSpec.
        even found a bug to fix in the original code ;)
1998-06-07 12:22:45 +00:00
Marius Vollmer
e47f60d702 New prototypes. New functions.
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
1998-06-07 12:00:55 +00:00
Marius Vollmer
110dac34df *** empty log message *** 1998-06-07 12:00:26 +00:00
Tim Janik
210cb3f5a0 support different types of callbacks, to maintain existing code.
Sun Jun  7 09:36:04 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.h:
        * gtk/gtkitemfactory.c: support different types of callbacks, to
        maintain existing code.


... changes to the item factory to ease support of the gimp's code...
1998-06-07 07:52:26 +00:00
Tim Janik
cd8e439b9b remove these files, we got gtkaccelgroup.[ch] now. 1998-06-07 07:05:12 +00:00
Tim Janik
a391196ba5 fixed an assertment.
Sat Jun  6 06:01:24 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_emitv): fixed an assertment.

        * gtk/makeenums.awk: a script to generate the GtkEnumValue arrays from,
        this should eventually be done by gentypeinfo.el somewhen.
        * gtk/gtkenumvalues.c: new generated file to hold GtkEnumValue arrays.

        * gtk/gtktypeutils.h: new function gtk_enum_values() to retrive all the
        enum values of an enum type.

        * gtk/gtk.defs:
        * gtk/gtkcurve.h:
        * gtk/gtkobject.h:
        * gtk/gtkprivate.h:
        * gtk/gtkwidget.h:
        * gtk/gtkenums.h:
        brought enum/flags definitions in sync, added a few more enum
        definitions for bindings and pattern matching.

        * some more macro and GtkType fixups in various places.

        * gdk/gdktypes.h (enum): added a new value GDK_AFTER_MASK, which is used
        as a key-release modifier for the binding system.

Fri Jun  5 06:06:06 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenu.h (struct _GtkMenu): removed GList*children, since it
        was a stale list pointer that is already present in GtkMenuShell.

        * gtk/gtkmenushell.h (struct _GtkMenuShellClass): added a signal
        GtkMenuShell::selection_done which is emitted after the menu shell
        poped down again and all possible menu items have been activated.

Thu Jun  4 02:20:42 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenushell.c (gtk_menu_shell_button_release): flush the x-queue
        before activation of the menuitem, so the menu is actually taken off the
        screen prior to any menu item activation.

        * gtk/gtkctree.c (gtk_ctree_get_row_data): allow function invokation
        for NULL nodes.

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: new function gtk_widget_stop_accelerator to stop
        the emission of the "add-accelerator" signal on a widget. this is
        usefull to prevent accelerator installation on certain widgets.

        * gtk/gtknotebook.c (gtk_notebook_menu_item_create): keep the menu
        labels left justified, by setting their alignment. stop accelerator
        installation for the menu items, since we use dynamic menus.

Wed Jun  3 06:41:22 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenufactory.c: adaptions to use the new accel groups. people
        should *really* use GtkItemFactory. this is only for preserving source
        compatibility where possible, use of GtkMenuFactory is deprecated as of
        now.

        * gtk/gtkobject.h (gtk_object_class_add_user_signal): new function
        to create user signals of type GTK_RUN_NO_RECURSE. don't know why i
        missed this possibility when i added gtk_object_class_add_user_signal
        in late january.

        * gtk/gtkmain.c (gtk_init): ignore subsequent function calls.

Sun May 31 07:31:09 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccelgroup.h:
        * gtk/gtkaccelgroup.c: new implementation of the accelerator concept.

        * gtk/gtkaccellabel.h:
        * gtk/gtkaccellabel.c: new widget derived from GtkLabel whitch features
        display of the accelerators associated with a certain widget.

        * gtk/gtkitemfactory.h:
        * gtk/gtkitemfactory.c: new widget, item factory with automatic rc
        parsing and accelerator handling.

        * gtk/gtkmenu.c (gtk_menu_reposition): new function to care for
        positioning a menu.
        (gtk_menu_map): removed the allocation code.
        (gtk_menu_size_allocate): care for redrawing of children and resize
        our widget->window correctly.
        (gtk_menu_key_press): feature the new accelerator groups.

        * gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): reposition the
        submenu if neccessary.

        * gtk/gtkmenuitem.c:
        * gtk/gtkcheckmenuitem.c:
        * gtk/gtkradiomenuitem.c: use GtkAccelLabel in the *_new_with_label()
        function variants.

        * gdk/gdk.c:
        (gdk_keyval_from_name):
        (gdk_keyval_name): new functions for keyval<->key-name associations.
        (gdk_keyval_to_upper):
        (gdk_keyval_to_lower):
        (gdk_keyval_is_upper):
        (gdk_keyval_is_lower): new functions to check/translate keyvalues with
        regards to their cases.

Wed May 27 00:48:10 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_class_path): new function to calculate a
        widget's class path.
        (gtk_widget_path): new function to calculate a widget's name path.

        * gtk/gtkrc.c: newly introduced GtkPatternSpec structures to speed up
        pattern matching, features reversed pattern matches.
1998-06-07 06:48:56 +00:00
Manish Singh
f522f36dd1 Commented out the MEM_PROFILE and MEM_CHECK from gmem.c, causing problems
with GdkImages.

Updates some .cvsignores

-Yosh
1998-06-06 21:16:57 +00:00
Elliot Lee
bcecbbd1be Add \n's on the end of g_prints in the mem profiling code.
Add \n's on the end of g_prints in the mem profiling code.
1998-06-05 21:00:15 +00:00
rhlabs
895acc9f97 Set package version to 1.0.4 in anticipation of upcoming release.
Dr Mike
1998-06-04 16:04:09 +00:00
BST 1998 Tony Gale
68935c790b New files to automagically extract code examples from the tutorial.
Thu Jun  4 12:12:11 BST 1998  Tony Gale  <gale@gtk.org>

        * examples/extract.sh, examples/extract.awk:
          New files to automagically extract code examples from the
          tutorial.
1998-06-04 11:15:55 +00:00
Lars Hamann
7c8ae8a5f5 reversed test sequence for GTK_WIDGET_CAN_FOCUS and GTK_IS_CONTAINER 1998-06-02 19:32:33 +00:00
BST 1998 Tony Gale
047e9fcf1a minor changes to support auto extraction of example code
Tue Jun  2 13:04:06 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml: minor changes to support auto
          extraction of example code
1998-06-02 12:08:14 +00:00
Jay Painter
57967d9a98 Added function gtk_clist_swap to swap two rows in a clist; I also have
finally fixed pixmap clipping so pixmaps are always cliped to the row.
1998-06-02 02:51:46 +00:00
Tim Janik
88e84f52dd wrote a comment describing why a hash node's key should not also get
Mon Jun  1 04:43:27 1998  Tim Janik  <timj@gtk.org>

        * ghash.c (g_hash_table_insert): wrote a comment describing why
        a hash node's key should not also get replaced when overriding
        previous entries.

Tue May 26 18:30:06 1998  Tim Janik  <timj@gtk.org>

        * glib.h (g_string_sized_new): new function to controll the preallocated
        size of a GString.

        * glib.h (g_strreversed): new function to reverse a string.
1998-06-02 01:11:17 +00:00
BST 1998 Tony Gale
8a6a8c7bc3 Update of Italian Tutorial to Tutorial of 24th May, from Daniele Canazza
Mon Jun  1 12:47:56 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut_it.sgml: Update of Italian Tutorial
          to Tutorial of 24th May, from Daniele Canazza <dcanazz@tin.it>
1998-06-01 11:53:08 +00:00
BST 1998 Tony Gale
7953813453 - new section on Events - change all delete_event callbacks to include a
Fri May 29 13:53:57 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
          - new section on Events
          - change all delete_event callbacks to include
            a GdkEvent parameter
          - clean up the formatting

        * examples - helloworld.c, helloworld2.c, notebook.c,
          packbox.c, pixmap.c, progressbar.c, radiobuttons.c,
          rulers.c, table.c, wheelbarrow.c: change all delete_event
           callbacks to include a GdkEvent parameter.
1998-05-29 12:43:18 +00:00
Federico Mena Quintero
99fdc828eb New enumeration for the "mode" field of crossing events. (struct
1998-05-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdk/gdktypes.h (GdkCrossingMode): New enumeration for the "mode"
	field of crossing events.
	(struct _GdkEventCrossing): Added the following fields: time, x,
	y, x_root, y_root, mode, focus, state.

	* gdk/gdk.c (gdk_event_translate): Fill in the new fields of the
	crossing event structure.

	* gtk/gtkfeatures.h (GDK_HAVE_FULL_CROSSING_EVENT): Annotate
	changes to the crossing event structure.
1998-05-27 02:01:40 +00:00
Radek Doulik
d6d54509d3 include gdkx.h always (for GDK_ROOT_WINDOW)
Tue May 26 15:51:28 1998  Radek Doulik  <gis@academy.cas.cz>

	* gdk/gdk.c: include gdkx.h always (for GDK_ROOT_WINDOW)
1998-05-26 13:54:38 +00:00
Elliot Lee
bd191b6537 Revert, as per Owen's request 1998-05-25 02:41:36 +00:00
Elliot Lee
ab37cadbfe Make GtkEditable use signals instead of calling klass->... for stuff. Could someone look at the get_chars routine to see how to return the value properly? 1998-05-24 20:56:35 +00:00
BST 1998 Tony Gale
4a6a72fe6c - GtkTooltips, update to current API - change all 'gpointer *data' to
Sun May 24 12:11:38 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml:
           - GtkTooltips, update to current API
           - change all 'gpointer *data' to 'gpointer data'
           - other minor changes
1998-05-24 11:23:04 +00:00
Owen Taylor
23919bb08c Bombo out with a moderately helpful message if detection of X libraries
Sat May 23 21:54:05 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in (LDFLAGS): Bombo out with a moderately
	  helpful message if detection of X libraries fails.
1998-05-24 02:48:09 +00:00
Owen Taylor
53d06396b8 Locate child at (border_width,border_width), not
Sat May 23 17:48:58 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkeventbox.c (gtk_event_box_size_allocate):
        Locate child at (border_width,border_width), not
	(2*border_width,2*border_width). [ The border is _outside_
	widget->window ]

	* gdk/gdk.[ch]: added gdk_screen_width_mm/gdk_screen_height_mm
	  functions. [From: Alexander Larsson <alla@lysator.liu.se> ]
1998-05-23 21:55:40 +00:00
Arturo Espinosa
fdd65ddef3 Oops. Commited a file I should not have. Revert change 1998-05-22 23:48:02 +00:00
Miguel de Icaza
d0f3668232 Define GTK_HAVE_RC_SET_IMAGE_LOADER, to be used in gnome-libs
1998-05-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtk/gtkfeatures.h.in: Define GTK_HAVE_RC_SET_IMAGE_LOADER, to be
	used in gnome-libs
1998-05-22 23:43:03 +00:00
Elliot Lee
63596d22ae Fix size_allocate to pass on to the child even if child isn't visible.
Fix size_allocate to pass on to the child even if child isn't visible.
Also locate child at (border_width, border_width) not (0,0)
1998-05-22 21:33:44 +00:00
Owen Taylor
0e5ab967d5 Changed log 1998-05-22 07:09:15 +00:00
Owen Taylor
579856439b Added style_set handler.
Fri May 22 03:02:40 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkhandlebox.c: Added style_set handler.

Fri May 22 02:55:57 1998  Owen Taylor  <otaylor@gtk.org>
 [ From: Chris Lahey  <clahey@umich.edu> ]

	* gtk/gtkeditable.c, gtk/gtkeditable.h,
	  gtk/gtktext.c, gtk/gtkentry.c: Added get_position,
	  and set_position functions to get and set the cursor position.

        * gtk/gtkeditable.c: Restored "insert_text" and "delete_text" to
	  signal status. Make GtkText do user-controlled insertion
	  and deletion through the Editable widget so that these
	  signals are properly emitted.

	* gtk/gtkentry.c: Changed gtk_entry_set_visibility to
	  display asterisks instead of empty space when visible = FALSE)
1998-05-22 07:07:11 +00:00
CEST 1998 Paolo Molaro
bf874e967e use GTK_TYPE_GDK_EVENT in (un)?select_row signal.
Fri May 22 08:51:10 CEST 1998  Paolo Molaro <lupus@debian.org>

	* gtk/gtkclist.c: use GTK_TYPE_GDK_EVENT in (un)?select_row
	signal.
1998-05-22 06:55:20 +00:00
Elliot Lee
781ff62d7a clog ent for changes 1998-05-21 21:09:19 +00:00
Elliot Lee
47c47914d6 I should have named it gtk_rc_set_image_loader() initially - fixed 1998-05-21 19:26:19 +00:00
Elliot Lee
cefd52f52f Allow user to set a custom image loading routine for loading bg_pixmap's
Allow user to set a custom image loading routine for loading bg_pixmap's specified in the
gtkrc's.
1998-05-21 19:24:01 +00:00
Owen Taylor
aed9cf77fa Use pthread_attr_init() as a test function, since most of the rest of
Tue May 19 23:41:04 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in: Use pthread_attr_init() as a test function,
	since most of the rest of -lpthread is macros on DU4.

Mon May 18 22:14:39 1998  Owen Taylor  <otaylor@gtk.org>
(Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp> : gtk-joke-980517-0.patch)

	* gutils.c: Restored a missing prototype for g_vsprintf.
1998-05-20 03:41:28 +00:00
Tim Janik
2abec112dc conditionally define NULL, FALSE and TRUE. (g_mem_chunk_create): new
Wed May 20 05:02:26 1998  Tim Janik  <timj@gtk.org>

        * glib.h: conditionally define NULL, FALSE and TRUE.
        (g_mem_chunk_create): new convenience macro as a short hand for
        g_mem_chunk_new().
        (g_chunk_free): new convenience macro to be consistent with g_chunk_new.
1998-05-20 03:31:30 +00:00
Elliot Lee
eb3e74cae9 Add GDK_SUBSTRUCTURE_NOTIFY_MASK
Add GDK_SUBSTRUCTURE_NOTIFY_MASK

Fixed GDK_DESTROY handling WRT GnomeRootwin widget.
1998-05-19 22:33:24 +00:00
Elliot Lee
6a322e11b2 gdk_region_get_clipbox() lets you get a rectangle around the region.
gdk_region_get_clipbox() lets you get a rectangle around the region.
1998-05-19 16:17:00 +00:00
Paolo Molaro
4d3f6feb37 Tue, 19 May 1998 11:51:02 +0200 Paolo Molaro <lupus@debian.org>
* added generic functions for completion in glib.
	* used the above functions in the gtkcombo widget.
1998-05-19 10:17:31 +00:00
Elliot Lee
abce966642 entry for previous change 1998-05-18 22:36:05 +00:00
Elliot Lee
67baa4b4a6 Allow GTK_DEBUG=signals - VERY useful ;-)
Allow GTK_DEBUG=signals - VERY useful ;-)
1998-05-18 22:34:43 +00:00
Elliot Lee
75650b4e96 Forgotten entry for visibility_notify_event
Forgotten entry for visibility_notify_event
1998-05-18 16:23:29 +00:00
Tim Janik
c174981e0b changed "proximity-in-event", "drop-data-available-event",
Mon May 18 04:01:41 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_class_init): changed "proximity-in-event",
        "drop-data-available-event", "drop-enter-event" and "drop-leave-event"
        to be of runtype GTK_RUN_LAST.

        * gtk/gtkcontainer.c (gtk_container_class_init): likewise for
        "need-resize".

        * gtk/gtktipsquery.c (gtk_tips_query_class_init): likewise for
        "widget-selected".
1998-05-18 04:31:03 +00:00
Tim Janik
04a70261a4 provide usefull default specifications for identifier_spec and
Sun May 17 10:48:27 1998  Tim Janik  <timj@gtk.org>

        * gscanner.c (g_scanner_unexp_token): provide usefull default
        specifications for identifier_spec and symbol_spec.

        * glib.h: new functions g_slist_nth_data and g_list_nth_data to return
        the data of the nth element in the list.
1998-05-17 11:35:55 +00:00
Tim Janik
9256ac8a62 quiet the compiler about uninitialized gc. 1998-05-16 07:31:06 +00:00
Tim Janik
5aa450f97b g_strdup() the text retrived from GtkEntry. only intercept the Tab key if
Sat May 16 09:04:32 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkfilesel.c (gtk_file_selection_key_press): g_strdup() the
        text retrived from GtkEntry. only intercept the Tab key if there
        was some text to complete.
1998-05-16 07:22:00 +00:00
Owen Taylor
dc93f21ffe Basic thread-awareness:
Fri May 15 21:16:54 1998  Owen Taylor  <otaylor@gtk.org>

	Basic thread-awareness:

	* acconfig.h configure.in: New option --with-threads=[yes/posix/no]

	* gdk/Makefile.am gdk/gdkthreads.c: Added new functions
	gdk_threads_[init/enter/leave] for applications, plus
	gdk_threads_wake to wake the mainloop thread out of
	the select().

	* gtk/Makefile.am: gtk/testthreads.c: Test program for threads
1998-05-16 02:14:09 +00:00
Owen Taylor
457148333e Basic thread-awareness:
Fri May 15 21:16:54 1998  Owen Taylor  <otaylor@gtk.org>

	Basic thread-awareness:

	* acconfig.h configure.in: New option --with-threads=[yes/posix/no]

	* gdk/Makefile.am gdk/gdkthreads.c: Added new functions
	gdk_threads_[init/enter/leave] for applications, plus
	gdk_threads_wake to wake the mainloop thread out of
	the select().

	* gtk/Makefile.am: gtk/testthreads.c: Test program for threads

Fri May 15 12:08:48 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/testgtk.c (list_clear): Account for the fact
	that gtk_list_clear_items is not inclusive. (Clears
	[start, end))
1998-05-16 02:13:12 +00:00
Manish Singh
123e299bcf ignore furry autogened files
-Yosh
1998-05-16 01:56:43 +00:00
Manish Singh
c71c5f6a9e bye bye autogenerated file
-Yosh
1998-05-15 23:07:59 +00:00
Tim Janik
a7c7158c7b removed sputious va_end(args) that for some reason didn't produce a
Fri May 15 22:31:49 1998  Tim Janik  <timj@gtk.org>

        * gscanner.c (g_scanner_unexp_token): removed sputious va_end(args) that
        for some reason didn't produce a compiler wrning on my machine (is
        va_end undefined for i386?).
1998-05-15 22:25:38 +00:00
rhlabs
5ed260f03e Move to v1.1 1998-05-15 20:08:30 +00:00
rodo
d6c6ad105f include gdkkeysyms.h always
Fri May 15 12:31:27 1998  rodo  <doulik@karlin.mff.cuni.cz>

	* gdk/gdk.c: include gdkkeysyms.h always
1998-05-15 10:57:59 +00:00
rodo
3d6d886c6a replaced some snprintf with g_snprintf
Fri May 15 12:32:08 1998  rodo  <doulik@karlin.mff.cuni.cz>

	* gscanner.c: replaced some snprintf with g_snprintf
1998-05-15 10:34:58 +00:00
Tim Janik
152ff34893 [binray incompatibility]
[binray incompatibility]


Fri May 15 00:56:59 1998  Tim Janik  <timj@gtk.org>

        * glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
        G_GNUC_NORETURN and G_GNUC_CONST.

        * gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
        (g_scanner_msg_handler): "\n" at end of line!
        (g_scanner_foreach_symbol): new function to iterate over the symbol
        table (GScanner does value-wrapping).

Fri May 15 09:44:10 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
        the visibility_notify_event method and changed method order.
1998-05-15 08:09:18 +00:00
Tim Janik
10e187f2f6 chagelog fixups (yea there are even bugs in the changelog entries, fear!) 1998-05-14 21:16:43 +00:00
Tim Janik
004f0982e1 typedef gint gboolean; this is needed to provide portability with
Thu May 14 04:14:12 1998  Tim Janik  <timj@gtk.org>

        * glib.h: typedef gint gboolean;
        this is needed to provide portability with big-endian platforms (e.g.
        try sizeof(bool) for c++ on big-endians - it's 4).
        this is also needed to maintain some_union.d_gint==some_union.d_gboolean.
        plus, gint to gboolean casts and vice versa need to be possible without
        loss.

Thu May 14 03:04:43 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.c (gtk_type_free): new function to take care about
        freeing types.
        (gtk_type_set_chunk_alloc): new function to allow allocation of new
        types from a mem_chunk of certain size (n_chunks==0 indicates allocation
        thorugh g_malloc).

        * gtk/gtkobject.c (gtk_object_finalize): free an object through
        gtk_type_free().

        * gtk/gtkbutton.c (gtk_button_get_type): set chunk preallocation for
        GtkButtons to 16.
        * gtk/gtkmenuitem.c (gtk_menu_item_get_type): likewise (16).
        * gtk/gtklabel.c (gtk_label_get_type): likewise (32).
1998-05-14 21:13:18 +00:00
4
344a271704 gtk/gtkwidget.[ch] Added visibility_notify_event to GtkWidget
1998-05-14    <sopwith@moebuis.labs.redhat.com>

        * gtk/gtkwidget.[ch] Added visibility_notify_event to GtkWidget

Can you say "binary incompatible"? :-)
1998-05-14 18:01:35 +00:00
Owen Taylor
b05a8405fe Code that compiles is nice... let's try again. 1998-05-13 05:23:26 +00:00
Owen Taylor
40a521703d A few more GPOINTER_TO_UINT fixes.
Wed May 13 00:53:52 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktypeutils.c gtk/gtksignal.c gdk/gdkdnd.c: A few more
	  GPOINTER_TO_UINT fixes.
1998-05-13 05:11:42 +00:00
Owen Taylor
4283c9de4f A few more GPOINTER_TO_UINT fixes.
Wed May 13 00:53:52 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktypeutils.c gtk/gtksignal.c: A few more
	  GPOINTER_TO_UINT fixes.

	* gtk/gtksignal.c: Include <string.h> for memset.

Tue May 12 23:10:53 1998  Owen Taylor  <otaylor@gtk.org>
	(Maximilian Bisani <bisani@kawo2.rwth-aachen.de>: gtk-bisani-980320-0)

	* gtk/gtkvruler.c gtk/gtkhruler.c gtk/gtkruler.h:
	Cleanups, comments and the ability to have rulers with
	a reversed direction.
1998-05-13 04:59:38 +00:00
Owen Taylor
43dfe74c56 Fixed up a stat() that Sopwith missed when changing stat => lstat.
Tue May 12 19:37:55 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkrc.c (gtk_rc_parse_file): Fixed up a stat()
	that Sopwith missed when changing stat => lstat.

Tue May 12 19:19:29 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkinputdialog.c gtk/gtkgamma.c gtk/gtkrc.c
	  gtk/gtkcolorsel.c gtk/gtkclist.c gtk/testgtk.c: Use
	GPOINTER_TO_INT/GINT_TO_POINTER macros where appropriate.

	* gdk/gdk.c: Print sizeof() results
	as g_print("%ld", (glong)sizeof(foo)), to deal with
	sizeof() being long on Alpha's.

	* gtk/testgtk.c: include <string.h> for strlen

Tue May 12 19:22:58 1998  Owen Taylor  <otaylor@gtk.org>

 	* glib/glib.h: Added macros G[U]INT_TO_POINTER() and
	GPOINTER_TO_[U]INT for storing small integers integers
	inside pointers.

	* glib/testglib.c: Print sizeof() results
	as g_print("%ld", (glong)sizeof(foo)), to deal with
	size_t being long on Alpha's.
1998-05-13 00:24:57 +00:00
Elliot Lee
eae7b32f85 Use lstat() to tell when an rc file was modified, not stat(), because we
Use lstat() to tell when an rc file was modified, not stat(), because we
could be pointing symlinks around.
1998-05-12 22:11:56 +00:00
Owen Taylor
c9e78a1094 (James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
Tue May 12 16:54:15 1998  Owen Taylor  <otaylor@gtk.org>
	(James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)

	* glib.h gstring.c gmessages.c: Added some missing
	const to arguments.

	* gutils.c (g_strsignal.c): Added missing return statements.

Tue May 12 16:56:35 1998  Owen Taylor  <otaylor@gtk.org>
	(James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)

	* gtk/gtkbbox.h gtk/gtkcolorsel.h gtk/gtkvbbox.h:
	Changed #include "gtkfoo.h" to #include <gtk/gtkfoo.h>

	* gtk/gtkwindow.[ch]: Added const to gtk_window_set_wmclass

Tue May 12 15:16:10 1998  Owen Taylor  <otaylor@gtk.org>
	(From: Christopher James Lahey <clahey@umich.edu>)

	* gtk/gtkbutton.[ch] gtk/gtkenums.h gtk/gtktoolbar.[ch]
	  gtk/testgtk.c:

	Added 'relief' for buttons - they can be either GTK_RELIEF_NORMAL
	(old style), or GTK_RELIEF_NONE - no relief in the NORMAL
	state. Added gtk_toolbar_{set,get}_button_relief, which set/get
	the default relief for the toolbars buttons. Added an
	toggle for the toolbar test in testgtk.c.
1998-05-12 21:30:52 +00:00
Manish Singh
fe6ef6c07a Add gmessages.c to Makefile
-Yosh
1998-05-12 10:04:05 +00:00
Owen Taylor
e0498db360 Rewritten and hopefully improved.
Tue May 12 00:24:59 1998  Owen Taylor  <otaylor@gtk.org>

	* docs/gtk-config.1: Rewritten and hopefully improved.

Mon May 11 20:26:39 PDT 1998 Manish Singh <yosh@gimp.org>

	* docs/Makefile.am
	* docs/gtk-config.1: added man page for gtk-config by Ben Gertzfield
1998-05-12 04:26:26 +00:00
Owen Taylor
906b1feab3 Moved g_error, g_warning, g_message and g_print from gutils.c to new file
Mon May 11 21:11:54 1998  Owen Taylor  <otaylor@gtk.org>

	* gutils.c gmessages.c: Moved g_error, g_warning, g_message and
	g_print from gutils.c to new file gmessages.c, to avoid having to
	include <unistd.h> in gutils.c which was causing problems for the
	g_strsignal implementation on FreeBSD boxes.
1998-05-12 03:52:55 +00:00
Federico Mena Quintero
2fa59370f7 The commit to the stable branch is on its way...
1998-05-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkpreview.c (gtk_preview_realize): Create the window using
	GtkPreview's visual and colormap, otherwise things can BadMatch.

	* gtk/testgtk.c (create_color_preview):
	(create_gray_preview): Removed pushing/popping of visual/colormap
	now that GtkPreview does things correctly.

	* gtk/gtkcolorsel.c (gtk_color_selection_draw_wheel_frame):
	(gtk_color_selection_draw_wheel): Pick the style from the correct
	place (the colorsel->wheel_area widget) so that the GCs will match
	with where we are going to paint to.

	* gtk/testgtk.c (create_color_selection): Removed pushing/popping
	of visual/colormap now that GtkColorSelection does things the
	right way.
1998-05-12 03:15:45 +00:00
Owen Taylor
62f865ee09 changed log 1998-05-12 01:02:56 +00:00
Owen Taylor
962386fb82 Use the previously unused window->need_resize flag to mark if a window's
Mon May 11 21:04:51 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkwindow.c (gtk_real_window_move_resize): Use the
	previously unused window->need_resize flag to mark if a window's
	descendents changed size while the window was not visible. In this
	case, when the window becomes visible, we reallocate everything,
	since we didn't keep track of what actually changed.

	(Fixes bug where changing the popdown strings of a
	combo to something of the same length caused them to
	blank out, as reported by Todd Dukes <tdukes@ibmoto.com>)
1998-05-12 01:02:22 +00:00
Tim Janik
075cb4320d [security audit by Alan Cox]
Tue May 12 02:31:57 1998  Tim Janik  <timj@gtk.org>

        [security audit by Alan Cox]

        * gtk/gtkobject.c (gtk_object_get_arg_type): check for arg_name to not
        exceed maximum assumed size.

        * gtk/gtkmenufactory.c (gtk_menu_factory_create): check that `path' does
        not exceed maximum assumed size.
        (gtk_menu_factory_remove): likewise.
        (gtk_menu_factory_find_recurse): likewise.
1998-05-12 00:34:28 +00:00
Tim Janik
f15bd558ab queue the idle_sizer with GTK_PRIORITY_INTERNAL - 1, so widgets get first
Tue May 12 00:21:33 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_queue_resize): queue the idle_sizer with
        GTK_PRIORITY_INTERNAL - 1, so widgets get first resized and then
        redrawn if that is still neccessary. don't allow queueing of already
        destructed objects.
        (gtk_widget_idle_sizer): proccess the resize queue in a save manner, so
        widgets which are in the queue can be destroyed savely, handle
        requeueing properly.
        (gtk_widget_idle_draw): proccess the redraw queue in a save manner, so
        widgets which are in the queue can be destroyed/unrealized savely.
1998-05-11 22:32:52 +00:00
BST 1998 Tony Gale
387379e6c4 add question on multi-threading, minor URL cleanups.
Mon May 11 17:54:44 BST 1998 Tony Gale  <gale@gtk.org>

        * gtkfaq.sgml: add question on multi-threading,
          minor URL cleanups.
1998-05-11 17:01:11 +00:00
Tim Janik
ad137948b9 compilation fixups 1998-05-11 15:30:05 +00:00
Tim Janik
e8df8ce17b preserve automake CFLAGS.
Mon May 11 09:56:45 1998  Tim Janik  <timj@gtk.org>

        * configure.in (cflags_set): preserve automake CFLAGS.

        * Makefile.am: fully rename the created libraries to libgtk-1.1.la
        and libgdk-1.1.la. this means we need to change certain portions of
        the Makefile.am on major/minor version bumps.

        * ltmain.sh: the -release option is not required anymore.

        * gtk/gtkobject.h (gtk_trace_referencing): compile time check the type
        of the first argument to be of type GtkObject. unconditionally compile
        this function. removed __GNUC__ dependancy of the gtk_object_ref and
        gtk_object_unref macro wrappers for this function.

Mon May 11 09:53:43 1998  Tim Janik  <timj@gtk.org>

        * configure.in: preserve automake CFLAGS.

        * Makefile.am: fully rename the created library to libglib-1.1.la.
        this means we need to change certain portions of the Makefile.am on
        major/minor version bumps.

        * ltmain.sh: the -release option is not required anymore.

        * glib.h: provide G_GNUC_FUNCTION and G_GNUC_PRETTY_FUNCTION to
        avoid conditionals. unconditionally define NULL, TRUE, FALSE, MAX,
        MIN, ABS and CLAMP, these macros might be screwed from other headers.
1998-05-11 08:31:16 +00:00
Tim Janik
01003779e9 new file, gdatasets implement the object data mechanism from GtkObject. a
Mon May 11 01:44:10 1998  Tim Janik  <timj@gtk.org>

        * gdataset.c: new file, gdatasets implement the object data
        mechanism from GtkObject. a generic data pointer is associated with
        a certain location and a key id.

Mon May 11 02:31:19 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkobject.h:
        * gtk/gtkobject.c:
        (gtk_object_data_try_key):
        (gtk_object_data_force_id): these are now macros substituting the old
        functions. we just use the corresponding g_dataset_* functions for
        key->id associations. (this is to assure unique key<->id associations).
1998-05-11 00:48:44 +00:00
Stefan Jeske
cb12593d57 Started documentation of GtkCTree. 1998-05-10 17:05:39 +00:00
Tim Janik
218e61990c now what is this? whoi left a '>' in line 628??? 1998-05-10 07:55:48 +00:00
Tim Janik
86be352e82 bugfixes, cleanups and macro reduction, nothing major though ;) 1998-05-10 07:44:43 +00:00
Tim Janik
315affdfcb minor cleanups and merges 1998-05-10 05:19:00 +00:00
Owen Taylor
f75d8b0c23 Try to figure out if this is Digital Unix and we need -std1 to get the
Sat May  9 20:11:20 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in (LIBS): Try to figure out if this
	is Digital Unix and we need -std1 to get the
	right prototypes.

Sat May  9 20:08:12 1998  Owen Taylor  <otaylor@gtk.org>

	* glib/gmem.c: Experimentally restore GMemChunk
	to its primeval state - where mem areas are
	freed incrementally instead of searching the tree
	every time a mem area is completely empty. Also,
	always keep one mem chunk around. (Reduced calls
	to malloc() a lot, but doesn't really improve
	performance significiantly)

Fri May  8 21:31:50 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_queue_draw): Free the
	draw-queue when we are done.

	(gtk_widget_queue_draw/_queu_resize): Always return
	FALSE and avoid having two idles at the same time.

Fri May  8 21:04:00 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c: Various fixes to make sure cache
	lines are freed if line_start_cache doesn't point to the
	beginning of the cache.

Thu May  7 09:44:22 1998  Owen Taylor  <otaylor@gtk.org>

	* style_set improvements for GtkText and GtkEntry

Tue May  5 19:49:27 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkpixmap.c: Patches from Gordon Matzigkeit
	to speed things up and remove code duplication.

	Reintegrated buffer overflow patches, and added
	some extra paranoia.

Tue May  5 17:04:14 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdk.c (gdk_event_translate): A guint * was
	being passed where X expected a Keysym *, and
	keysyms are long's on Alpha Linux. This was causing
	segfaults in Xlib, apparently because of alignment.
	(Bug located by Juergen Haas <haas@forwiss.uni-passau.de>)

Tue May  5 19:11:27 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkdrawingarea.c (gtk_drawing_area_realize): Always
	set GDK_EXPOSURE_MASK for DrawingAreas

Tue May  5 14:32:37 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkwidget.[ch]: removed gtk_widge_propagate_default_style
	(superceded by RC file reparsing capabilities)

	* gtk/gtkwindow.c: Add handling for _GDK_READ_RFCILES client
	events. (Shouldn't be sent to the InputOnly leader, which
	it is now by gdk_event_send_clientmessage_toall

	* gtk/testgtk.c: Added extra button to rcfiles test
	to send out _GDK_READ_RCFILES events.

Tue May  5 11:03:00 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkselection.c (gtk_selection_clear): Fixed
	reversed conditionals that caused segfault on some
	platforms.

Tue May  5 00:44:47 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkcontainer.c (gtk_container_set_focus_[hv]adjustment):
	cast to GTK_OBJECT for gtk_object_ref.
1998-05-10 02:46:20 +00:00
BST 1998 Tony Gale
aab3106abd update of Italian tutorial translation from Daniele Canazza
Sat May  9 16:30:33 BST 1998 Tony Gale  <gale@gtk.org>

        * docs/gtk_tut_it.sgml: update of Italian tutorial
          translation from Daniele Canazza <dcanazz@tin.it>
1998-05-09 15:35:18 +00:00
Tim Janik
9775962a96 new file used as template for new file to define macros indicating newly
Sat May  9 02:34:41 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkfeatures.h.in: new file used as template for
        * gtk/gtkfeatures.h: new file to define macros indicating newly
        introduced features, such as GTK_HAVE_SIGNAL_INIT.

        * gtk/gtksignal.c:
        (gtk_signal_emitv_by_name):
        (gtk_signal_emitv):
        new functions to emit signals with an already provided parameter set.
        (provided by Kenneth Albanowski <kjahds@kjahds.com>).
        (gtk_signal_real_emit): prototype changes, so this functions always
        gets its parameters and signal structure as arguments.
        (gtk_signal_emit): provide the signal structure and parameter list for
        gtk_signal_real_emit.
        (gtk_signal_emit_by_name): likewise.
1998-05-09 01:17:03 +00:00
Tim Janik
142c848308 reflect the presence of signal connections through unsetting
Sat May  9 00:03:12 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_handler_unref): reflect the presence of
        signal connections through unsetting GTK_CONNECTED.
        (gtk_signal_handler_insert): reflect the presence of signal connections
        through setting GTK_CONNECTED.
        (gtk_signal_real_emit): only check for handler emissions if the object
        has the GTK_CONNECTED flag set.
        (gtk_signal_handler_pending): don't check for pending handlers if the
        GTK_CONNECTED flag is not set for this object.

        * gtk/gtkobject.h (enum): new flag GTK_CONNECTED to indicate whether
        a GtkObject has signal handler connections.

        * gtk/gtkobject.c (gtk_object_real_destroy): only if GTK_CONNECTED is
        set for this object call gtk_signal_handlers_destroy().

        * gtk/gtktypeutils.h (GTK_TYPE_IS_A): deprecated macro, since it caused
        multiple processing of macro args.

        * gtk/gtktypeutils.c:
        * gtk/gtkobject.c:
        * gtk/gtkwidget.c:
        * gtk/gtksignal.c: reverted GTK_TYPE_IS_A back to gtk_type_is_a.
1998-05-08 23:20:48 +00:00
rhlabs
6e99903a4e Handle the -1.1 on libraries.
Is this really a good idea?  Isn't that what sonames are for?

-Marc
1998-05-07 18:33:29 +00:00
Tim Janik
1f455e53c0 asure that the type system has been initialized.
Thu May  7 19:03:50 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.c (gtk_type_unique): asure that the type system has
                been initialized.
1998-05-07 17:08:58 +00:00
Tim Janik
2934f4f58c allocate object data chunks through a global object data structure list.
Thu May  7 12:52:45 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkobject.c (gtk_object_set_data_by_id_full): allocate object
                data chunks through a global object data structure list. unlink
                        object data before invoking its destroy function.
                                (gtk_object_finalize): slight modification to allow usage of object
                                        data during object finalization.
1998-05-07 11:12:57 +00:00
Tim Janik
8460f39363 speedups speedups speedups....
this one is actually noticable on widget destruction.

Thu May  7 10:29:24 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_newv): suport middle dashes ('-') in
        signal names, e.g. "signal-name" is now an alias for "signal_name".
        (gtk_signal_handler_new): allocate handlers through a global handler
        structure list, that's faster than memchunks.
        (gtk_emission_new): allocate emissions through a global emission
        structure list, that's faster than memchunks.
1998-05-07 09:23:50 +00:00
Tim Janik
8b667441a3 ooops, fogot this on my last commit... 1998-05-07 07:45:04 +00:00
Tim Janik
38fc79fcfd macros to facilitate the printf/scanf format argument checking of gcc.
Thu May  7 08:17:28 1998  Tim Janik  <timj@gtk.org>

        * glib.h (G_GNUC_PRINTF):
        (G_GNUC_SCANF): macros to facilitate the printf/scanf format argument
        checking of gcc.

        * gstring.c: const corrections, string!=NULL checks at function entry.
        (g_string_down): new function for tolower(3) conversion.
        (g_string_up): new function for toupper(3) conversion.

        * gutils.c: const corrections.
        (g_strdown): g_string_down() counterpart.
        (g_strup): g_string_up() counterpart.

        * gscanner.c (g_scanner_unexp_token):
        (g_scanner_error):
        (g_scanner_warn): new functions to let a scanner put out warnings
        or errors, especially to react on unexpected tokens.

        * gslist.c:
        (g_slist_index): find out about about the position of a
        certain data pointer.
        (g_slist_position): find out about about the position of a
        certain node.

        * glist.c:
        (g_list_index): find out about about the position of a
        certain data pointer.
1998-05-07 07:38:21 +00:00
Tim Janik
39ff37dc74 postfix -lg* libraries with LT_RELEASE.
Thu May  7 05:14:19 1998  Tim Janik  <timj@gtk.org>

        * gtk-config.in (--libs): postfix -lg* libraries with LT_RELEASE.

        * ltmain.sh: added a new commandline flag -postfix similar to -release,
        but will immediately change the library name.

        * gdk/Makefile.am:
        * gtk/Makefile.am: specify -postfix and -version-info

        * configure.in: version bump to 1.1.0. added GTK_INTERFACE_AGE and
        GTK_BINARY_AGE. calculate LT_* variables for libtool.
1998-05-07 04:04:15 +00:00
Federico Mena Quintero
91d3176504 Oops, missed this in the last commit. The commit to the stable branch is underway.
1998-05-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c (draw_row): Fixed incorrect painting of row
	background (fg_set -> bg_set confusion).
1998-05-06 23:41:18 +00:00
Arturo Espinosa
513a06e966 ChangeLog 1998-05-06 23:38:10 +00:00
Stefan Jeske
1afc96a702 Removed code that caused an endless loop.
* gtk/testgtk.c (unselect_all): Removed code that caused an
	endless loop.
1998-05-06 08:22:31 +00:00
Tim Janik
518a8a9c4e reimplemented the signal storage system to use a linear array rather than
Wed May  6 02:16:34 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c: reimplemented the signal storage system to use a
        linear array rather than a hash table.
        be carefull *not* to keep any GtkSignal pointers across invokations
        of gtk_signal_next_and_invalidate() and therefore gtk_signal_new[v]().
        general code cleanups, made all allocations through memchunks.
        (gtk_signal_lookup): we now do the lookup of signals through a key_id
        for the signal names to avoid multiple hashing of the signal name on
        lookups for the several hirarchy levels of an object.

Tue May  5 15:33:27 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_init): added gtk_signal_init() to avoid repeatedly
        checking for signal initialization in gtksignal.c.

        * gtk/gtktypeutils.c (TYPE_NODES_BLOCK_SIZE): reseted this to 200 after
        a long debugging period ;)

Mon May  4 00:30:11 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.h (GTK_TYPE_IS_A): new macro to speedup
        gtk_type_is_a().
        * gtk/gtktypeutils.c: reimplemented the type storage system to use a
        linear array rather than a hash table. it actually speeded up testgtk
        for a *considerable* amount. be carefull *not* to keep any GtkTypeNode
        pointers across invokations of gtk_type_node_next_and_invalidate() and
        therefore gtk_type_unique()!

        * gtk/gtkobject.h (GTK_IS_OBJECT_CLASS): new macro to test for the
        inheritance of a class pointer.
        (GTK_OBJECT): modifications for speedups.
        (GTK_IS_OBJECT): likewise.
        (GTK_OBJECT_CLASS): likewise.
        (suggested by owen).

        * gtk/gtkcontainer.h (GTK_IS_CONTAINER_CLASS): new macro.

        * gtk/gtkwidget.h (GTK_IS_WIDGET_CLASS): new macro.

        * gtk/gtk.defs (GtkTooltips): define GtkTooltips as object not as boxed,
        since its derivation changed 4 month ago ;(. showed up with the unique
        type name checking code in gtk_type_unique().

        * random guint->GtkType and macro fixups.
1998-05-06 01:43:56 +00:00
Stefan Jeske
c3e04d86ec New function to wrap XSetDashes; modified gtkctree.c to use it.
* gdk/gdkgc.c gdk/gdk.h gtk/gtkctree.c (gdk_gc_set_dashes):
	New function to wrap XSetDashes; modified gtkctree.c to use it.
1998-05-05 15:00:12 +00:00
Manish Singh
7d8df9e60a Feature request ;)
-Yosh
1998-05-05 07:45:59 +00:00
Federico Mena Quintero
12fd81efd2 Added $x_libs in the other_libraries field in the check for
1998-05-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* configure.in: Added $x_libs in the other_libraries field in the
	check for XShapeCombineMask.
1998-05-04 22:13:02 +00:00
rhlabs
abf4f510de Bump version to 1.0.1 in anticipation... 1998-05-04 18:25:37 +00:00
Stefan Jeske
a92832509d New function (just like gtk_clist_moveto).
* gtk/gtkctree.[ch] (gtk_ctree_scroll_to): New function (just like gtk_clist_moveto).
1998-05-04 09:40:35 +00:00
Owen Taylor
2780a82a0e One or two trivial changes from the gtk-1-0 branch. 1998-05-04 02:59:52 +00:00
Owen Taylor
d142827b34 Merges from the gtk-1-0 branch
Sun May  3 14:55:34 1998  Owen Taylor  <otaylor@gtk.org>

	* docs/gtkfaq.sgml (CPPFLAGS): Added a FAQ entry about
	"glibconfig.h" and another about writing another IRC
	client.

Sat May  2 00:14:05 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkpreview.c (gtk_trim_cmap): Make sure the
	parameters to log are doubles. Digital Unix apparently
	is missing the argument in its prototype.

Sun May  3 19:04:46 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtklabel.c (gtk_label_state_changed): Don't
	force a clear until the widget is actually on
	screen.

Hopefully nothing else though CVS think there are a whole
bunch more changed files.
1998-05-04 02:10:36 +00:00
Owen Taylor
4851efe296 configure.in acheader.h gdk/gdkwindow.c Check for Shape extension both on
Sun May  3 13:38:22 1998  Owen Taylor  <otaylor@gtk.org>

	* configure.in acheader.h gdk/gdkwindow.c
	Check for Shape extension both on the client and server
	side. (And, more importantly, check for the shape extension
	so we may include -lXext even when compiling with --disable-xshm)

	Don't set override_redirect on all shaped windows. It isn't
	necessary.

	* gdk/gdkwindow.c: Set ->colormap to NULL for root
	and foreign windows. Use this to check if we
	need to get the colormap from X.

Fri May  1 22:32:47 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkbutton.c (gtk_button_paint): Draw the areas
	between the default and the button always in GTK_STATE_NORMAL.

	* gtk/gtkrange.c (gtk_range_style_set): Added a style_set
	callback.

Fri May  1 16:40:57 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpmp[_d]):
	  Fix a buffer overflow on pixmaps that claim to have
	  more than 31 characters per pixel.

	  (gdk_pixmap_read_string): Don't wrap around strings longer
 	  than half of address space ;-)

	* gtk/gtk[vh]ruler.c gtk/gtkinputdialog.c: Expand some buffers
	that were used for printing integers.

	* */* (almost):

	Style: All
	  int foo () { ... }
	changed to
	  int foo (void) { ... }

^^^^^^^ This is why some many files changed

	Even where there were proper prototypes elsewhere.

	* gdk/gxid.c (handle_claim_device): Some extra checks.
	It isn't safe against being fed bad X id's, but at
	least it should be safe against deleting all your
	files.
1998-05-03 22:41:32 +00:00
Tim Janik
c0b9232351 hmmmm, corrections? 1998-05-03 20:48:15 +00:00
Tim Janik
5c9af6b5aa new function to set the adjustments value without causing a current
Sun May  3 19:45:09 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkadjustment.c (gtk_adjustment_assimilate_value): new function
                to set the adjustments value without causing a current emission of
                        "value_changed" to be restarted.

                                * gtk/gtksignal.c: added new functions to retrive the number of
                                        existing emissions for a certain signal.
                                                (gtk_signal_n_emissions): new function.
                                                        (gtk_signal_n_emissions_by_name): new function.
1998-05-03 19:13:24 +00:00
Tim Janik
19bbe0557f new function to set the current focus_child of a container, does proper
Sun May  3 16:55:43 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c (gtk_container_set_focus_child): new function to
                set the current focus_child of a container, does proper referencing and
                        adjusts the vadjustment/hadjustment associated with the focus widget.

                                * gtk/gtkwidget.c (gtk_widget_grab_focus): set the focused child on
                                        containers via gtk_container_set_focus_child.

                                                * gtk/gtknotebook.c: modifications to use gtk_container_set_focus_child
                                                        where appropriate.

                                                                * gtk/gtkcontainer.c (gtk_container_remove): removed unsetting of focus
                                                                        child since not every child removal goes through this function (this
                                                                                showed up after gtk_container_set_focus_child() started to reference the
                                                                                        focus_child of a container).

                                                                                                * gtk/gtkwidget.c (gtk_widget_unparent): moved unsetting the focus_child
                                                                                                        of a container from gtk_container_remove into this place.
1998-05-03 15:45:08 +00:00
Tim Janik
2ca03393f5 added new functions to operate on intermediate function pointers.
Sat May  2 22:33:45 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c: added new functions to operate on intermediate
                function pointers. implemented incremental blocking.
                        (gtk_signal_disconnect_by_func): new function.
                                (gtk_signal_handler_block_by_func): new function.
                                        (gtk_signal_handler_unblock_by_func): new function
1998-05-02 20:48:49 +00:00
Owen Taylor
864a386300 merging owen's bug fix
Fri May  1 22:45:55 1998  Owen Taylor  <otaylor@gtk.org>

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_allocate):
                Always show the scrollbars when the policy is
                        GTK_POLICY_ALWAYS...
1998-05-02 19:01:33 +00:00
Tim Janik
d466bcb7a0 only emit "value_changed" if we really passed a new value.
Sat May  2 20:19:03 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkadjustment.c (gtk_adjustment_set_value): only emit
                "value_changed" if we really passed a new value.
                        (gtk_adjustment_changed): new function to emit the "changed" signal.
                                (gtk_adjustment_set_value): new function to emit the "value_changed"
                                        signal.
1998-05-02 18:35:23 +00:00
Tim Janik
998ac31096 do not just return if the combo-list is empty since that will cause the
Fri May  1 20:25:29 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcombo.c (gtk_combo_popup_list): do not just return if
                the combo-list is empty since that will cause the combo to operate
                        on a non existing GtkList window.
                                (gtk_combo_get_pos): provide the combo list with a usfull default
                                        height if empty.
                                                (gtk_combo_popup_button_press): grab the focus.
                                                        (gtk_combo_activate): grab the focus.
1998-05-02 04:20:55 +00:00
Lars Hamann
67c79cda67 removed unneeded GtkCTree::draw_lines (gtk_ctree_get_node_info): New
* gtkctree.[ch]: removed unneeded GtkCTree::draw_lines
(gtk_ctree_get_node_info): New funtion to get data of ctree row.
(draw_row): changed drawing order of tree lines, draw triangles
in case of GTK_CTREE_LINES_NONE.
1998-05-01 23:45:18 +00:00
rhlabs
c924b9be6f <raster@redhat.com>
<raster@redhat.com>

AHA! more bugs in the get_visual and get_colormap stuff.. guarateed to barf
if the gdk window you are querying is gdk's own gdk_root_window :) Added
checks to see if this window is infact the root window.... :)

now ee doesnt barf if you set the image as the bg.. :)
1998-05-01 23:18:21 +00:00
Owen Taylor
b0a28fdadd Further changes to the way the window is popped up so that it will be
Fri May  1 12:28:35 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkcombo.c: Further changes to the way the window
	is popped up so that it will be compatible with
	auto-scrolling in the future.
1998-05-01 19:39:27 +00:00
Owen Taylor
de210bbdec New function to reset the RC styles for a heirarchy
Fri May  1 12:06:43 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkwindow.[ch] (gtk_widget_reset_rc_styles): New
	function to reset the RC styles for a heirarchy

        Clear the window background if necessary in
	gtk_window_style_set.

	* gtk/gtkrc.[ch]: New function gtk_rc_reparse_all() which
	rereads all previously read RC files.

	* gdk/gdkwindow.c gdk/gdk.h: New function gdk_window_get_toplevels().
	(Should it just be called gdk_get_toplevels?)

	* gtk/testgtk.c: New test to reload RC files.
1998-05-01 16:15:39 +00:00
Tim Janik
61554862e6 ctree import 1998-05-01 13:20:55 +00:00
Tim Janik
befef270ab prefixed all clist flags with GTK_ to avoid name clashes. redefined
Fri May  1 13:57:36 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkclist.h:
                * gtk/gtkclist.c: prefixed all clist flags with GTK_ to avoid name
                        clashes. redefined GTK_CLIST_SET_FLAGS and GTK_CLIST_UNSET_FLAGS as
                                GTK_CLIST_SET_FLAG and GTK_CLIST_UNSET_FLAG to automatically add
                                        the GTK_ prefix (this solution involved less changes in the
                                                gtkclist.c code). added a GTK_CLIST_CONSTRUCTED flag to substitute
                                                        the mem_chunk==NULL test in gtk_clist_construct. merged in changes
                                                                from lars & stefan to support the derivation of GtkCtree.

                                                                        * gtkctree.h:
                                                                                * gtkctree.c:
                                                                                        initial import of a tree widget derived from gtkclist, courtesy
                                                                                                of Lars Hamann <lars@gtk.org> and Stefan Jeske <jeske@gtk.org>,
                                                                                                        it just damn rocks!


Fri May  1 10:05:44 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtklist.c (gtk_list_add): let gtk_list_append_items do the work
        for us.
        (gtk_list_insert_items):
        (gtk_list_remove_items_internal):
        (gtk_list_clear_items):
        remove a possible pointer grab, we might get thrown into a loop
        otherwise.
        (gtk_list_button_press): grab the pointer *before* selecting the child,
        because selection of items may cause the lists children to change,
        resulting in a grab release.
        (gtk_list_clear_items): use gtk_list_unselect_child() for unselection of
        children.
        (gtk_list_shutdown): remove all children from the list.
        (gtk_real_list_unselect_child):
        (gtk_real_list_select_child): *always* put our internal structures into
        sane state *before* signal emisions (i.e. list->selection updates prior
        to gtk_list_item_[de]select() calls).

        * gtk/gtkcombo.c (gtk_combo_init): adjust the scrollbar if the lists
        focused child walks out of the window.
        removed CAN_FOCUS for the combo arrow's button since it doesn't react
        to keyboard events ("clicked" connection is missing).
1998-05-01 13:16:49 +00:00
Owen Taylor
ce46df0b4b changed log 1998-05-01 04:55:34 +00:00
Owen Taylor
005626bd4d Fix up getting colormap for FOREIGN windows to go along with Raster's fix
Fri May  1 00:42:25 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkwindow.c (gdk_window_get_colormap): Fix up
	getting colormap for FOREIGN windows to go along with
	Raster's fix for visuals.
1998-05-01 04:55:13 +00:00
Owen Taylor
05bc6a5b36 Merged changes from gtk-1-0. Check ChangeLog for details. 1998-05-01 04:23:59 +00:00
rhlabs
e909f843f8 <raster@redhat.com>
<raster@redhat.com>

added 2 memebrs to struct _GdkWindowPrivate (at end) to paralell gtk 1.0
changes to keep the data structure the same size (otherwise harmless).
1998-04-30 23:57:15 +00:00
Owen Taylor
8850ce814d Allow the user to use the popup list like a menu.
Thu Apr 30 11:18:00 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkcombo.[ch]: Allow the user to use the popup list
	like a menu.

	* gtk/gtkmenuitem.c gtk/gtkitem.c: Moved enter/leave handlers
	to gtkitem.c so dragging can also work in lists.

	* gtk/gtklist.[ch]: Track child enter events and use
	those to allow dragging the selection.

Thu Apr 30 11:16:06 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c: Try enabling background pixmaps for editable text
	widgets.  There is a bit of flashing, but not too bad. If you
	don't want the flashing, you can always not set a background
	pixmap.

Wed Apr 29 15:46:13 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtktext.c: Fixed a bug where the drawn level
	was being messed up when the text was scrolled
	during a deletion.
1998-04-30 15:18:19 +00:00
Miguel de Icaza
32e8dc45b0 Random debugging fixed this bug: There is no need to set the ExposureMask
1998-04-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdk.c (gdk_event_translate): Random debugging fixed this
	bug:  There is no need to set the ExposureMask in the XGrabPointer
	(this caused DnD programs to crash).
1998-04-29 00:51:55 +00:00
Elliot Lee
187dbc0ce7 Try adding "ExposureMask" to the event mask during a drag, so that things
Try adding "ExposureMask" to the event mask during a drag, so that things
get redrawn.
1998-04-28 23:21:36 +00:00
Elliot Lee
9556bba1ba Someone has to make SOME backwards incompatible changes sometime. I
Someone has to make SOME backwards incompatible changes sometime. I
switched around the prev & next pointers in GList.

not. (Would this change make any functional difference? Discuss in a five
page paper. :-)

Actually, added g_list_position() - inverse of g_list_nth()
1998-04-28 00:24:34 +00:00
Owen Taylor
5647eeecf3 merging changes from owen:
Wed Apr 15 20:42:46 1998  Owen Taylor  <otaylor@gtk.org>

        * gtk/gtkpreview.c (gtk_preview_get_visuals): Make sure
        that when we are running with a non-installed colormap,
        in 8-bit pseudo-color, we actually are using the system
        visual. (Fixes *Bad Match* errors on Digital Unix machines
        with multiple 8-bit pseudo-color visuals)

-r HEAD and -r gtk-1-0 are in sync now!
1998-04-24 01:03:32 +00:00
Tim Janik
3e3c14e9ef changed ref_count field to be of type guint. added check for ref_count>0;
Fri Apr 24 01:29:04 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkaccelerator.h (struct _GtkAcceleratorTable): changed ref_count
                field to be of type guint.
                        * gtk/gtkaccelerator.c (gtk_accelerator_table_unref): added check for
                                ref_count>0;
                                        (gtk_accelerator_table_install): keep a per object list of accelerator
                                                tables that refer to this object.
                                                        (gtk_accelerator_table_remove): remove the accelerator table from the
                                                                per object list.
                                                                        (gtk_accelerator_table_clean): warn if there are any object references
                                                                                left in an accelerator table upon destruction.
                                                                                        (gtk_accelerator_tables_delete): new function to delete object
                                                                                                references from the accelerator tables associated with this object.

                                                                                                        * gtk/gtkwidget.c (gtk_widget_class_init): changed emission of
                                                                                                                GtkWidget::install_accelerator to GTK_RUN_LAST so the installation
                                                                                                                        of an accelerator can be prevented by gtk_signal_emit_stop().
                                                                                                                                (gtk_widget_real_destroy): call gtk_accelerator_tables_delete (),
                                                                                                                                        so there are no stale pointers in accelerator tables left.



this change is binary compatible, so just touch gtkaccelerator.h -r gtkwidget.h
1998-04-24 00:26:01 +00:00
Federico Mena Quintero
9546a9dc14 Remember whether the widget was visible before we unparent it.
1998-04-22  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkbin.c (gtk_bin_remove): Remember whether the widget was
	visible before we unparent it.
1998-04-23 04:26:20 +00:00
Tim Janik
f83adda582 ts ts ts, GList structures have a ->prev field as well!!! 1998-04-22 12:11:26 +00:00
Tim Janik
0dc21c5690 prepend the running_timeouts list with the tmp_list link itself, not with
Wed Apr 22 04:15:26 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_handle_current_timeouts): prepend the
                running_timeouts list with the tmp_list link itself, not with a new
                        GList structure pointing to our link. that would fill up memory and
                                causes the GList.data fields of the running_timeouts list to point to
                                        GList structures and not GtkTimeoutFunction structures which is a
                                                *really* bad thing.
                                                        (gtk_handle_current_idles): likewise (exchange "timout" with "idle" in
                                                                the above entry ;).
1998-04-22 02:20:50 +00:00
Tim Janik
57703d0170 new function ala gtk_radio_button_set_group. (gtk_radio_menu_item_init):
Sat Apr 18 22:18:12 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkradiomenuitem.h:
                * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_set_group): new function
                        ala gtk_radio_button_set_group.
                                (gtk_radio_menu_item_init): assure that we always have at least a group
                                        that points to self.

                                                * gtk/gtkradiobutton.c (gtk_radio_button_set_group): few cleanups and
                                                        added g_return_if_fail() statements.
                                                                (gtk_radio_button_init): assure that we always have at least a group
                                                                        that points to self.
1998-04-18 20:33:35 +00:00
Tim Janik
e3b303c212 nice to list ChangeLog.pre-1-0 in EXTRA_DIST isn't it? ;) 1998-04-17 01:10:37 +00:00
Tim Janik
9aab1c5e1b ChangeLog split up into ChangeLog.pre-1-0 and ChangeLog.
Fri Apr 17 03:05:05 1998  Tim Janik  <timj@gtk.org>

        * ChangeLog split up into ChangeLog.pre-1-0 and ChangeLog.
1998-04-17 01:07:36 +00:00
Tim Janik
c7c0e3d58d corrected a brace position (Damon Chaplin), which i got wrong when
Wed Apr 15 05:13:09 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtklabel.c (gtk_label_size_request): corrected a brace position
                (Damon Chaplin), which i got wrong when applying Damon's patch the last
                        time.
1998-04-15 04:00:45 +00:00
Miguel de Icaza
21bb83612d Fix the problem introduced by whoever thought that randomly changing ints
1998-04-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdkwindow.c (gdk_window_xid_at): Fix the problem introduced
	by whoever thought that randomly changing ints to unsigned int
	without reviewing the code was a good idea.  It is, btw not
	mentioned in the ChangeLog as usual, but I know it was not Elliot
	the culprit this time.
1998-04-15 02:15:36 +00:00
rhlabs
efd3aec503 file led_on2.xpm was initially added on branch themes. 1998-04-14 20:30:07 +00:00
rhlabs
d6084b0f36 file led_on1.xpm was initially added on branch themes. 1998-04-14 20:30:06 +00:00
rhlabs
c07afdb123 file led_off2.xpm was initially added on branch themes. 1998-04-14 20:30:05 +00:00
rhlabs
6f818654a0 file led_off1.xpm was initially added on branch themes. 1998-04-14 20:30:04 +00:00
rhlabs
af4350fc92 file btn3.xpm was initially added on branch themes. 1998-04-14 20:30:03 +00:00
rhlabs
d5b91db3ce file btn2.xpm was initially added on branch themes. 1998-04-14 20:30:02 +00:00
rhlabs
e093c42383 file btn1.xpm was initially added on branch themes. 1998-04-14 20:30:01 +00:00
rhlabs
e649afc0a8 file config was initially added on branch themes. 1998-04-14 20:30:00 +00:00
rhlabs
7aa5779181 file theme2_main.c was initially added on branch themes. 1998-04-14 20:29:59 +00:00
rhlabs
7cb8a11038 file theme2_button.c was initially added on branch themes. 1998-04-14 20:29:58 +00:00
rhlabs
09ea2ad7be file theme2.h was initially added on branch themes. 1998-04-14 20:29:57 +00:00
rhlabs
7be9418f30 file THEMES.README was initially added on branch themes. 1998-04-14 20:29:56 +00:00
rhlabs
d6b867723d file COMPILE_THEME2 was initially added on branch themes. 1998-04-14 20:29:54 +00:00
PDT 1998 Shawn T. Amundson
2b210ff47e Released GTK+ 1.0.0
Mon Apr 13 19:16:22 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 1.0.0
1998-04-14 02:22:39 +00:00
Owen Taylor
385164d6f9 Don't read the character past the end of the text.
Mon Apr 13 21:40:14 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c (find_char_width): Don't read the
	character past the end of the text.

	* gtk/gtkrange.c (gtk_real_range_timer): If the mouse
	button has been released before the timer is activated,
	don't keep on scrolling.

	* gdk/gdk.c (gdk_event_translate): Filter subsequent configure
	events after we discard the first. Removed obsolete and
	sometimes very slow GdkOtherEvent. (Left in gdktypes.h
	with signal in GTK)
1998-04-14 01:39:40 +00:00
Owen Taylor
1bafe5a8e7 Updated package versions 1998-04-14 01:10:04 +00:00
Owen Taylor
52f719521a Minor additions and fixes 1998-04-14 01:09:25 +00:00
PDT 1998 Shawn T. Amundson
5c67089e7d update address info to gtk.org for ftp and web sites.
Mon Apr 13 18:03:54 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * README: update address info to gtk.org for ftp and web sites.
1998-04-14 01:05:16 +00:00
Federico Mena Quintero
af36f7765a New function; wrapper for XPolygonRegion().
1998-04-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdk/gdkregion.c (gdk_region_polygon): New function; wrapper for
	XPolygonRegion().

	* gdk/gdk.h: Added prototype for gdk_region_polygon().

	* gdk/gdktypes.h (GdkFillRule): New enum type of fill rule for polygons.
1998-04-14 00:49:06 +00:00
rhlabs
0b0524d397 file led_on2.xpm was initially added on branch themes. 1998-04-13 22:44:59 +00:00
rhlabs
4eaccda110 file led_on1.xpm was initially added on branch themes. 1998-04-13 22:44:58 +00:00
rhlabs
16bcc7bc6d file led_off2.xpm was initially added on branch themes. 1998-04-13 22:44:57 +00:00
rhlabs
26004d36fa file led_off1.xpm was initially added on branch themes. 1998-04-13 22:44:56 +00:00
rhlabs
0b31d8a9c4 file btn3.xpm was initially added on branch themes. 1998-04-13 22:44:55 +00:00
rhlabs
c2a843d8ed file btn2.xpm was initially added on branch themes. 1998-04-13 22:44:54 +00:00
rhlabs
ecb8751322 file btn1.xpm was initially added on branch themes. 1998-04-13 22:44:53 +00:00
rhlabs
d4a428d2e9 file config was initially added on branch themes. 1998-04-13 22:44:52 +00:00
Michael K. Johnson
1d6172102d removed duplicate call to gtk_widget_set_policy.
Mon Apr 13 15:04:26 1998  Michael K. Johnson <johnsonm@redhat.com>

        * gtk/testgtk.c (create_clist): removed duplicate call to
        gtk_widget_set_policy.
1998-04-13 19:09:00 +00:00
rhlabs
887540e646 Split out glib.
Why is CVS overwriting my locally modified files!  Argh..

-Marc <marc@redhat.com>
1998-04-13 17:36:45 +00:00
Tim Janik
18dfa1ae90 check for accelerator table to be != NULL.
Mon Apr 13 05:03:11 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwindow.c (gtk_window_add_accelerator_table): check for
                accelerator table to be != NULL.
                        (gtk_window_remove_accelerator_table): likewise.
1998-04-13 04:42:11 +00:00
PDT 1998 Shawn T. Amundson
7ec269052d typo, gtk-1.0.0 should be gtk+-1.0.0 A little more intro on what gtk is...
Sun Apr 12 19:35:09 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * INSTALL: typo, gtk-1.0.0 should be gtk+-1.0.0
	* README: A little more intro on what gtk is...
1998-04-13 03:04:26 +00:00
Owen Taylor
a3ee7a9416 An old allocation error.
Sun Apr 12 22:43:22 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate):
	An old allocation error.

	* gtk/gtkviewport.c (gtk_viewport_add): Don't map
	when adding a not-VISIBLE widget to a VISIBLE
	viewport.
1998-04-13 02:45:25 +00:00
PDT 1998 Shawn T. Amundson
92006c8e78 Changed LGPL address for FSF in all .h and .c files
Sun Apr 12 18:54:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Changed LGPL address for FSF in all .h and .c files
1998-04-13 02:02:47 +00:00
Owen Taylor
e6af5d49ae Set a flag so instead of clearing the area in advance. That looked
Sun Apr 12 20:09:40 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtklabel.[ch] (gtk_label_expose): Set a flag so
	instead of clearing the area in advance. That looked
	_really_ bad.

	* gtk/gtkcontainer.c (gtk_container_class_init): Changed
	"focus" to RUN_LAST.

	* gtk/gtkentry.c (gtk_entry_realize): Fixed place
	where allocation was used where requisition was meant.
	(Found by David J N Begley <david@avarice.nepean.uws.edu.au>)

	* gtk/gtkwindow.c (gtk_window_set_default): Fixed
	assertion in when setting default to NULL>
	("Damon Chaplin" <DAChaplin@email.msn.com>)

	* gtk/gtkwidget.c (gtk_widget_unparent): Unset the
	default widget on the toplevel, if necessary.

Sun Apr 12 02:04:21 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkpreview.c: Removed unecessary and harmful
	htons/ntohs when storing properties. (X does the byte
	swapping itself)
1998-04-13 00:20:17 +00:00
Owen Taylor
0dfc14aa8b Removed incorrect part of assertion that was causing failures for
Sat Apr 11 02:01:31 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c (scroll_down): Removed incorrect part of
	assertion that was causing failures for scrolling a single
	line very short text widget.
1998-04-11 06:06:51 +00:00
Owen Taylor
6114e5b813 Fixed a sign problem (typedef gint guint!). Added some checks to make sure
Sat Apr 11 01:41:55 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c (expose_text): Fixed a sign problem
	(typedef gint guint!). Added some checks to make sure things
	are positive.
1998-04-11 05:50:16 +00:00
Tim Janik
9c585e9210 don't shut down the tooltip on expose events.
Sat Apr 11 05:51:22 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktooltips.c (gtk_tooltips_event_handler): don't shut down the
                tooltip on expose events.

                        * gtk/testgtk.c (create_progress_bar): add an example tooltip.
1998-04-11 03:54:34 +00:00
Owen Taylor
0e3d507006 Extended for the 1.0 release. Eliminated the "before 1.0" section
Fri Apr 10 00:10:16 1998  Owen Taylor  <owt1@cornell.edu>

	* README/INSTALL: Extended for the 1.0 release.
  	* TODO:           Eliminated the "before 1.0" section
1998-04-10 04:32:15 +00:00
PDT 1998 Shawn T. Amundson
1cf5800665 changes for 1.0.0 release.
Thu Apr  9 19:31:51 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * AUTHORS NEWS README configure.in gtk+.spec glib/configure.in:
	  changes for 1.0.0 release.
1998-04-10 02:33:54 +00:00
Owen Taylor
3a02948170 Picky --enable-ansi cleanups.
Thu Apr  9 18:36:31 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmisc.c gdk/gdkwindow gtk/gtkentry.c gtk/testgtk.c:
	Picky --enable-ansi cleanups.

	* gtk/gtkstatusbar.c (gtk_statusbar_pop): Pop top message
	off _belonging_to_this_context_. (gtk-d4bjorn-980409-0)

	From "Damon Chaplin" <DAChaplin@email.msn.com>

	* gtk/gtktable.c (gtk_table_size_request_pass3): Small fix to size
	requisition code.

	* gtk/gtknotebook.c: Make sure not to do things to page->tab_label
	if it doesn't exist.
1998-04-10 00:44:35 +00:00
Owen Taylor
26df647a0f (Found by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>)
Thu Apr  9 14:24:35 1998  Owen Taylor  <owt1@cornell.edu>

	(Found by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>)

	* gtk/gtkcurve.c (gtk_curve_interpolate): Added a
	missing g_free.

	* gtk/gtkcurve.c (gtk_curve_graph_events): Limits
	were off by one, resulting in writing past array
	bounds. Removed some unused code.

	* gdk/gdk.c (gdk_dnd_drag_begin): The event structure
	used for gdk_event_put should be a GdkEvent, not a
	subtype, since it will all be copied.

	* gtk/gtkcolorsel.c: Added a unrealize handler that
	unref's the GC's that were created.

	* gtk/testgtk.c (clist_warning_test): ref and sink
	child because it may never be added to anything.
1998-04-09 19:12:12 +00:00
Elliot Lee
ad7dc0e87f When setting up the drag cursor as a shaped window, make sure to hide the previous drag shaped windows. 1998-04-09 03:33:24 +00:00
Elliot Lee
2a2323d64e Combobulator fixes..... ....
Combobulator fixes.....
....

.....


......



.......



........

April fools! ;-)
1998-04-09 02:55:46 +00:00
Owen Taylor
3a1eebe683 Removed unsed variables (gtk-jbuhler-980408-0)
Wed Apr  8 20:50:02 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwindow.c (gtk_window_set_hints): Removed unsed
	variables (gtk-jbuhler-980408-0)
1998-04-09 00:50:20 +00:00
Owen Taylor
520fd17eca Make sure widgets get removed from the resize queue before the connection
Wed Apr  8 17:27:40 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwidget.c (gtk_widget_unparent): Make sure
	widgets get removed from the resize queue before the
	connection between them and the resize queue is broken
	by unparenting their parent.
1998-04-08 21:40:45 +00:00
Miguel de Icaza
09d32399ab During drag and drop, set the event mask at ButtonPress time to include
1998-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdk.c (gdk_event_translate): During drag and drop, set the
	event mask at ButtonPress time to include ButtonPressMask and
	ButtonReleaseMask, otherwise, if the button is released, and we
	get a LeaveNotify event, it still thinks we are doing a drag.
1998-04-08 19:46:09 +00:00
PDT 1998 Shawn T. Amundson
c492bd10e8 Released GTK+ 0.99.10
Tue Apr  7 22:45:37 PDT 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 0.99.10
1998-04-08 05:47:03 +00:00
Owen Taylor
0d1eb423a1 Handle border width correctly on realize after allocate.
Wed Apr  8 01:33:58 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkviewport.c (gtk_viewport_realize): Handle border
	width correctly on realize after allocate.
1998-04-08 05:41:40 +00:00
Owen Taylor
55f36bac3a Fix to dial test allocation. Make wheelbarrow not flash window
before setting shape mask.
1998-04-08 05:28:56 +00:00
Owen Taylor
3d19b7ce55 Changes for GTK+ 0.99.10
Tue Apr  7 23:06:00 1998  Owen Taylor  <owt1@cornell.edu>

	* Changes for GTK+ 0.99.10

	* examples/find-examples.sh: Script to find all the
	files we need to distribute from the examples directory.
1998-04-08 04:07:01 +00:00
Tim Janik
2ab408a700 really remove g_direct_compare() (this includes its declaration ;). 1998-04-08 00:51:05 +00:00
Owen Taylor
1c77b5f926 Removed, because that's what a NULL comparison function means. And it
Tue Apr  7 19:36:48 1998  Owen Taylor  <owt1@cornell.edu>

	* gutils.c (g_direct_compare): Removed, because that's what
	a NULL comparison function means. And it wasn't 64 bit safe.

Tue Apr  7 19:14:03 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkpixmap.c: Added maximum field widths to prevent
	possible '%s' scanf overflows. Replaced scanf("%c")
	with getc(), Don't interpret /*/ as a full comment. Use
	g_realloc/g_new.

	* gtk/gtkwidget.h gtk/gtkprivate.h: Changed all flag
	tests to check for ((GTK_WIDGET_FLAGS(widget) & FLAG) != 0)
	instead of (GTK_WIDGET_FLAGS(widget) & FLAG)

	* gtk/gtkfilesel.c: Use getwd() instead of getcwd() on
	SunOS, because getcwd() hangs up in a wait4().
	(Found by David Monniaux <monniaux@clipper.ens.fr>)

	- Check device/inode/mtime not just inode/mtime, when
	caching scanned directories.
	(From: scottk@ig.utexas.edu (Scott Kempf))

	* gdk/gdkpixmap.c: Check for 0 width/height when
	creating pixmaps.

	* gtk/*.c: Global substitution of recently introduced
	"MAX (0," for allocations to "MAX (1,", since
	creating a backing pixmap with a zero width or height
	fails.

	* gdk/gdkwindow.c (gdk_window_new): Don't set all the
	WM properties for child windows. Don't set the base
	size, since the value we set will be taken as a minimum
	size.
1998-04-07 23:59:25 +00:00
Tim Janik
13de9dc34f don't take '\n' into account for size computation (Damon Chaplin).
Wed Apr  8 00:00:48 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtklabel.c (gtk_label_expose): don't take '\n' into account for
                size computation (Damon Chaplin).

                        * gtk/gtkvscale.c (gtk_vscale_draw_value): adjusted static snprintf()
                                buffer size to 32 characters (Damon Chaplin).
                                        * gtk/gtkhscale.c (gtk_hscale_draw_value): likewise.

                                                * gtk/gtkmain.c (gtk_main_iteration_do): gdk_flush() the X-queue if
                                                        iteration_done==TRUE since we will most likely not get invoked again
                                                                (Marius Vollmer).
1998-04-07 23:29:04 +00:00
Elliot Lee
6788abaa48 added g_direct_hash and g_direct_compare functions, since I happen to use them in a *lot* of places 1998-04-07 22:33:20 +00:00
Elliot Lee
39a05c0b55 gtk_button_remove(): When removing a child widget from a button, we don't
gtk_button_remove():
	When removing a child widget from a button, we don't want to check
	the child's visibility after removal (for the purpose of knowing
	whether a queue_resize is needed), we want to check it *before*,
	because the child may be destroyed during the
	gtk_widget_unparent()

	The diff is clearer than this stupid log message. :)
1998-04-07 19:51:06 +00:00
Owen Taylor
8051b9d2bc Set the window hints on every map so that GTK_WIN_POS_MOUSE works
Mon Apr  6 23:48:29 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwindow.c (gtk_window_realize): Set the
	window hints on every map so that GTK_WIN_POS_MOUSE
	works correctly.
1998-04-07 04:17:27 +00:00
Federico Mena Quintero
30533f0397 Added function to set the homogeneous flag of the table (needed by derived
1998-04-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtktable.h:
	* gtk/gtktable.c (gtk_table_set_homogeneous): Added function to
	set the homogeneous flag of the table (needed by derived widgets
	and such).

1998-04-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkradiobutton.h: Add prototype for gtk_radio_button_new_with_label_from_widget.
1998-04-06 22:33:32 +00:00
BST 1998 Tony Gale
01c3cd84f5 more on GIMP (et al) configure problems.
Mon Apr  6 18:48:49 BST 1998 Tony Gale  <gale@gtk.org>

        * docs/gtkfaq.sgml: more on GIMP (et al) configure
          problems.
1998-04-06 17:53:42 +00:00
Tim Janik
49efbf9b1d fixed a bug that caused floats of the format ".xxx" to be parsed as "xxx".
Mon Apr  6 18:43:25 1998  Tim Janik  <timj@gtk.org>

        * gscanner.c (g_scanner_get_token_ll): fixed a bug that caused floats
                of the format ".xxx" to be parsed as "xxx".
1998-04-06 17:12:31 +00:00
Owen Taylor
0f9fe89727 Take border in account properly.
Mon Apr  6 08:05:23 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkbutton.c (gtk_button_paint): Take border in
	account properly.

	* gtk/gtktext.c (gtk_text_realize): Don't recompute
	geometry when creating with initial 1x1 geometry,
	since our calculations can't handle that. Leave
	text->line_start_cache NULL as sign we don't have
	a real geometry yet.

	* gtk/gtkentry.c (gtk_entry_motion_notify): Use the x
	value we get from gdk_window_get_pointer, not from
	event->x - since we always specify OwnerGrabButtonMask
	(why???), event->x can refer to another window.
1998-04-06 12:59:06 +00:00
BST 1998 Tony Gale
d7aa6a88fb Change a missed "delete_event" return value description from TRUE to
Mon Apr  6 08:08:49 BST 1998  Tony Gale <gale@gtk.org>

        * docs/gtk_tut.sgml examples/helloworld/helloworld.c:
          Change a missed "delete_event" return value description
          from TRUE to FALSE.
1998-04-06 08:13:48 +00:00
Tony Gale
c4089778fb Mon Apr 6 08:08:49 BST 1998 Tony Gale <gale@gtk.org
* docs/gtk_tut.sgml examples/helloworld/helloworld.c:
          Change a missed "delete_event" return value description
          from TRUE to FALSE.
1998-04-06 08:12:46 +00:00
Owen Taylor
61ca241924 Make tab key move in reading order (left-to-right top to bottom) - which
Mon Apr  6 00:28:28 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkcontainer.c (gtk_container_focus_tab): Make
	tab key move in reading order (left-to-right top
	to bottom) - which might have been the original intended
	behavior modulo sorting bugs.

	* gtk-config.in: Never output -I/usr/include from --cflags
1998-04-06 04:31:15 +00:00
Owen Taylor
79d880ccb7 Fixed bug where right justified menu would overlap last left justified
Sun Apr  5 21:47:12 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmenubar.c: Fixed bug where right justified
	menu would overlap last left justified item.
1998-04-06 02:00:48 +00:00
Owen Taylor
20fee708a3 Fixed assignment of adjustment->value to negative values. Moved a few
Sun Apr  5 19:30:23 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkclist.c: Fixed assignment of adjustment->value
	to negative values. Moved a few other allocation type things
	around in ways that may or may matter. Fixed some allocation
	errors (scrollbars were overlapping main window).

	* gtk/gtkbutton.c (gtk_real_button_released): Small hack to keep
	button labels from vanishing when the invoked operation blocks.

	* gtk/gtkbox.c (gtk_box_remove): Assigning GTK_WIDGET_VISIBLE (widget)
	to a gboolean (char) is _bad_. GTK_VISIBLE == 256.
1998-04-05 23:30:26 +00:00
Owen Taylor
1a099c2ced Reverted broken implementation of removing the current timeout/idle.
Sun Apr  5 15:08:25 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c: Reverted broken implementation of removing
	the current timeout/idle. Substituted a (hopefully) functional one.
1998-04-05 19:23:38 +00:00
Tim Janik
ab7989217a take expired timeouts into account, otherwise things like e.g.
Sun Apr  5 09:35:55 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_events_pending): take expired timeouts into
                account, otherwise things like e.g. spin-buttons don't work.
                        also, count gtk_main_quit() as an event.
1998-04-05 09:18:08 +00:00
Tim Janik
6e28c40061 fixed panel allocation and stacking order, fixed the base class
Sun Apr  5 08:03:01 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkspinbutton.c: fixed panel allocation and stacking order,
                fixed the base class realization.

                        * gtk/gtkmisc.c: implemented widget arguments.

                                * gtk/gtkentry.c: fixes in _realize to behave similar to
                                        _size_allocate.
1998-04-05 06:58:29 +00:00
Tony Gale
9a5ad5d44e Tony Gale <gale@gtk.org>
* remember to change the date
1998-04-04 11:48:18 +00:00
BST 1998 Tony Gale
e19f939b53 subsections on Aspect Frames and Paned widgets.
Sat Apr  4 12:23:23 BST 1998  Tony Gale  <gale@gtk.org>

        * docs/gtk_tut.sgml: (gtk-crichton-980403-0) subsections on
          Aspect Frames and Paned widgets.

        * examples/paned examples/aspectframe: new examples
1998-04-04 11:31:51 +00:00
Owen Taylor
977b13d37f Test for need to recompute geometry with GTK_WIDGET_REALIZED(), not
Fri Apr  3 23:15:55 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c: Test for need to recompute geometry with
	GTK_WIDGET_REALIZED(), not GTK_WIDGET_DRAWABLE().
1998-04-04 04:21:26 +00:00
Federico Mena Quintero
bfd68b4357 New function to draw a nifty "textured metal" frame. Could be useful in
1998-04-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkhandlebox.c (draw_textured_frame): New function to draw a
	nifty "textured metal" frame.  Could be useful in gtkstyle.c, maybe.
	(gtk_handle_box_paint): Paint a handle that does not make you puke
	when you look at it.
1998-04-04 03:06:07 +00:00
Owen Taylor
71824a2cd5 Call recompute_geometry() upon realization, since it can't be done in the
Fri Apr  3 21:03:38 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c (gtk_text_realize): Call recompute_geometry()
	upon realization, since it can't be done in the previous
	size_allocate.
1998-04-04 02:04:50 +00:00
Owen Taylor
e2ae4aec47 Make debug string parsine case-insensitive
Fri Apr  3 20:36:35 1998  Owen Taylor  <owt1@cornell.edu>

	* gutils.c (g_parse_debug_string): Make debug string
	parsine case-insensitive

Fri Apr  3 20:36:52 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdk.c gtk/gtkmain.c: Accept debug options
	in the form --g[td]k[-no]-debug=xxx as well
1998-04-04 01:56:54 +00:00
Manish Singh
59d586e2ff corrected possible overrun when inserting into GStrings
-Yosh
1998-04-04 01:20:45 +00:00
Owen Taylor
07a8601adf Removed literal german from strings to appease SGI compiler.
Fri Apr  3 18:05:45 1998  Owen Taylor  <owt1@cornell.edu>

	* testglib.c: Removed literal german from strings
	to appease SGI compiler.
1998-04-04 00:57:36 +00:00
Owen Taylor
b1446447fc Added flags --prefix[=dir] and --exec-prefix[=DIR] which allow querying
Fri Apr  3 18:33:47 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk-config.in: Added flags --prefix[=dir] and
	--exec-prefix[=DIR] which allow querying and overriding the
	configured-in prefix and exec-prefix.

	* gtk.m4: Added configure flags --with-gtk-prefix=
	and --with-gtk-exec-prefix= to set the --prefix and
	--exec-prefix argumetns to gtk.m4
1998-04-04 00:12:58 +00:00
Owen Taylor
308adaa6db More extensive debugging output
Fri Apr  3 17:14:55 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdk.c: More extensive debugging output
1998-04-03 23:21:18 +00:00
Owen Taylor
32cd050cfe More extensive debugging output
Fri Apr  3 17:14:55 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdk.c: More extensive debugging output

	* gtk/gtkalignment.c gtk/gtkbutton.c gtk/gtkcheckbutton.c
	  gtk/gtkclist.c gtk/gtkeventbox.c gtk/gtkhandlebox.c
	  gtk/gtk[hv]box.c gtk/gtk[hv]paned.c gtk/gtklist.c
	  gtk/gtkmenu.c gtk/gtkmenubar.c gtk/gtkmenuitem.c
	  gtk/gtknotebook.c gtk/gtktable.c gtk/gtktree.c
	  gtk/gtktreeitem.c gtk/gtkviewport.c

	Avoid assigning negative values to unsigned allocation.width and
	height

	* gtk/gtkwindow.c:

	Instead of realizing the widget, then size allocating, (resulting
	in XMoveResizeWindows for all children, do the size allocation
	first, then realize.

	In gtk_real_window_move_resize, combine move and resize
	into a single GDK/X call when possible.

	* gtk/gtkclist.c gtk/gtkdrawingarea.c:

	Remove assumption that the widget will be size allocated _after_
	it is realized.

	* gtk/gtklist.c (gtk_list_motion_notify): Removed useless
	debugging message.
1998-04-03 23:17:16 +00:00
Owen Taylor
740b70ea0c changes to follow 1998-04-03 23:06:26 +00:00
BST 1998 Tony Gale
4268cd7312 add correct dependencies
Thu Apr  2 17:30:04 BST 1998 Tony Gale <gale@gtk.org>

        * examples/gtkdial/Makefile,
          examples/menu/Makefile,
          examples/tictactoe/Makefile : add correct dependencies
1998-04-02 15:33:36 +00:00
Tony Gale
5d81d2ab28 Tony Gale <gale@gtk.org>
Change the date - which I forgot to do earlier
1998-04-02 13:41:46 +00:00
BST 1998 Tony Gale
68bc2c51db add question on failing GIMP configure
Thu Apr  2 13:04:37 BST 1998 Tony Gale <gale@gtk.org>

        * docs/gtkfaq.sgml: add question on failing GIMP configure
1998-04-02 12:06:53 +00:00
Elliot Lee
acb95ed9da a little more debugging code. 1998-04-01 19:46:06 +00:00
Shawn Amundson
c36ca76bb8 Tue Mar 31 15:41:57 PST 1998 Shawn T. Amundson
* Makefile.am:
	* examples/*: added the rest of the tutorial examples
1998-03-31 23:43:49 +00:00
Tim Janik
30f22e0208 forgot to set the initial `0' cursor.
Tue Mar 31 06:37:16 1998  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c (create_cursors): forgot to set the initial `0' cursor.
1998-03-31 04:39:57 +00:00
Arturo Espinosa
4e01061296 Remove unused variable -mig 1998-03-31 03:16:34 +00:00
Miguel de Icaza
2be5abf4ed First fix: Move the window first, display it after (this removes one of
1998-03-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdkdnd.c (gdk_dnd_display_drag_cursor): First fix: Move the
	window first, display it after (this removes one of the annoying
	flashing effects).
1998-03-31 03:16:09 +00:00
Owen Taylor
f59f2039c0 Add a "style_set" callback, so the font can be changed at run time.
Mon Mar 30 21:29:43 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.c: Add a "style_set" callback, so the
	font can be changed at run time. (needed for GIMP text
	tool)
1998-03-31 02:36:51 +00:00
Tim Janik
a20f83d9a9 show the menu_label unconditionally (even if it is not a default label).
Tue Mar 31 01:17:23 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtknotebook.c (gtk_notebook_menu_item_create): show the menu_label
                unconditionally (even if it is not a default label).
                        (gtk_notebook_update_labels): if we have a tab_label, then use its label
                                as the default menu_label.
1998-03-31 00:38:59 +00:00
Owen Taylor
4bf5d761bc Improved main loop test. (Quits main loop properly, makes it more obvious
Mon Mar 30 16:35:57 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/testgtk.c: Improved main loop test. (Quits main
	loop properly, makes it more obvious to the user
	what is going on)

	* gtk/gtkwidget.c (gtk_widget_unparent): Reset the
	allocation _after_ clearing the window.

	* configure.in: If can't find XShmAttach in Xext, check
	in XextSam (for AIX).

	* gtk/gtkmain.c (gtk_events_pending): Remember, small
	numbers are _high_ priority for idle queues.

	* gtk/gtkmain.c (gtk_handle_current_timeouts): Allow
	removing the currently running timeout.

	* gtk/testgtk.c (timeout_test): Use the right prototype
	for callback.
1998-03-30 23:04:51 +00:00
Tim Janik
8eb7761e72 removed this function, it was unneeded and not exported.
Mon Mar 30 21:40:21 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkclist.c (gtk_clist_row_from_ypixel): removed this function,
                it was unneeded and not exported.

                        * gtk/gtkwidget.c (gtk_widget_ref) (gtk_widget_unref): don't check-cast
                                the widgets to volatile GtkObjects (which was there for debugging
                                        purposes only). these functions should probably be macros, but that
                                                would break binary compatibility again, sigh.
                                                        (gtk_widget_destroy): removed superfluous check-casts, since the
                                                                neccessary checks are done in gtk_object_destroy anyways. this should
                                                                        be a macro as well but stays as a function for the above reasoonings.
1998-03-30 20:03:36 +00:00
BST 1998 Tony Gale
c05d6f2d12 reflect the change of meaning of the delete_event return value
Mon Mar 30 17:21:27 BST 1998 Tony Gale  <gale@gimp.org>

        * docs/gtk_tut.sgml: reflect the change of meaning
          of the delete_event return value
1998-03-30 16:24:42 +00:00
Tony Gale
f553b79b70 Sun Mar 29 22:25:22 BST 1998 Tony Gale <gale@gimp.org> * docs/gtk_tut.sgml: more on the Text widget,
update the tictactoe example to the current code
1998-03-29 21:28:54 +00:00
BST 1998 Tony Gale
4098ac22ff more on the Text widget, update the tictactoe example to the current code
Sun Mar 29 22:25:22 BST 1998 Tony Gale  <gale@gimp.org>
	* docs/gtk_tut.sgml: more on the Text widget,
	  update the tictactoe example to the current code
1998-03-29 21:27:43 +00:00
Tim Janik
2f5621e566 Added wrapping capabilities to GtkSpinButton. New function :
Sun Mar 29 22:29:00 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkspinbutton.[ch] gtk/testgtk.c (gtk_spin_button_set_wrap):
                Added wrapping capabilities to GtkSpinButton. New function :
                        gtk_spin_button_set_wrap (Lars Hamann and Stefan Jeske).
1998-03-29 20:40:10 +00:00
Owen Taylor
93e1585614 Disconnect from combo->entry, not combo. (From: Daniel Skarda
Sat Mar 28 21:18:42 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkcombo.c (gtk_combo_disable_activate):
	Disconnect from combo->entry, not combo.
	(From: Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>)

	* gdk/gdkpixmap.c (gdk_pixmap_colormap_create_from_xpm): Deal
	better with xpm's with bad colors in them.

Plus, 3rd attempt to commit gtklabel changes
1998-03-29 02:44:43 +00:00
Owen Taylor
5b3cc69b43 Don't call XTranslateCoordinates on a destroyed window. (Why do we do
Fri Mar 27 21:01:17 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdk.c (gdk_event_translate): Don't call
	XTranslateCoordinates on a destroyed window. (Why do we
	do event processing at all on destroyed windows when we
	throw out the results?)

	* gtk/gtklabel.c: Clear the background when changing style/
	state.
1998-03-28 02:08:27 +00:00
PST 1998 Shawn T. Amundson
7033e33822 Released GTK+ 0.99.9
Fri Mar 27 16:35:00 PST 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 0.99.9

	* examples: added a couple more, fixed some Makefiles
1998-03-28 01:01:54 +00:00
Owen Taylor
b2c30ad95d Don't clear the window on an expose event. On draws, just clear the
Fri Mar 27 17:58:41 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkhandlebox.c (gtk_handle_box_paint): Don't clear
	the window on an expose event. On draws, just clear the
	portion we are redrawing.

	* gdk/gdkfont.c (gdk_fontset_load): Corrected calculation
	of fontset ascent/descent.

	* gtk/gtkwidget.[ch]: Added new function to show a toplevel
	window and wait for it to be mapped, gtk_window_show_now ()
1998-03-28 00:10:49 +00:00
Owen Taylor
f2cfc17be8 Missed one 1998-03-27 17:24:04 +00:00
PST 1998 Shawn T. Amundson
186a0455be some stuff for doing plain text and postscript
Fri Mar 27 08:51:17 PST 1998 Shawn T. Amundson <amundson@gtk.org>

        * docs/Makefile.sgml: some stuff for doing plain text and
	          postscript
1998-03-27 16:53:14 +00:00
Owen Taylor
e0ea1f0c14 If the widget is _not_ a descendant of a Window widget, propagate key
Fri Mar 27 00:13:18 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c (gtk_propagate_event): If the widget is _not_
	a descendant of a Window widget, propagate key presses like
	other events.

	* gtk/gtkentry.c gtk/gtktext.c: Ignore multiple simultaneous
	button presses instead of treating subsequent presses as
	release/press pairs for tablet compatibility.

	* configure.in config.h.in: Removed inline checks, because they
	are duplicated in glib.

	* gtk/gtkwidget.c (gtk_widget_draw): When gtk_widget_draw ()
	occurs with queued draw already in place, redraw _entire_
	widget. (Pointed out by Tim Janik)
1998-03-27 05:17:11 +00:00
Tim Janik
11f79ebe18 make a clear distinction between key press/release events, which will be
Thu Mar 26 23:12:54 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_propagate_event): make a clear distinction between
                key press/release events, which will be sent to a widgets toplevel
                        ancestor and be forwarded from there, and all other events that need to
                                get propagated up the widget tree (pointed out by Owen Taylor).
1998-03-26 22:18:56 +00:00
Tim Janik
c2906f2bea always display the correct active state.
Thu Mar 26 21:37:57 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkradiobutton.c (gtk_radio_button_draw_indicator): always
                display the correct active state.

                        * gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator): always
                                display the correct active state.

                                        * gtk/gtkwidget.c (gtk_widget_set_arg): CAN_FOCUS and CAN_DEFAULT flag
                                                changes need to queue a resize.

                                                        * gtk/gtkbutton.c (gtk_button_paint): take border_width into
                                                                consideration for restrict area.

                                                                        * gtk/gtktogglebutton.c (gtk_toggle_button_class_init): enable the
                                                                                draw_default member of GtkButton, otherwise the diplay is messed up
                                                                                        for CAN_DEFAULT toggles.
                                                                                                (gtk_toggle_button_draw_focus): always display whether the toggle button
                                                                                                        is active or not.

                                                                                                                * gtk/gtkwidget.c (gtk_widget_set_state):
                                                                                                                        (gtk_widget_set_sensitive):
                                                                                                                                (gtk_widget_set_parent):
                                                                                                                                        (gtk_widget_propagate_state): take into consideration, whether we really
                                                                                                                                                want to change childrens states, or just restauration of old states.
1998-03-26 21:57:45 +00:00
Owen Taylor
a74e338517 When gtk_widget_draw() is called on a REDRAW_PENDING widget, draw it and
Thu Mar 26 15:33:50 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwidget.c: When gtk_widget_draw() is called on a
	REDRAW_PENDING widget, draw it and remove it from the
	queue instead of doing nothing.

	* gtk/Makefile.am gdk/Makefile.am: Switch order of includes
	directories, to make doubly sure that wrong glibconfig.h
	isn't used. (See also glib/ChangeLog)

	* gtk/gtkentry.c (gtk_entry_draw_focus): Don't draw the
	cursor unless the entry is editable.

	(From: Stefan Jeske <jeske@braunschweig.netsurf.de>)
1998-03-26 20:57:29 +00:00
Tim Janik
d38e339ebb do not propagate unhandled key events on widgets with parent==NULL twice.
Thu Mar 26 08:31:58 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkmain.c (gtk_propagate_event): do not propagate unhandled key
                events on widgets with parent==NULL twice.
1998-03-26 07:47:04 +00:00
Tim Janik
b47085512c removed a leftover g_print() call
-timj
1998-03-25 03:33:15 +00:00
Tim Janik
cb98231c7d implemented new flag shrink_on_detach (TRUE by default) which will cause
Tue Mar 24 14:59:50 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkhandlebox.h:
                * gtk/gtkhandlebox.c: implemented new flag shrink_on_detach (TRUE by
                        default) which will cause the handle boxes requisition to collapse in
                                case the child is already detached.


                                removed duplicate ChangeLog entry from owen.
1998-03-24 14:04:07 +00:00
Jay Painter
36e83663cf Quick fix for size allocation -- needs more work overall 1998-03-24 08:52:41 +00:00
Owen Taylor
102b1de4b4 Use reversed arrow for menus ala Motif (and fix Options menus, which had X
Tue Mar 24 00:17:42 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkcombo.c gtk/gtkmenu.c: Use reversed arrow for
	menus ala Motif (and fix Options menus, which had X cursor
	before), and show normal arrow when inside ComboBox.

	* gtk/gtkfilesel.c: Various memory leaks removed, as
	pointed out by Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>

	* docs/gtk_tut.sgml: Change compiling explaination
	to refer to gtk-config.
	(From: johannes@nada.kth.se (Johannes Keukelaar))
1998-03-24 05:27:00 +00:00
Federico Mena Quintero
d362159181 Fixed xthickness -> ythickness typo.
1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c (gtk_clist_size_allocate): Fixed xthickness ->
	ythickness typo.
1998-03-24 05:17:01 +00:00
Ben Gertzfield
9b7fd1bbe5 Removed debian/files for real 1998-03-24 04:42:55 +00:00
Ben Gertzfield
9457fe86d4 Removed *.files, artifacts of the build process 1998-03-24 04:42:21 +00:00
Ben Gertzfield
13fa9d3819 Added debian/* files for ease in automatic building of Debian packages 1998-03-24 04:02:49 +00:00
Ben Gertzfield
3f5c7acc33 Added gtk/testgtk.1 man page for testgtk 1998-03-24 04:01:21 +00:00
Tim Janik
7de464ffe8 save the widgets visibility flag for evaluation after the widget got
* gtk/gtkbox.c (gtk_box_remove): save the widgets visibility flag for
                evaluation after the widget got destroyed, discovered by Johannes
                        Keukelaar <johannes@nada.kth.se>.
1998-03-24 03:34:38 +00:00
Federico Mena Quintero
c88afb81f9 Select the row which got its data changed, and not (0, 0).
1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c (gtk_clist_set_row_data_full): Select the row
	which got its data changed, and not (0, 0).
1998-03-24 03:09:59 +00:00
Owen Taylor
34e324ca70 /home/otaylor/commit 1998-03-24 01:43:21 +00:00
Tim Janik
7bd32a06cf check for text!=NULL. (gtk_entry_prepend_text): likewise. some else picky
Mon Mar 23 15:26:25 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkentry.c (gtk_entry_append_text): check for text!=NULL.
                (gtk_entry_prepend_text): likewise.
                        some else picky indentation fixes.
1998-03-23 14:50:58 +00:00
Owen Taylor
ba0b7257a7 Added note about word wrapping. 1998-03-23 06:48:22 +00:00
CST 1998 Shawn T. Amundson
690e34968a added this directory with stuff from the tutorial, updated to compile and
Mon Mar 23 12:03:03 CST 1998 Shawn T. Amundson <amundson@gtk.org>

        * examples/: added this directory with stuff from
          the tutorial, updated to compile and work with recent
          changes
1998-03-23 06:36:09 +00:00
Owen Taylor
923f3f6992 Added optional word wrap, controlled by new function
Mon Mar 23 01:04:51 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.[ch] testgtk.c: Added optional word wrap, controlled
	  by new function gtk_text_set_word_wrap; and a check button
	  in the Text test.

	* gtk/gtktext.c: First line wasn't getting updated
	properly when selection was removed.
1998-03-23 06:27:31 +00:00
Owen Taylor
f0f650948a Fixed some problems with !gtk_use_mb introduced in the last change.
Sun Mar 22 23:33:50 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.c (gtk_entry_insert_text): Fixed some
	  problems with !gtk_use_mb introduced in the last change.
1998-03-23 04:33:59 +00:00
Owen Taylor
03a7c4551b Fix so children don't get bogus draws.
Sun Mar 22 21:00:43 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkpaned.c: Fix so children don't get bogus draws.
1998-03-23 03:48:45 +00:00
Tim Janik
6b411f4b47 leave container_class->add and container_class->remove untouched if we
Mon Mar 23 01:08:30 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkclist.c (gtk_clist_class_init): leave container_class->add and
                container_class->remove untouched if we don't implement them.

                        * gtk/gtkcontainer.c (gtk_container_class_init): add missing NULL
                                initialization for the class method (*foreach). implement a default
                                        handler to output a warning for (*add) and (*remove).
1998-03-23 03:31:11 +00:00
Jay Painter
b78286eab5 fixed sending null strings to gdk_string_width 1998-03-23 01:08:03 +00:00
Owen Taylor
dac3ffed60 Fixes to allow GTK to work with colormaps that aren't 256 entries long.
Sun Mar 22 19:01:36 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkcolor.c: Fixes to allow GTK to work with colormaps
	  that aren't 256 entries long. (colormap->colors is
	  now dynamically allocated)
1998-03-23 00:16:13 +00:00
Owen Taylor
16aa9c1964 fixes to locale checks
Sun Mar 22 16:25:46 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c (gtk_init): fixes to locale checks

	* gtk/testgtk.c (create_dnd): Create the dnd icons separately
	  to avoid strange interactions with shapes demo.

	* gtk/gtkentry.[ch]:
	  - Limit the length of the text to 2048 to prevent long delays
	  - Fix problems with buffer overruns
	  - Draw only the onscreen portion of the text to prevent wrapping
	    of shorts in the X drawing code.
	  - Keep track of character positions and x-offsets to speed
	    up algorithms.
1998-03-22 21:31:10 +00:00
CST 1998 Shawn T. Amundson
ac05ab301d use button_box for buttons
Sun Mar 22 11:37:51 CST 1998 Shawn T. Amundson <amundson@gtk.org>

        * gtk/gtkcolorsel.c:
        * gtk/gtkfilesel.c: use button_box for buttons
1998-03-22 16:59:59 +00:00
Tim Janik
de26d9af9b forgot the ChangeLog ;(((
-timj
1998-03-22 02:37:28 +00:00
Owen Taylor
8cff9d3307 Don't respond to drops when grab is in effect. (workaround)
Sat Mar 21 19:07:01 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/testgtk.c (dnd_drop): Don't respond to drops when
	  grab is in effect. (workaround)

	* gdk/gdkfont.c (gdk_fontset_load): More details on
	  error messages.

	* gdk/gdk.c: Translate va_list to XVaNestedList instead
	  of just casting it.

	* gtk/gtkmain.c: Make temporary copy of string returned by
	  setlocale, since it may be changed by subsequent calls.
1998-03-22 00:07:53 +00:00
Tim Janik
995d97b001 major overhaul of the code, fixed all known bugs (hopefully ;).
Sat Mar 21 22:54:31 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkhandlebox.h:
        * gtk/gtkhandlebox.c: major overhaul of the code, fixed all
        known bugs (hopefully ;).

Sat Mar 20 15:33:17 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_real_show): queue the resize for the
        parent.

Thu Mar 19 02:00:50 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_unrealize): unset flags after emission,
        especially GTK_MAPPED, since that might not have been taken care of
        by an UNMAP emission.
1998-03-21 22:11:26 +00:00
CET 1998 Paolo Molaro
a7960ed953 gtk/gtkcombo.[ch] "activate" signal can be disabled now
Sat Mar 21 10:39:02 CET 1998 Paolo Molaro <lupus@debian.org>

	* gtk/gtkcombo.[ch] "activate" signal can be disabled now
1998-03-21 09:45:03 +00:00
Radek Doulik
0328873baf changed packing in toolbar elements, so texts are always at the bottom
Fri Mar 20 20:49:33 1998  Radek Doulik  <rodo@aquarius>

        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): changed packing
        in toolbar elements, so texts are always at the bottom
1998-03-21 07:46:04 +00:00
rhlabs
babfb28c3c syntax
-Marc
1998-03-20 16:03:21 +00:00
PST 1998 Shawn T. Amundson
8a544b8912 Released GTK+ 0.99.8
Thu Mar 19 16:40:47 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * Released GTK+ 0.99.8
1998-03-20 01:37:14 +00:00
CST 1998 Shawn T. Amundson
75a00da8d1 the Solaris ltconfig patch from draco
Thu Mar 19 16:28:48 CST 1998 Shawn T. Amundson <amundson@gimp.org>

        * the Solaris ltconfig patch from draco
1998-03-19 22:35:51 +00:00
Manish Singh
38614a78b6 Reverted garray change, and fixed the g_rarray_truncate bug with length.
Can we be one big happy g* family now? :)

-Yosh
1998-03-19 07:17:10 +00:00
Elliot Lee
b44ec526b6 revert stupid part of revert, doh doh doh 1998-03-19 03:46:02 +00:00
Elliot Lee
177354df02 revert gboolean change until we work out the details of exactly why it needs to be an int 1998-03-19 03:28:37 +00:00
Manish Singh
2a2fff763d #define M_PI if it isn't already initialize transparent properly, to make
* gtk/gtkcolorsel.c: #define M_PI if it isn't already
* gtk/testgtk.c: initialize transparent properly, to make purify happy

-Yosh
1998-03-19 01:07:48 +00:00
Tim Janik
3c03a6787d perform the neccessary checks on funtion begin. use the scrolled_window
Thu Mar 19 00:37:44 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_construct): perform the
                neccessary checks on funtion begin. use the scrolled_window that got
                        passed to this function, and not a new one.
1998-03-18 23:49:36 +00:00
Owen Taylor
f9739e8343 ( From: James Henstridge <james@daa.com.au> )
Wed Mar 18 11:09:10 1998  Owen Taylor  <owt1@cornell.edu>
	( From: James Henstridge <james@daa.com.au> )

	* gtk/gtkclist.c: Don't remove, then destroy labels in
	  gtk_clist_set_column_[*], just remove them.

	* gtk/gtkmain.c (gtk_invoke_timeout_function): call
	  marshal when appropriate, not function.

Tue Mar 17 14:15:07 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/testgtk.c (create_main_window): Alphabetize tests

	* gtk/gtk[hv]paned.c: Change division on resize if
	  necessary to keep handle visible.

	* gtk/gtkgamma.c gtk/gtkcurve.c: Moved initialization into
	  _init() functions.

	* gtk/gtkscrolledwindow.c: Added missing _construct()
	  functions.
1998-03-18 21:11:04 +00:00
CET 1998 Paolo Molaro
85d4cd0f43 checked in gtk_entry_set_max_length (it truncates the texts if it's
Wed Mar 18 17:38:25 CET 1998	Paolo Molaro <lupus@debian.org>

	* gtk/gtkentry.[ch]: checked in gtk_entry_set_max_length
	(it truncates the texts if it's longer, now)
1998-03-18 15:41:03 +00:00
Tim Janik
e648c2d68f use the resize queue.
Wed Mar 18 02:06:52 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c (gtk_container_border_width): use the resize queue.

                * gtk/gtkwindow.c (gtk_window_set_arg): gtk_window_set_hints() after
                        setting certain arguments, so they actually take affect.
                                (gtk_window_set_policy): likewise.
1998-03-18 02:05:27 +00:00
Manish Singh
467e4e73c1 Rewrite of GArray gboolean type changed to int
Rewrite of GArray
gboolean type changed to int

-Yosh
1998-03-18 00:08:31 +00:00
Radek Doulik
b141619b50 test if clist->title_window exists before showing it,
Wed Mar 18 01:07:11 1998  Radek Doulik  <rodo@aquarius>

	* gtk/gtkclist.c (gtk_clist_column_titles_show): test if
	clist->title_window exists before showing it,
	gtk_clist_column_titles_hide also fixed
1998-03-17 23:21:17 +00:00
Tim Janik
3f04c019cd return real boolean values not just numbers.
Tue Mar 17 22:45:39 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.c (gtk_widget_get_arg): return real boolean values
                not just numbers.

                        * gtk/gtktogglebutton.c (gtk_toggle_button_set_state): check
                                state for != 0, otherwise we get strange results.
1998-03-17 23:07:30 +00:00
Elliot Lee
3872c32d4a Doh. commit caught this accidentally. Can we put these #defines into a .h file that isnt in CVS so people can test things without killing the world? :) 1998-03-17 21:13:22 +00:00
Elliot Lee
df0b05ef2b Make Gtk compile: Fix GTK_NOTE definition for no debugging, and make gtk_use_mb defined whether or not debugging is enabled 1998-03-17 19:55:33 +00:00
Owen Taylor
70b3b3e6e1 Try to guess if we can use the mb* functions safely. (For glibc, they do
Tue Mar 17 01:55:00 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c gtk/gtkentry.c: Try to guess if we can
	  use the mb* functions safely. (For glibc, they do
	  UTF-8). Heuristic is (X_LOCALE && locale != C/POSIX)
	  || (mblen("\xc0", MB_CUR_MAX) == 1).

	(From: "Richard Lloyd" <rkl@csc.liv.ac.uk>)

	* gdk/gdk.c (gdk_ic_get_attr): Use an intermediate
	  variable to avoid taking the address of the result
	  of va_arg.

	* gtk/gtkentry.c gtk/gtkeditable.c gtkobject.c
	  gtk/testselection.c: signedness fixups

	* gtk/gtkcontainer.c: Fixed implicit cast between
	  gpointer and func pointer by changing.

	* gtk/gtkcombo.c, gtk/gtkentry.c, gtk/gtktext.c:
	  static void forward declaration vs. void actual fixed

	* gtk/testgtk.c: Limit total number of tree items to 10,000
1998-03-17 19:03:52 +00:00
Tim Janik
a783d668f1 changed some debugging messages to be prefixed by "Gdk:".
Tue Mar 17 16:19:47 1998  Tim Janik  <timj@gimp.org>

        * gdk/gdk.c:
                * gdk/gdkvisual.c: changed some debugging messages to be prefixed
                        by "Gdk:".

                                * gtk/gtkwidget.c (gtk_widget_real_draw): applied
                                        gtk-shige-980317-0.patch.gz to set all event fields, but modified
                                                the event.send_event field to be set to TRUE, since the event is not
                                                        really comming from the server.

                                                                * gtk/gtkwindow.c (gtk_window_init): applied gtk-ograf-980317-1.patch.gz
                                                                        which cares about an initial setting of program name and program class.

                                                                                * gdk/gdk.c (gdk_init): applied gtk-ograf-980317-0.patch.gz, which
                                                                                        strips leading pathnames from gdk_progname.
1998-03-17 18:29:07 +00:00
Tim Janik
a6e2c24b60 fixed a bug about drawing GTK_ARROW_LEFT, correction from Damon Chaplin
Tue Mar 17 12:36:35 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkstyle.c (gtk_default_draw_arrow): fixed a bug about drawing
                GTK_ARROW_LEFT, correction from Damon Chaplin <DAChaplin@email.msn.com>.
1998-03-17 15:13:17 +00:00
Miguel de Icaza
8a0d67391c Use StructureNotifyMaskMask as the mask, as this enables an application
Tue Mar 17 02:02:02 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdk.c (gdk_dnd_drag_leave): Use StructureNotifyMaskMask as
	the mask, as this enables an application listening to those events
	to catch the root events.  Thanks to Maciej for pointing us in the
	right direction.
	(gdk_dnd_drag_enter): Likewise.
	(gdk_dnd_drag_leave): Likewise.
	* gdk/gdkwindow.c (gdk_window_dnd_data_set): Likewise.
1998-03-17 07:54:57 +00:00
Federico Mena
63955ec2e2 Use signed integers so that testing will not fail for windows that are
Mon Mar 16 22:31:02 1998  Federico Mena  <federico@nuclecu.unam.mx>

	* gdk/gdkwindow.c (gdk_window_xid_at): Use signed integers so that
	testing will not fail for windows that are off-screen.

	(gdk_window_xid_at_coords): Only considers visible windows.
1998-03-17 04:20:47 +00:00
Tim Janik
077b5109a4 exported gtk_spin_button_spin since it is used in testgtk, and besides
Tue Mar 17 03:56:13 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkspinbutton.h: exported gtk_spin_button_spin since it is
                used in testgtk, and besides that.

                        * gtk/testgtk.c: created a new "test" cursors, which showes different
                                types of GdkCursors and is a very simple example at using the drawing
                                        area.

                                        Tue Mar 17 03:56:13 1998  Tim Janik  <timj@gimp.org>

                                                * gtk/gtkspinbutton.h: exported gtk_spin_button_spin since it is
                                                        used in testgtk, and besides that.

                                                                * gtk/testgtk.c: created a new "test" cursors, which showes different
                                                                        types of GdkCursors and is a very simple example at using the drawing
                                                                                area.
1998-03-17 03:16:11 +00:00
GMT 1998 Tony Gale
444c9529db - new question on modal windows - new question on updating progressbars -
Mon Mar 16 18:19:31 GMT 1998 Tony Gale  <gale@gimp.org>
        * docs/gtkfaq.sgml:
            - new question on modal windows
            - new question on updating progressbars
            - update all the links to gtk.org
1998-03-16 18:27:27 +00:00
Tim Janik
600eaaea09 just fix an old entry
-timj
1998-03-16 17:47:17 +00:00
GMT 1998 Tony Gale
60c008eb99 - New subsection on colourselection from Tom Bech <tomb@ii.uib.no> - Moved
Mon Mar 16 09:15:03 GMT 1998 Tony Gale  <gale@gimp.org>

        * docs/gtk_tut.sgml:
            - New subsection on colourselection from Tom Bech <tomb@ii.uib.no>
            - Moved fileselection text to Miscallaneous Widgets section
            - Started new section on the Text widget
            - Removed Viewport, Paned, HPaned and VPaned from list of
              NO_WINDOW widgets.
1998-03-16 09:25:13 +00:00
Owen Taylor
27c086bd95 Added trailing newline, hopefully will fix the problem with esac
Mon Mar 16 01:33:36 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk-config.in: Added trailing newline, hopefully will
	  fix the problem with esac disappearing.

	* gtk/Makefile.am (test-debug): Improved test targets
	  will work with --enable-shared
    	    [From:  Raja R Harinath  <harinath@cs.umn.edu>]

  	* gtk.m4: Not all shells understand $(...).  Use `...` instead.
    	    [From:  Raja R Harinath  <harinath@cs.umn.edu>]
	- use AM_PATH_PROG instead of AM_CHECK_PROG, so the user
	  can specify programs not in their path.

	* Makefile.am: added gtk.m4 to EXTRA_DIST
1998-03-16 06:36:05 +00:00
Tim Janik
c91f2c0cfa removed GRAB_EXCLUSIVE again, just disable modal event delivery for
Sun Mar 15 23:44:10 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.h:
                * gtk/gtkmenushell.c:
                        * gtk/gtkmenu.c:
                                * gtk/gtkmain.c: removed GRAB_EXCLUSIVE again, just disable modal
                                        event delivery for insensitive children.
1998-03-15 22:49:50 +00:00
rhlabs
3f4411ed52 Added lib/glib to file list.
-Marc
1998-03-15 22:25:11 +00:00
rhlabs
f8170cbd7c Added -k to SMP make line.
-Marc
1998-03-15 22:07:10 +00:00
rhlabs
8ecd7ef5ae Add bin/* to file list.
-Marc
1998-03-15 22:01:39 +00:00
Tim Janik
0ac28d23a4 for now reverted the last change, since it broke click-select-click menus
Sun Mar 15 22:44:33 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmenushell.c (gtk_menu_shell_button_release): for now reverted
                the last change, since it broke click-select-click menus for gimp.
1998-03-15 21:46:03 +00:00
rhlabs
ced74f4435 Added aclocal stuff.
-Marc
1998-03-15 21:29:10 +00:00
Tim Janik
16c6ee03ae removed the ugly check whether we need gtk_widget_destroy or
Sun Mar 15 20:13:42 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmain.c (gtk_quit_destructor): removed the ugly check whether
                we need gtk_widget_destroy or gtk_object_destroy. these functions are
                        by no means allowed to act differently!

                                * gtk/gtkmisc.c (gtk_misc_set_alignment): check for _DRAWABLE instead
                                        of _VISIBLE to operate on widget->window.
                                                (gtk_misc_set_padding): likewise.

                                                        * gtk/gtkwidget.c: slightly reordered object arguments.

                                                                * gtk/gtkobject.c (gtk_object_setv):
                                                                        * gtk/gtkobject.c (gtk_object_getv):
                                                                                operator `!' has precedence over `&'.
1998-03-15 21:14:28 +00:00
Tim Janik
eac28852ed notebook fix from lars.
-timj
1998-03-15 13:40:15 +00:00
Tim Janik
f87ee7e51a added new flag GTK_EXCLUSIVE_GRAB. allow exclusive grabs.
Sun Mar 15 13:25:28 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.h: added new flag GTK_EXCLUSIVE_GRAB.
                * gtk/gtkmain.c: allow exclusive grabs.

                        * gtk/gtkmenu.c: grab exclusively.
                                * gtk/gtkmenushell.c: grab exclusively.

                                        * gtk/gtkmenushell.c: don't activate insensitive menu items when
                                                in click-selects mode.

                                                        * gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): activate submenus
                                                                on popup.

                                                                        * gtk/gtkmenushell.c (gtk_menu_shell_button_release): don't take
                                                                                *additional* button presses into account.

                                                                                        * gtk/gtkmenushell.c (gtk_menu_shell_button_press): don't take
                                                                                                foreign button releases into account.


oh boy, please check this out people, hope i covered all cases.
1998-03-15 13:33:54 +00:00
Tim Janik
9ce0cb6037 changed run type of GtkTipsQuery::widget_entered to GTK_RUN_LAST, so it
Sun Mar 15 08:27:06 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtktipsquery.c (gtk_tips_query_set_labels): changed run type
                of GtkTipsQuery::widget_entered to GTK_RUN_LAST, so it can be overidden
                        by the user.
1998-03-15 08:53:59 +00:00
Tim Janik
85764dad33 small fix by Assar Westerlund <assar@sics.se>.
Sun Mar 15 08:27:06 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwindow.c (gtk_window_configure_event): small fix by
                Assar Westerlund <assar@sics.se>.
1998-03-15 07:58:10 +00:00
Tim Janik
9addd8da2c don't cast a NULL pointer.
Sun Mar 15 08:27:06 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmenu.c (gtk_menu_key_press): don't cast a NULL pointer.
1998-03-15 07:33:13 +00:00
Tim Janik
bfc969f697 updates -timj
updates
-timj
1998-03-15 03:56:32 +00:00
PST 1998 Shawn T. Amundson
e8a447e002 Released 0.99.7
Sat Mar 14 19:36:16 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * Released 0.99.7
1998-03-15 03:46:29 +00:00
Owen Taylor
8fa6f19aa2 added gtk.m4 to EXTRA_DIST
Sat Mar 14 20:29:34 1998  Owen Taylor  <owt1@cornell.edu>

	* Makefile.am: added gtk.m4 to EXTRA_DIST
1998-03-15 01:48:20 +00:00
Owen Taylor
85dd78b7d8 Fixed reversed conditional, so checks against supplied version.
Sat Mar 14 20:07:45 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk.m4: Fixed reversed conditional, so checks against
	  supplied version.
1998-03-15 01:15:34 +00:00
Tim Janik
bc8e40387b fixed a bug with invoking the quit handlers that could cause them to be
Sat Mar 14 10:10:46 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmain.c (gtk_main): fixed a bug with invoking the quit handlers
                that could cause them to be removed wihout being invoked.
1998-03-14 23:47:48 +00:00
Owen Taylor
566a13a6c0 Makefile.am fixes minor fix to gdkwindow.c -owt
Makefile.am fixes
minor fix to gdkwindow.c
                                        -owt
1998-03-14 23:14:58 +00:00
PST 1998 Shawn T. Amundson
9280285954 Released 0.99.6
Sat Mar 14 14:36:40 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * Released 0.99.6

        * gdk/gtk_tut.sgml:
        * gdk/gtk_tut_it.sgml: fixed Ian Main's e-mail address
1998-03-14 22:41:34 +00:00
Owen Taylor
135cdd43a9 Some cleanups of signedness warnings
Sat Mar 14 13:26:09 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.c gtk/gtktext.c: Some cleanups of signedness
          warnings

	* gtk/gtkhandlebox.h: Changed gint ... : 1 to guint ... : 1
1998-03-14 18:33:41 +00:00
Federico Mena Quintero
6e7f4a99e9 Moved the gtk_signal_connect of the specified callback into the big
1998-03-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtktoolbar.c (gtk_toolbar_insert_element): Moved the
	gtk_signal_connect of the specified callback into the big switch()
	for buttons.  We don't want to connect to the "clicked" signal of
	a custom widget or a space element, because it may not have one.
	(gtk_toolbar_insert_element): Extra sanity check; if the type is
	GTK_TOOLBAR_CHILD_WIDGET, then the specified widget must not be NULL.
1998-03-14 16:09:36 +00:00
Manish Singh
cfd3a51369 Fixed a bashism (a bash 2.0ism at that) in the gtk.m4 tests
-Yosh
1998-03-14 10:57:18 +00:00
Owen Taylor
ab4fed04fe Documentation about gtk-config and AM_PATH_GTK 1998-03-14 09:52:03 +00:00
Tim Janik
c86bf9bae2 refuse to allocate with a greater height than requested.
Sat Mar 14 08:29:56 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkhandlebox.c (gtk_handle_box_size_allocate): refuse to allocate
                with a greater height than requested.
                        (gtk_handle_box_remove): clean up if the child is detached.

                                * gtk/gtktoolbar.c (gtk_toolbar_size_allocate): don't take invisible
                                        children into account.
1998-03-14 08:15:23 +00:00
Owen Taylor
b8e7ea1f11 Fixed misplaced 'else.' -owt 1998-03-14 07:29:32 +00:00
Owen Taylor
54a9eb416d Don't leave NULL's in argv.
Sat Mar 14 02:12:44 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c gdk/gdk.c: Don't leave NULL's in argv.
1998-03-14 07:16:36 +00:00
Owen Taylor
f9ad283402 Moved glibconfig.h to $pkglibdir/include. Update to libtool-1.1.
Sat Mar 14 01:36:51 1998  Owen Taylor  <owt1@cornell.edu>

Moved glibconfig.h to $pkglibdir/include. Update to libtool-1.1.
1998-03-14 06:42:39 +00:00
Tim Janik
8cde2c5c21 gpointer gtk_object_get_user_data (GtkObject *object) { if
gpointer
gtk_object_get_user_data (GtkObject *object)
{
  if (user_data_key_id)
-    gtk_object_get_data_by_id (object, user_data_key_id);
+    return gtk_object_get_data_by_id (object, user_data_key_id);

  return NULL;
}

boy oh boy, that was a *neat* one ;)
-timj
1998-03-14 06:22:28 +00:00
Owen Taylor
bc98ea9ce1 Don't resize windows when request is rejected by WM. Only use the resize
Sat Mar 14 00:03:34 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwindow.c:
          Don't resize windows when request is rejected by WM.
	  Only use the resize count to guess whether a Configure
	  event was a rejection by the WM, or a move.

	* gdk/gdk.c gdk/gdktypes.h:
	  - Don't XDestroyWindow foreign windows (If they're a child of
	  one of our windows, reparent them to root and send them a WM
	  delete event, otherwise, just delete the GTK structure.)
	  Handle notification of their deletion properly.
          (Made foreign windows a seperate window type to do this)

	* gtk/gtkobject.c (gtk_object_set_data_full):
	  Call the DestroyNotify when replacing the object data.
1998-03-14 05:15:16 +00:00
Tim Janik
294cfcdb22 make use of *_by_id() functions for handler key.
Sat Mar 14 02:03:13 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtksignal.c: make use of *_by_id() functions for handler key.

        * gtk/gtkwidget.c: make use of *_by_id() functions for a bunch of keys.
        (gtk_widget_shutdown): new function to perform pre-destruction shutdown
        of the widget.
        (gtk_widget_unparent): call gtk_widget_set_parent_window(widget,NULL)

        * gtk/gtkobject.h:
        * gtk/gtkobject.c: GtkObject destruction is now split into an internally
        used shutdown class method and the usual GtkObject::destroy signal
        emission. this allowes for class based shutdown functionality prior
        to actuall object destruction.
        added *_by_id() counterparts for gtk_object_data_* functions, meant for
        internal use only.

        * gtk/gtkmain.c (gtk_quit_add_destroy): new function which will destroy
        a GtkObject once gtk_main() of a certain level finishes. it is save to
        destroy the object prior to that, gtk_quit_add_destroy will only destroy
        objects that are still existing.
1998-03-14 04:43:14 +00:00
Federico Mena Quintero
3ef2c37a83 Now we return a GtkVisibility value, instead of a simple boolean. Also,
1998-03-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c (gtk_clist_row_is_visible): Now we return a
	GtkVisibility value, instead of a simple boolean.  Also, changed
	all the functions that expected a boolean value to use
	"!= GTK_VISIBILITY_NONE".

	* gtk/gtkclist.h: Changed prototype for gtk_clist_row_is_visible().

	* gtk/gtkenums.h (enum): Added GtkVisibility enum.
1998-03-14 00:07:36 +00:00
rhlabs
78290be1c0 Initial commit of spec file.
-Marc <marc@redhat.com>
1998-03-13 20:20:38 +00:00
PST 1998 Shawn T. Amundson
c31eb969ba added graphics, update tutorials appropriately
Fri Mar 13 11:23:55 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * docs/gtk_tut.sgml:
        * docs/gtk_tut_it.sgml:
        * docs/gtk_tut_packbox1.gif:
        * docs/gtk_tut_packbox2.gif:
        * docs/gtk_tut_table.gif: added graphics, update tutorials
          appropriately
1998-03-13 19:26:59 +00:00
rhlabs
68fcbef5a1 Fixes to compile cleanly. I hope they are correct...
-Marc <marc@redhat.com>
1998-03-13 19:18:13 +00:00
Tim Janik
cc4dc8339d fix popup calculations (removal of FIXMEs), changes from Lars Hamann.
Fri Mar 13 18:25:07 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkcombo.c: fix popup calculations (removal
        of FIXMEs), changes from Lars Hamann.

Fri Mar 13 10:25:16 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: renamed gtk_widget_delete_hides to
        gtk_widget_hide_on_delete at owens request, and because the
        new name is much more descriptive.
1998-03-13 17:45:16 +00:00
GMT 1998 Tony Gale
c57f1e318e docs/gtkfaq.sgml: fix the spelling of Helge Hess's name
Fri Mar 13 17:33:56 GMT 1998 Tony Gale <gale@gimp.org>

        docs/gtkfaq.sgml: fix the spelling of Helge Hess's name
1998-03-13 17:37:18 +00:00
GMT 199 Tony Gale
bd9ddcb231 update links to documentation and remove question on whats needs to be
Fri Mar 13 09:40:17 GMT 199 Tony Gale  <gale@gimp.org>

        * docs/gtkfaq.sgml: update links to documentation and
          remove question on whats needs to be done before 1.0
1998-03-13 09:43:20 +00:00
George Lebl
6acde3e1ce Set the column width of the clists to the longest string length so that
Fri Mar 13 01:17:44 1998  George Lebl  <jirka@5z.com>

        * gtk/gtkfilesel.c: Set the column width of the clists
          to the longest string length so that the bottom scrollbar
          appears when you get some long files in the list
1998-03-13 09:19:03 +00:00
Owen Taylor
3832600822 Removed gtk+-xconfig added gtk-config 1998-03-13 01:52:51 +00:00
Tim Janik
fa107ded2a fresh news today ;) -timj
fresh news today ;)
-timj
1998-03-13 01:34:22 +00:00
Federico Mena Quintero
8eb77dfea2 fix one missing quote.
1998-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* docs/gtk_tut.sgml: fix one missing quote.
1998-03-12 23:45:37 +00:00
Owen Taylor
9c8ed97e83 logged change. 1998-03-12 23:27:18 +00:00
Owen Taylor
c8e5c809ed Added a new mechanism for GTK-dependent programs to find out about the
Thu Mar 12 18:01:03 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk.m4 gtk-config.in Makefile.am configure.in:
	  Added a new mechanism for GTK-dependent programs to
	  find out about the installed GTK. (Does not remove
	  any current functionality)

	* gtk+-xconfig.in: Was no longer used for anything.
1998-03-12 23:23:43 +00:00
Tim Janik
9b4919dcb8 yeah, yeah, i broke this file with my last commit unintentionally.
-timj
1998-03-12 22:13:54 +00:00
Tim Janik
96a7435911 return TRUE for GtkWidget::delete_event to avoid destruction of our float
Thu Mar 12 20:17:47 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkhandlebox.c (gtk_handle_box_delete_float): return TRUE for
        GtkWidget::delete_event to avoid destruction of our float window.

        * gtk/gtkmain.c (gtk_main_iteration_do): GDK_DELETE will destroy a
        widget if the last handler returned FALSE or there was none connected.

        * gtk/testgtk.c: adapted all delete_event/destroy case that were affected.

        * gtk/gtkwidget.c (gtk_widget_delete_hides): new function that will hide
        a widget and return TRUE to avoid window deletion if
        connected to GtkWIdget::delete_event.
1998-03-12 21:54:39 +00:00
PST 1998 Shawn T. Amundson
7c698ad46c Changed name of GTK to the GIMP Toolkit
Thu Mar 12 11:51:33 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * docs/gtk.texi: Changed name of GTK to the GIMP Toolkit
1998-03-12 19:53:51 +00:00
Russell Nelson
9a9070c26d new_pixmap wasn't using its filename argument. Add descriptions
Wed Mar 11 22:52:57 1998  Russell Nelson <nelson@crynwr.com>

	* gtk/gtktest.c: new_pixmap wasn't using its filename argument.
	* docs/gtk.texi: Add descriptions
1998-03-12 18:57:46 +00:00
Elliot Lee
aebd3d2df2 Make gcc give printf format warnings for g_string_sprintf() and other
Make gcc give printf format warnings for g_string_sprintf() and other
vararg printf functions.
1998-03-12 18:28:49 +00:00
PST 1998 Shawn T. Amundson
affaf4f9d2 I just remembered this commit failed before because
of problems with the cvs server... connection timed out.

Wed Mar 11 14:36:48 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * gtk/docs/: added tutorial, changed some files around to
          make more sense.
1998-03-12 18:23:11 +00:00
Tim Janik
4f3495f955 changed handler tags to be of type guint, reflecting the internal tag
Thu Mar 12 10:49:38 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmain.h:
        * gtk/gtkmain.c: changed handler tags to be of type guint, reflecting
        the internal tag handling.

        * gtk/gtkcurve.h: macro fixups.
1998-03-12 18:00:45 +00:00
Tim Janik
d19d3c5dca fetch the inintial value of attributes.event_mask from
Thu Mar 12 08:55:34 1998  Tim Janik  <timj@gimp.org>

        * gtkitem.c:
        * gtktree.c:
        * gtklist.c: fetch the inintial value of attributes.event_mask from
        gtk_widget_get_events (widget) (pointed out by Damon Chaplin
        <DAChaplin@email.msn.com>).
1998-03-12 09:14:03 +00:00
Tim Janik
a8afd462c0 applied gtk-shige-980311-0.patch.gz, which removes the erronerous
Thu Mar 12 07:43:33 1998  Tim Janik  <timj@gimp.org>

        * gdk/gdk.h:
        * gdk/gdkvisual.c: applied gtk-shige-980311-0.patch.gz, which removes
        the erronerous gdk_query_visuals() function in favour of
        gdk_list_visuals() which does a correct job.

        * gtk/gtkcontainer.h: applied gtk-draco-980311-0.patch.gz which fixes
        a class cast check.

        * gtk/gtkspinbutton.c: applied gtk-hamann_jeske-980312-0.patch.gz about
        '+' sign acceptance.

        * gtk/gtknotebook.c: applied gtk-hamann_jeske-980311-1.patch.gz which
        cares about delayed tab label creation.
1998-03-12 07:28:41 +00:00
Elliot Lee
093dfedf74 Bug fixes/improvements to the motion event eating for Dnd 1998-03-11 23:12:25 +00:00
Owen Taylor
48a15b7349 Various minor cleanups related to -W
Tue Mar 10 23:02:42 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkdnd.c gtk/gtkclist.c gtk/gtksignal.c gtk/testgtk.c:
	  Various minor cleanups related to -W
1998-03-11 22:49:40 +00:00
rhlabs
59436967d5 <raster@redhat.com>
<raster@redhat.com>

fixed motiong drag to remove lag - ie no lagging of icons behind mouse when
doing DND. :)
1998-03-11 22:35:32 +00:00
rhlabs
c5327ecc31 <raster@redhat.com>
<raster@redhat.com>

added bolleean to gdk_window_xid_at_coords for excluding children fo
excluded windows
1998-03-11 22:24:54 +00:00
Elliot Lee
617a879dfe I did a topdir/ChangeLog entry, why should I put anything in here? :) 1998-03-11 21:55:06 +00:00
rhlabs
b7a6cd6750 <raster@redhat.com>
<raster@redhat.com>

final fixes to STUPId comparison of types of loop end - i missed the
unsigned bit! i will NEVEr use unsigned ints ever again!
1998-03-11 21:44:22 +00:00
Jay Painter
ffc1084029 Fixed file selector 1998-03-11 07:59:46 +00:00
Tim Janik
5724801800 applied gtk-hamann_jeske-980311-0.patch.gz.
Wed Mar 11 07:10:11 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkspinbutton.h:
        * gtk/gtkspinbutton.c: applied gtk-hamann_jeske-980311-0.patch.gz.
1998-03-11 06:11:52 +00:00
Tim Janik
309d7377e7 applied gtk-bolliet-980310-0.patch.gz which adds more checks and
Wed Mar 11 04:35:06 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtklist.c:
        * gtk/gtktree.h:
        * gtk/gtktree.c:
        * gtk/gtktreeitem.h:
        * gtk/gtktreeitem.c: applied gtk-bolliet-980310-0.patch.gz which adds
        more checks and implements gtk_tree_clear_items. made a bunch of style
        and indentation fixes.
1998-03-11 04:05:15 +00:00
Tim Janik
2ff460a6c8 code and structure clean ups. fixed the tooltips flickering bug.
Wed Mar 11 03:35:17 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtktooltips.h:
        * gtk/gtktooltips.c: code and structure clean ups. fixed the
        tooltips flickering bug.
1998-03-11 02:41:15 +00:00
Owen Taylor
3573f8b5f3 Chain to the parent finalize handler. (from: "Mattias.Gronlund"
Tue Mar 10 19:55:13 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_finalize):
	  Chain to the parent finalize handler.
          (from: "Mattias.Gronlund" <Mattias.Gronlund@sa.erisoft.se>)
1998-03-11 00:59:33 +00:00
rhlabs
e583ab045f file theme_main.c was initially added on branch themes. 1998-03-10 23:54:34 +00:00
rhlabs
3d7c2d6634 file theme_led_on2.xpm was initially added on branch themes. 1998-03-10 23:54:33 +00:00
rhlabs
47933b73db file theme_led_on1.xpm was initially added on branch themes. 1998-03-10 23:54:32 +00:00
rhlabs
1432078569 file theme_led_off2.xpm was initially added on branch themes. 1998-03-10 23:54:31 +00:00
rhlabs
6cfdaaa740 file theme_led_off1.xpm was initially added on branch themes. 1998-03-10 23:54:30 +00:00
rhlabs
d94b21a8df file theme_button2.xpm was initially added on branch themes. 1998-03-10 23:54:29 +00:00
rhlabs
cfda5f0035 file theme_button.xpm was initially added on branch themes. 1998-03-10 23:54:28 +00:00
rhlabs
5d6fe2d05f file theme_button.c was initially added on branch themes. 1998-03-10 23:54:26 +00:00
rhlabs
fb66cb05df file theme_btn3.xpm was initially added on branch themes. 1998-03-10 23:54:25 +00:00
rhlabs
5d5bbd1a21 file theme_btn2.xpm was initially added on branch themes. 1998-03-10 23:54:24 +00:00
rhlabs
c45ab2b2d6 file theme_btn1.xpm was initially added on branch themes. 1998-03-10 23:54:23 +00:00
rhlabs
4a4f0aedf3 file theme2_main.c was initially added on branch themes. 1998-03-10 23:54:22 +00:00
rhlabs
db51126e3b file theme2_button.c was initially added on branch themes. 1998-03-10 23:54:21 +00:00
rhlabs
2737494599 file THEMES.README was initially added on branch themes. 1998-03-10 23:54:14 +00:00
rhlabs
e9e7e4c86b file COMPILE_THEME2 was initially added on branch themes. 1998-03-10 23:54:12 +00:00
rhlabs
7f17ced74b file COMPILE_THEME was initially added on branch themes. 1998-03-10 23:54:11 +00:00
Elliot Lee
8f8b0f68ff Add gtk_entry_set_max_length() 1998-03-10 23:32:36 +00:00
Tim Janik
f9e5e12bcc removed a trailing GTK_TYPE_WIDGET for the need_resize signal.
-timj
quartic: this didn't show up in release_1_0 for some reason
1998-03-10 23:04:26 +00:00
Owen Taylor
cb6412978c Merging release_1_0 changes into the main tree.
-timj


Tue Mar 10 14:24:09 1998  Owen Taylor  <owt1@cornell.edu>

        * gtk/gtkselection.c (gtk_selection_clear): Make the return
          result reflect whether the clear event was out of data.

        * gtk/gtkeditable.c: Ignore out of date selection clear
          events.

        * gtk/gtkentry.c gtk/gtktext.c: Don't synthesize releases
          on [2/3]BUTTON presses, since we get the normal click as well.

          Claim the selection when selecting words/lines.

Tue Mar 10 13:34:29 1998  Owen Taylor  <owt1@cornell.edu>

        * gtk/gtkrange.c (gtk_range_default_[vh]trough_click):
          Take forward/back step arrows into account when computing
          position for middle button clicks.

        * gtk/gtktext.c gtk/gtkentry.c:
          - Fixes for deleting characters (don't subtract guints and get
            negative numbers!)
          - Reset cursor_virtual_x when moving by words and lines
          - Extra sanity checks
          - Fix to gtk_text_get_chars
                 (from Tony Gale <gale@daedalus.dera.gov.uk>)
1998-03-10 22:57:26 +00:00
Elliot Lee
120df3b8b7 DnD bugfixes (hopefully :). Rasters code is still buggy, methinks - try the dnd in testgtk 1998-03-10 21:57:05 +00:00
Federico Mena Quintero
fabfc17d93 Replace GXor by GXxor. Seems to have been a typo.
1998-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdk/gdkgc.c (gdk_gc_set_function): Replace GXor by GXxor.  Seems
	to have been a typo.
1998-03-10 19:13:50 +00:00
rhlabs
4db2561dd5 <raster@redhat.com>
<raster@redhat.com>

fixed minor buglets in window tree walker.
1998-03-10 06:14:59 +00:00
PST 1998 Shawn T. Amundson
355e74fce4 Released 0.99.5
Mon Mar  9 21:21:19 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * Released 0.99.5
1998-03-10 06:00:43 +00:00
Arturo Espinosa
c5e729b4bc la de da, add back the prototype I just removed -mig, thanks again snorf 1998-03-10 05:52:52 +00:00
Arturo Espinosa
1f39582f3f Snorfle, thanks :-) Mon Mar 9 23:24:42 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtk/gtkclist.c (gtk_clist_get_selection_info): Export
	functionality.
1998-03-10 05:47:09 +00:00
Miguel de Icaza
23a7e9c93e Export functionality.
Mon Mar  9 23:24:42 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtk/gtkclist.c (gtk_clist_get_selection_info): Export
	functionality.
1998-03-10 05:25:15 +00:00
Tim Janik
0db2549361 glib include -timj
glib include
-timj
1998-03-10 04:55:42 +00:00
Tim Janik
100775d091 0.99.5 bump -timj
0.99.5 bump
-timj
1998-03-10 04:45:25 +00:00
Tim Janik
8532799aaa changed gtk_range_trough_click() to take an additional jump_perc arg,
Tue Mar 10 05:30:05 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkrange.h:
                * gtk/gtkrange.c:
                        changed gtk_range_trough_click() to take an additional jump_perc arg,
                                class method and callers changed.

                                Tue Mar 10 05:25:10 1998  Tim Janik  <timj@gimp.org>

                                        * gdk/gdk.c (gdk_ic_destroy): applied gtk-gronlund-980309-1.patch.gz
                                                which fixes a memory leak.
1998-03-10 04:37:26 +00:00
Owen Taylor
2f50a3044e commiting changes from owen:
Mon Mar  9 20:38:15 1998  Owen Taylor  <owt1@cornell.edu>

        * gtk/gtkentry.c gtk/gtkeditable.c gtk/gtkspinbutton.c:
          Moved "activate" to editable class. Made the vfuncs in
          gtkeditable just vfuncs not signals.

        * gtkentry.[ch] gtktext.[ch]: Made behavior when pressing
          multiple buttons at once more rational.

        * gtkentry.c gtktext.c: Unified and rationalized key
          bindings. (Now are basically emacs+CUA)

        * gtktext.c:
          - Last position now always shares the property of the preceding
            character
          - Freeze the widget when inserting large amounts of text.
          - Selecting lines now selects the _whole_ line.
          - Fixed bug with displaying the cursor
          - Ctrl-Home/End now move the cursor to the _absolute home/end

        * gtkmenuitem.c: Remove necessary code out of a g_return_if_fail

-timj
1998-03-10 03:17:02 +00:00
Elliot Lee
990bddfe16 Miguel, try this - I think it should do what you need. Hurry hurry :) 1998-03-10 02:48:02 +00:00
Federico Mena Quintero
239a12d0d1 We now accept the color parameter to be NULL. If it is NULL, it will mark
1998-03-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c (gtk_clist_set_foreground): We now accept the
	color parameter to be NULL.  If it is NULL, it will mark the row
	with "color not set", so it will be repainted with the default color.
	(gtk_clist_set_background): Likewise.
1998-03-10 02:21:15 +00:00
Tim Janik
2ab3ec6cbd applied gtk-gronlund-980309-0.patch.gz.
-timj
1998-03-10 01:07:16 +00:00
Tim Janik
d187183161 made the <widget>_signals[] arrays of type guint rather than gint. made
Mon Mar  9 15:48:10 1998  Tim Janik  <timj@gimp.org>

        * Signal signedness and naming corrections, plus GtkType fixes:

        * gtk/gtkadjustment.c:
        * gtk/gtkbutton.c:
        * gtk/gtkcheckmenuitem.c:
        * gtk/gtkclist.c:
        * gtk/gtkcolorsel.c:
        * gtk/gtkcontainer.c:
        * gtk/gtkcurve.c:
        * gtk/gtkdata.c:
        * gtk/gtkeditable.c:
        * gtk/gtkentry.c:
        * gtk/gtkhandlebox.c:
        * gtk/gtkinputdialog.c:
        * gtk/gtkitem.c:
        * gtk/gtklist.c:
        * gtk/gtkmenuitem.c:
        * gtk/gtkmenushell.c:
        * gtk/gtknotebook.c:
        * gtk/gtkstatusbar.c:
        * gtk/gtktoolbar.c:
        * gtk/gtktree.c:
        * gtk/gtktreeitem.c:
        * gtk/gtkwidget.c:
        * gtk/gtktogglebutton.c:
        * gtk/gtkwindow.c:
        made the <widget>_signals[] arrays of type guint rather than gint.
        * gtk/gtkwidget.c (gtk_widget_get_ancestor): made widget_type a GtkType.

        * gtk/gtkcombo.h:
        handler ids need to be of type guint (entry_change_id, list_change_id).

        * gtk/gtkaccelerator.c:
        changed signal_num to signal_id and typed it guint.

        * gtk/gtkmain.c: made gtk_ndebug_keys a guint.

        * gtk/gtkmenu.h:
        * gtk/gtkmenu.c:
        (gtk_menu_popup): made button a guint.
        (gtk_menu_set_active): made index a guint.

        * gtk/gtkmenuitem.h:
        * gtk/gtkmenuitem.c:
        made accelerator_signal a guint.

        * gtk/gtkoptionmenu.h:
        * gtk/gtkoptionmenu.c:
        (gtk_option_menu_set_history): made index a guint.

        * gtk/gtksignal.h:
        * gtk/gtksignal.c:
        * gtk/gtkobject.h:
        * gtk/gtkobject.c: changed a bunch of prototypes to take guints rather
        than gints. also made some conversions from guint to GtkType, left over
        from when the fundamental-types system was introduced.

        * gtk/gtkobject.h:
        * gtk/gtkobject.c: made object_data_id_index and obj_count guints.
        made *signals and nsignals guints in GtkObjectClass.
1998-03-09 15:16:28 +00:00
GMT 1998 Tony Gale
2a8d32a760 - Use 'diff -ru' for patches - Explained patch application/rejection -
Mon Mar  9 13:36:53 GMT 1998 Tony Gale  <gale@gimp.org>

        * docs/gtkfaq.sgml:

        - Use 'diff -ru' for patches
        - Explained patch application/rejection
        - Added information on CVS
        - New question on right justified menus with menufactory

        From Nathan:

        - Information on Objective-C bindings
        - Add missing variable in colour example.
1998-03-09 13:49:02 +00:00
Tim Janik
19a80b7695 reverted the changes ian introduced in r1.16 on Mar 06, since they broke
Mon Mar  9 11:44:33 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkfilesel.c (gtk_file_selection_update_history_menu): reverted
        the changes ian introduced in r1.16 on Mar 06, since they broke the
        history menu.
1998-03-09 10:54:13 +00:00
Tim Janik
7b721e200b hehe stupid me, wanted to fix a warning, and borke
the menus instead...
-timj
1998-03-09 07:36:55 +00:00
Tim Janik
c9f7f2a0f8 patch from lars for construct behaviour.
-timj
1998-03-09 07:18:33 +00:00
Owen Taylor
d894d2dc0c No, you can't add a GtkStyle * to a list of GtkRcNode *. (Fixes huge
Mon Mar  9 01:01:41 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkrc.c: No, you can't add a GtkStyle * to a
	  list of GtkRcNode *. (Fixes huge performance problem)
	  Plus, don't bother creating a new style unless style
	  actually has bg pixmaps.
1998-03-09 06:07:34 +00:00
Owen Taylor
2b3f8baf86 Change has_selection to always be set in claim_selection() 1998-03-08 21:53:56 +00:00
Owen Taylor
ab30a02e5f - Show selection correctly when starting selection with arrows
Sun Mar  8 15:53:33 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c:

	- Show selection correctly when starting selection with arrows

	- Display pixmap background only when not editable

	- Redraw focus area more carefully to prevent flashing (and
	  make style of drawing consistent with Entry)

	* gtk/gtktreeitem.c: ref colormaps for pixmap by colormap
	  storage.

	* gtk/gtkrc.c: Store a separate style for each RcStyle for
	  each colormap, so we can handle background pixmaps
	  correctly, which need to be per-colormap. (Leaks
	  colormaps...)

	  Parse text color style entries correctly.

	* gtk/testgtk.c: insert text without fg color
	  gtk/testgtkrc: move "*" after rest, so the other class styles
	                 take effect

        * gdk/gdkwindow.c gdk/gdk.c gdk/gdkprivate.h: Send DND events
	  safely, in case drop window disappears. (Performance hit
	  because XSync()'s are necessary)

	* gdk/gdk.h gdk/gdkpixmap.c: Added
	  gdk_pixmap_colormap_create_from_xpm[_d] to allow creating
	  pixmaps from xpm's before you have a GdkWindow.
1998-03-08 21:47:14 +00:00
Jay Painter
85f1364922 changed clist->selection GList so its data elements are casted row indexes instead
of pointers.  I also cleaned up a few bugs with GTK_SELECTION_MULTIPLE mode, and some
signal synronization problems with removing selected rows.
1998-03-08 20:44:01 +00:00
rhlabs
e60864761c <raster@redhat.com>
<raster@redhat.com>

Forgot to add changelog entries... added.
1998-03-08 12:20:52 +00:00
Tim Janik
829936fd6f removed gtk_range_calc_value().
Sun Mar  8 13:03:22 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkrange.h: removed gtk_range_calc_value().
1998-03-08 12:04:43 +00:00
Tim Janik
6eca1a93c0 fix a NULL warning. -timj
fix a NULL warning.
-timj
1998-03-08 11:22:26 +00:00
Tim Janik
77ff63f7e7 typos and warning fixes.
-timj
1998-03-08 10:41:48 +00:00
Tim Janik
5fa1bfcf45 applied a bunch of patches and removed all the printfs that
raster left over.
-timj
1998-03-08 03:32:05 +00:00
Tim Janik
76d01a826c define the version variables in config.h.
Sun Mar  8 03:00:17 1998  Tim Janik  <timj@gimp.org>

        * configure.in: define the version variables in config.h.

        * gtk/gtkmain.h:
        * gtk/gtkmain.c: added static version variables.

        * gdk/gdkpixmap.c: fixed memory leaks (gtk-gronlund-980307-1.patch.gz)
1998-03-08 02:04:26 +00:00
Owen Taylor
2395ed0826 Added a new function, gtk_preview_reset(), that can be used (under highly
Sat Mar  7 18:46:57 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkpreview.[ch]: Added a new function, gtk_preview_reset(),
	  that can be used (under highly controlled circumstances),
	  to change the properties of the preview colormap after
	  a preview has already been created and destroyed.
1998-03-08 00:59:38 +00:00
Tim Janik
de1262dcc1 register living objects in a hashtable.
Sun Mar  8 00:18:04 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkobject.c: register living objects in a hashtable.
1998-03-07 23:20:56 +00:00
Tim Janik
124d1e5caa made the object/class cast checks much more descriptive, based on
Sat Mar  7 20:20:53 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkobject.c:
        (gtk_object_check_cast):
        (gtk_object_check_class_cast):
        made the object/class cast checks much more descriptive, based on
        gtk-draco-980305-2.patch.gz and gtk-draco-980306-1.patch.gz but
        optimized for common code path.

        * gtk/gtkpreview.c: added a few extra checks for the visual
        (gtk-draco-980305-0.patch.gz).

        * gdk/gdk.c (gdk_signal): abort() on a signal if G_ENABLE_DEBUG
          is defined, so we dump core (gtk-draco-980305-0.patch.gz).
1998-03-07 20:32:59 +00:00
rhlabs
640c75216d <raster@redhat.com>
<raster@redhat.com>

added:
Window
gdk_window_xid_at(Window base, gint bx, gint by, gint x, gint y)

for helpful DND support...
1998-03-07 18:38:18 +00:00
Owen Taylor
a328473d1b Fixed the vscrollbar flickering problem, by checking the area on expose
Sat Mar  7 01:07:24 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkrange.c (gtk_range_expose): Fixed the vscrollbar
	  flickering problem, by checking the area on expose events.
	  (There was a hscrollbar flickering problem as well, it
	   just wasn't very noticeable)
1998-03-07 06:14:37 +00:00
Owen Taylor
1941bf4cbf Disallow pasting into non-editable widgets.
Fri Mar  6 21:30:05 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkeditable.c: Disallow pasting into non-editable
	  widgets.

	* gtk/gtktext.[ch]:

	  -Added scrolling when dragging the selection
	   paste the top/bottom.

	  -Fix some of the problems with displaying the selection
	   state before mouse release.

	  -Disallow pasting into non-editable widgets

	  -Fixed segfault when changing window size

	  -Update the cursor correctly when switching between
	   editable and non-editable

	* testgtk.c: Added a toggle button for editability for
	  the text widget.
1998-03-07 03:05:36 +00:00
Shawn Amundson
761549b968 Oops,
I said:
          gtk/gtkwindow.h: check for GDK_ISO_Left_Tab
Should be:
          gtk/gtkwindow.c: check for GDK_ISO_Left_Tab

-Shawn
1998-03-06 23:19:26 +00:00
PST 1998 Shawn T. Amundson
16f8b9f627 return NULL if device is not ready gtk/gtkwindow.h: check for
Fri Mar  6 14:47:33 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * Applied gtk-matsu-980205-0 (oops, should be 980305)
          gdk/gdkinputcommon.h: return NULL if device is not ready
          gtk/gtkwindow.h: check for GDK_ISO_Left_Tab
1998-03-06 23:17:12 +00:00
rhlabs
2095c552f8 Fix selection bugs (selection was not being modified).
-Marc
1998-03-06 18:19:06 +00:00
Elliot Lee
3033d6b47a This commit moves dnd variables around a bit, and has a try at using hints for the shape dragging (this is for quartic) 1998-03-06 05:14:09 +00:00
Ian Main
2a4c36a73d Added gtk_file_selection_show_fileop_buttons(GtkFileSelection *fs), and
Thu Mar  5 20:41:27 1998  Ian Main  <imain@gnu.org>

	* gtk/gtkfilesel.c: Added
	  gtk_file_selection_show_fileop_buttons(GtkFileSelection *fs), and
	  gtk_file_selection_hide_fileop_buttons(GtkFileSelection *fs).
	  Changed pulldown to only contain current directory name instead of
	  the full path.  Removed Help button (it can now be packed into the
	  button_area if desired.

	* gtk/gtkfilesel.h: Added GtkWidget *button_area (the fileop
	  buttons at the top are packed into this hbox), and GtkWidget
	  action_area (hbox below clists) to GtkFileSelection structure.

	* gtk/testgtk.c: Changed the filesel example to show off the hiding/
	  showing of fileop buttons, and the packing area.
1998-03-06 05:03:15 +00:00
Tim Janik
4a35f24c47 minor todo updates that i'll hopefully get around at the weekend ;)
-timj
1998-03-06 01:56:02 +00:00
Federico Mena Quintero
47f7073e28 [Ummm, maybe we should do the same change to the selection_owner variable?]
1998-03-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdk/gdkprivate.h: Changed the name of default_filters to
	gdk_default_filters to avoid namespace pollution.  Yes, it just
	happened to me.
	* gdk/gdk.c (gdk_event_translate):
	* gdk/gdkglobals.c:
	* gdk/gdkwindow.c (gdk_window_add_filter gdk_window_remove_filter): Likewise.
1998-03-06 00:39:11 +00:00
rhlabs
6c9e2cf195 (select row) Emit UNselect of rows that aren't selected.
-Marc
1998-03-05 17:33:34 +00:00
Jay Painter
be3ad53c49 Singnals -> GTK_RUN_FIRST; api select/unselect function now always do what they say. -Jay 1998-03-05 09:34:36 +00:00
Owen Taylor
1ac59c103d Old stuff that didn't get commited. (owt)
* gtk/gtkinputdialog.h (struct _GtkInputDialogClass):
	  removed 'gpointer data' arguments from default handler
	  structures.


	* gtk/gtktreeitem.[ch]: Keep track of separate +/- pixmaps
	  for each colormap, removed the idle hack.

	* testglib.c: Remove trailing ; after functions

 ----------------------------------------------------------------------
1998-03-05 06:46:41 +00:00
Owen Taylor
ba55b3f94b Unset allocation on unparent, to force reallocation if we get adding back
Thu Mar  5 01:22:06 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwidget.c (gtk_widget_unparent): Unset allocation
	  on unparent, to force reallocation if we get adding back
	  to a new parent which is already size-allocated.

	* gtk/gtktreeitem.c: Keep track of separate +/- pixmaps
	  for each colormap, removed the idle hack.

	* gdk/gdk.c: Don't warn when unable to open XIM method,
	  since X11R5 apparently has no default method.

	* gtk/gtkwidget.c (gtk_widget_set_style_internal): Don't
	  call size_request on initial emission - since the
	  widget size isn't set yet, it can't change.

	* gtk/Makefile.am: New rules 'test' and 'test-debug' to run
	  testgtk with the correct working directory.

	* gtk/gtkentry.c (gtk_move_forward_word):
	  Check for position at end of line.

	* gtk/gtkinputdialog.h (struct _GtkInputDialogClass):
	  removed 'gpointer data' arguments from default handler
	  structures.
1998-03-05 06:32:42 +00:00
Miguel de Icaza
793a130520 Drags can only be started with the left button.
Wed Mar  4 20:06:47 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdk.c (gdk_event_translate): Drags can only be started with
	the left button.
1998-03-05 02:01:47 +00:00
GMT 1998 Tony Gale
f5c00ed917 widget hierarchy update from Tim Janik
Wed Mar  4 16:02:44 GMT 1998 Tony Gale  <gale@gimp.org>

        * docs/gtkfaq.sgml: widget hierarchy update from Tim Janik
1998-03-04 16:06:00 +00:00
Miguel de Icaza
c6a2248e98 Initialize gdk_error_code to zero before calling the X routine.
Mon Mar  2 19:57:27 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdkproperty.c (gdk_atom_name): Initialize gdk_error_code to
	zero before calling the X routine.
1998-03-03 01:54:44 +00:00
Tim Janik
12f1b7858e reflect the last commit in the changelog.
-timj
1998-03-03 00:34:43 +00:00
Tim Janik
3eac46a981 realization fixes by lars.
-timj
1998-03-03 00:20:49 +00:00
Shawn Amundson
3cbeacaf58 fixed ifndef..define typo
-Shawn
1998-03-02 23:42:25 +00:00
Owen Taylor
818ea9d84b // comment. -owt 1998-03-02 23:21:55 +00:00
Owen Taylor
395ccd366a Miscellaneous minor fixes to remove ANSI C incompatibilities
Mon Mar  2 17:48:38 1998  Owen Taylor  <owt1@cornell.edu>

	Miscellaneous minor fixes to remove ANSI C incompatibilities

	* gdk/gdkregion.c gtk/gtkclist.c: fix // comments

	* gdk/gdkdnd.c gdk/gdkinputcommon.h: change types of
	some arguments to ANSI functions

	* gtk/gtkcombo.c gtk/gtktree.c: fix casts of function pointers
	  to void *

	* gtk/gtkmain.c: An actual bug! (in deprecated gtk_input_add_interp)

	* gtk/gtknotebook.h: Bitfields must be gint or guint. (and should
	  be guint)

	* gtk/gtkstatusbar.c: trailing ';'

	* gtk/testgtk.c: GList where there should have been GSList

	* glib.h gutils.c : changed g_strcasecmp
	  to take gchar* not guchar*

	* testglib.c: Remove trailing ; after functions
1998-03-02 23:16:39 +00:00
Owen Taylor
3362281802 Changed 'entry != NULL' to 'editable != NULL' in three spots.
Mon Mar  2 12:26:59 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.c: Changed 'entry != NULL' to 'editable != NULL'
	  in three spots.
1998-03-02 17:27:17 +00:00
PST 1998 Shawn T. amundson
9eb0ce778a Released GTK 0.99.4.
Sun Mar  1 18:29:58 PST 1998 Shawn T. amundson <amundson@gimp.org>

        * Released GTK 0.99.4.
1998-03-02 02:31:43 +00:00
Tim Janik
5b51a9f7f1 oh, boy, world can be so crude!
i'm ading the pixamp after the realize handler to the tree item now,
via an *idle* handler.
this gotta be worked out correctly.
-timj
1998-03-02 02:00:30 +00:00
Tim Janik
558c5f5040 cast fix 1998-03-02 01:22:36 +00:00
Tim Janik
1e5d354127 small fixups 1998-03-02 00:55:55 +00:00
PST 1998 Shawn T. Amundson
68a8537266 small fix to notebook portion
Sun Mar  1 16:47:29 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * gtk/testgtk.c: small fix to notebook portion
1998-03-02 00:48:39 +00:00
PST 1998 Shawn T. Amundson
f6f1ce01c6 Required changes for version change to 0.99.4
Sun Mar  1 15:18:38 PST 1998 Shawn T. Amundson <amundson@gimp.org>

        * Required changes for version change to 0.99.4

        * gtk/gtktree.[ch]: patch from J. Bolliet to correct some bugs
        * gtk/testgtk.c: added test here from J. Bolliet, removed testtree

        * gtk/clist: gtk-abilleira-981602-0, allows gtk_clist_set_pixmap
          and gtk_clist_set_pixtext to not require a mask

        * gdk/gdkdraw.c,gdk.h: gtk-trow-980217-0
          adds gdk_draw_lines and fixes some things about
          gdk_draw_polygon
1998-03-02 00:32:52 +00:00
Owen Taylor
80fd0a0c00 Added g_string_insert[_c]() and g_string_erase().
Sun Mar  1 19:04:40 1998  Owen Taylor  <owt1@cornell.edu>

	* glib.h gstring.c: Added g_string_insert[_c]()
	  and g_string_erase().

	  From: Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>
1998-03-02 00:07:40 +00:00
Tim Janik
d1f5f06082 forgot to remove a printf
-timj
1998-03-01 23:58:44 +00:00
Tim Janik
172d6433a7 variable declaration have to have the same type as their
export counterparts. sopwith are you reading compiler warnings?
-timj
1998-03-01 23:51:59 +00:00
Tim Janik
6ef73ebac0 removed duplicate stuff out of gtkwidget.[ch].
sopwith, please update your tree before commiting.
-timj
1998-03-01 23:47:29 +00:00
Owen Taylor
ade3020098 Make sure either the window or the depth is given when creating a pixmap.
Sun Mar  1 17:40:58 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkpixmap.c: Make sure either the window or
	the depth is given when creating a pixmap.
1998-03-01 23:38:01 +00:00
Tim Janik
af18ab4305 complete api change to honour message contexts. unfortunaltely this also
Sun Mar  1 22:59:09 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkstatusbar.h:
        * gtk/gtkstatusbar.c: complete api change to honour message contexts.
        unfortunaltely this also involved argument changes on the signal
        emissions which will not be caught by the compiler. your callbacks
        should look like:
        void  message_text_popped (GtkStatusbar   *statusbar,
                                   guint           context_id,
                                   const gchar    *text,
                                   gpointer        func_data);

        * gtk/gtkwidget.c (gtk_widget_set_rc_style): eliminated bug about
        initial signal emission.
        (gtk_widget_set_parent): don't ensure style, just call
        gtk_widget_set_style_recurse.
        (gtk_widget_set_style_recurse): only change a widget's rc styles if
        if there has already been a lookup.

        * gtk/testgtk.c: adaptions for statusbar widget.
        substituted notebook pixmaps with pixmaps from fvwm, since
        we don't know where the originals came from.

        * gtk/gtkobject.c (gtk_object_data_destroy): call the destroy
        notifier with the objects data, not its internal structure.

        * gtk/gtkspinbutton.c (gtk_spin_button_button_press): small
        fix from lars.
1998-03-01 23:29:40 +00:00
Elliot Lee
3fb589b2ff Add drag_end_event for future expansion, plus allow passing in NULL to the gdk filter stuff to get events without a window in our app 1998-03-01 22:37:30 +00:00
CST 1998 Shawn T. Amundson
b7056ea129 I forgot to *commit* these before. Note to self: commit after applying
I forgot to *commit* these before.  Note to self: commit after applying
patches.

-Shawn

Sun Mar  1 15:08:13 CST 1998 Shawn T. Amundson <amundson@gimp.org>

        * docs/*.texi changes from Greg Mclean.
1998-03-01 20:24:39 +00:00
Tim Janik
60870d3407 > - parent_class = gtk_type_class (gtk_widget_get_type ());
> +   parent_class = gtk_type_class (gtk_editable_get_type ());
1998-03-01 17:50:38 +00:00
Tim Janik
afe08d63e3 hm, cvs is just too unsensible ;)
-timj
1998-03-01 17:45:33 +00:00
Tim Janik
2a9e933d90 hm if we save the default style, we should also provide a function to
Sun Mar  1 18:41:07 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.c (gtk_widget_restore_default_style): hm if we save the
        default style, we should also provide a function to restore it ;).

        * gtk/main.[hc]: small fixups to idle handlers, added support for quit
        handlers.
1998-03-01 17:44:24 +00:00
Tim Janik
16da0508af -timj 1998-03-01 17:11:06 +00:00
Owen Taylor
f222bd77bb gtk/gtkentry.c gtk/gtktext.c gtkeditable.[ch]
Sun Mar  1 05:18:11 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.c gtk/gtktext.c gtkeditable.[ch]

	Changed interface to cut/copy/paste so it makes sense
	when triggered by say, menu items.
1998-03-01 10:19:22 +00:00
Owen Taylor
2630943eb3 gtk/gtkentry.[ch] gtk/gtktext.[ch] gtkeditable.[ch]
Sun Mar  1 03:20:39 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.[ch] gtk/gtktext.[ch] gtkeditable.[ch]

	Turned off debugging in gtktext.c

	Bug fixes for cutting, pasting, deleting, etc.

	Some of the bugs that were there before have definitely
	been fixed.

	* gtk/testgtk.c gtk/testgtkrc: Removed my ugly orange backgrounds,
	to make things look nicer.
1998-03-01 08:47:36 +00:00
Owen Taylor
9205edae41 gtk/gtkentry.[ch] gtktext.c gtkeditable.[ch]
Sat Feb 28 23:58:54 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkentry.[ch] gtktext.c gtkeditable.[ch]

	Created a new base widget type Editable for the entry and
	text widgets, which encapsulates most of the selection and
	clipboard handling stuff, plus some common signals.

	Changed the Entry widget extensively to support this,
	but the interface and appearance should be the same.

	Changed the Text widget moderately to support this.

	It now supports:

	- Selection style cut and paste
	- Clipboard style cut and paste
	- Emacs style key bindings (~same as Entry)
	- Word motion
	- "changed" signal

	There are definitely still some bugs in the new stuff.

	* gtkfilesel.c gtkspinbutton.c testgtk.c: small changes
	to fit the new interface more exactly.
1998-03-01 05:11:05 +00:00
Tim Janik
d491547e86 quit handlers and idle_remove_by_data fixups
-timj
1998-03-01 04:53:56 +00:00
Tim Janik
91c1c8dddb removed buglet on the initial style_set emission. 1998-03-01 01:53:57 +00:00
Tim Janik
68a90caf45 few checks added -timj
few checks added
-timj
1998-02-28 22:36:06 +00:00
Tim Janik
c4c1c1ea55 more fixups -timj
more fixups
-timj
1998-02-28 20:19:20 +00:00
Tim Janik
6d3ef70d1e handle box signals. fixups for 99.4 -timj
handle box signals.
fixups for 99.4
-timj
1998-02-28 19:09:20 +00:00
Tim Janik
fa26673f49 oops, forgot that, be nice ;)
-timj
1998-02-28 17:12:41 +00:00
Tim Janik
8a19c2a157 fix behavior of gtk_preview_put() with srcx/srcy != 0,
Sat Feb 28 15:18:36 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkpreview.c: fix behavior of gtk_preview_put() with
        srcx/srcy != 0, gtk-shige-980127-0.patch.gz by
        AOSASA Shigeru <aozasa@sakuranet.or.jp>.

        * gdk: applied gtk-roebling-980121-0.patch.gz, patch for region
        support in Gdk, by Robert Roebling <roebling@ruf.uni-freiburg.de>.
1998-02-28 14:35:55 +00:00
Tim Janik
7ad17f7b08 reserve the space for child_attach/child_detach signals. 1998-02-28 02:24:38 +00:00
Tim Janik
b2e6c9723a GtkWIdget::style_set initial emission,
read up in docs/style.txt on this ;)
1998-02-27 22:09:20 +00:00
Tim Janik
693fa02b83 we make an active server grab now, this way we can change the cursor
Fri Feb 27 15:31:55 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtktipsquery.c: we make an active server grab now, this way we
        can change the cursor globally and don't need to tweak event masks
        of other windows.

        * gtk/gtkframe.c (gtk_frame_style_set): recompute label size.

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c:
        New signal GtkWidget::style_set to be emitted when a widget's style
        changed. New flag GTK_RC_STYLE to indicate whether an rc lookup has
        been perfomed for the widget.
        (gtk_widget_ensure_style): New function.
        (gtk_widget_set_rc_style): New function.

        * docs/styles.txt: new file.
1998-02-27 16:31:06 +00:00
Owen Taylor
a36ffb12a5 Filling in the gaps.
-owt
1998-02-27 16:17:07 +00:00
Owen Taylor
50cc709f77 gtk/gtktext.c
Fri Feb 27 01:11:55 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c

	- gtk_text_delete and gtk_text_insert now update caches
	and refresh screen correctly if the text widget isn't frozen.

	- Fixed bug where text->first_line_start_index wasn't
	being updated correctly on insertion and deletion.

	- Added new public macro GTK_TEXT_INDEX (text, ind), and
	function gtk_text_get_chars(text, index, nchars);

Thu Feb 26 22:36:46 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkhandlebox.c (gtk_handle_box_realize): Use MWM hints
	to undecorate window.

	* gtk/testgtk.c gtk/circles.xbm: new test for WM hints.
1998-02-27 06:13:22 +00:00
Owen Taylor
473c1d4d7b new functions for setting WM hints
Thu Feb 26 22:36:46 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkwindow.c gdktypes.c gdk.h:
	new functions for setting WM hints

	 gdk_window_set_icon()
	 gdk_window_set_icon_name()
	 gdk_window_set_group()
	 gdk_window_set_decorations()
	 gdk_window_set_functions()

	* gdk/MwmUtil.h: new uninstalled header file from lesstif
	distribution, used for setting MWM hints.

	* gdk/gdkdnd.c Makefile.am: renamed from gdk/gdk_dnd.c
1998-02-27 03:55:33 +00:00
Elliot Lee
a597dd9473 D&D now lets you use shaped windows for drags. As usual, see testgtk.c... Now finish GnomeMC, miguel :) 1998-02-26 21:28:00 +00:00
Tim Janik
95efae09a7 reserv a signal slot for GtkWidget::style_set.
added GTK_STYLE_SET flag.
-timj
1998-02-26 01:48:28 +00:00
Tim Janik
6c2818881d new widget from Lars Hamann <hamann@braunschweig.netsurf.de> and Stefan
Wed Feb 25 22:56:42 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkspinbutton.h:
        * gtk/gtkspinbutton.c:
        new widget from Lars Hamann <hamann@braunschweig.netsurf.de> and
        Stefan Jeske <jeske@braunschweig.netsurf.de>.

        * gtk/gtknotebook.c: fixups from lars and stefan.
1998-02-25 22:03:10 +00:00
Owen Taylor
3cdf88be4d logged change 1998-02-25 20:41:37 +00:00
Owen Taylor
777159913b Move layout constants into an enumeration, split GTK_BUTTONBOX_DEFAULT
Wed Feb 25 13:18:53 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkbbox.[ch] gtk/gtkhbox.[ch] gtk/gtkvbox.[ch] :

	Move layout constants into an enumeration, split
	GTK_BUTTONBOX_DEFAULT into GTK_BUTTONBOX_DEFAULT
	and GTK_BUTTONBOX_DEFAULT_STYLE (enumeration member).

	* gtk/gtkclist.c:

	Renamed gtk_clist_row_isvisable to .._is_visible

	From: Maciej Stachowiak <mstachow@mit.edu>
1998-02-25 18:36:39 +00:00
Tony Gale
97bbc97bb2 added questions on: - Why don't the contents of a button move when the
* docs/gtkfaq.sgml: added questions on:
                - Why don't the contents of a button move when
                  the button is pressed?
                - How do I catch a double click event in
                  a list widget?
                - When compiling GTK+ I get an error like:
                  make: file `Makefile' line 456: Syntax error
          Removed questions on menus which are covered in the
          tutorial.

          Added link to HTML versions of FAQ and Tutorial on my
          web site.

  -Tony
1998-02-25 13:58:52 +00:00
Owen Taylor
cf01747701 One more... 1998-02-25 04:40:31 +00:00
Owen Taylor
82d7ac35ed Added some support for i18n. The support for input methods, including
Tue Feb 24 22:47:01 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktext.c: Added some support for i18n. The support
	for input methods, including preedit, is there, but input
	is ignored unless it comes one byte at a time, so the
	CJK locales won't really work. Fixing that would require
	variable-width character support in the Text widget, which
	is probably the wrong approach. Eventually we'll probably
	want to go to UCS-4 internally.

	Also, revised key press handling, which should improve
	the forwarding of non-handled keypresses to the toplevel,
	and make adding selection handling easier.

	* gtk/gtkentry.c: Minor changes so that C-d, etc delete
	the selection if there is one.
1998-02-25 03:51:04 +00:00
Owen Taylor
203476915a Check the result of XGetICValues - it is failing for some reason, and
Tue Feb 24 22:44:01 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdk.c (gdk_ic_get_events): Check the result of
	XGetICValues - it is failing for some reason, and
	causing some warnings to be printed.
1998-02-25 03:43:10 +00:00
Tim Janik
c88ea382d2 nothing special ;) -timj
nothing special ;)
-timj
1998-02-25 01:51:18 +00:00
Tim Janik
635d54c091 fixed some bugs in the resizing code (it was leaking
GTK_RESIZE_NEEDED flags).
-timj
1998-02-24 13:57:03 +00:00
Owen Taylor
d3607d5465 Don't process configure events that just move the window, and don't resize
Mon Feb 23 15:41:13 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwidget.c gtk/gtkmenu.c: Don't process configure events
	that just move the window, and don't resize it. Because we need
	to make sure that a widget gets redrawn after a size_allocate -
	and that only happens when the configure event changes the size
	of the window. Plus, it's inefficient.
1998-02-23 20:54:07 +00:00
rhlabs
7add75fba5 Added gtk_toolbar_*_element() functions. Rewrote others
to simply call gtk_toolbar_insert_element() to do the work.

Added two new GtkToolbarChildType options: TOGGLEBUTTON and
RADIOBUTTON, available through the gtk_toolbar_*_element() functions.

-Marc
1998-02-23 20:48:46 +00:00
Elliot Lee
86a97f7835 Fixes to GtkTree, courtesy of Erik Troan <ewt@redhat.com> 1998-02-23 18:14:47 +00:00
Tim Janik
f6f927d227 implemented the statusbar widget. my first intend was to fix the code, but
Mon Feb 23 13:44:10 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkstatusbar.h:
        * gtk/gtkstatusbar.c:
        (re-)implemented the statusbar widget. my first intend was to fix the
        code, but then there was nothing to fix - the whole thing was just a
        big JOKE!
        people who don't even know the semantics of the g_list_* functions
        shouldn't put their hands on widget code and inheritance!



this is the first step to get bug "BUG: statusbar/hbox (redraw?) problem"
worked out, i have to leave now, but will continue work on the resizing code
this evening.
1998-02-23 15:13:03 +00:00
Tim Janik
1b656e0dde TODO updates (major ones ;).
have the send_event field in all GdkEvents.
gtkmenu.c, gtkacceleratortable.c, gtkwindow.c: unreference accelerator_table.
gtk_object_query_args: removed seq_ids again, must have been quite tired
when i commited that change ;)
gtkoptionmenu.c: assure GTK_BIN()->child is empty when reparenting
a menu_items child.
gtkwindow.c: fixed some memory leaks.

-timj
1998-02-23 11:14:27 +00:00
rhlabs
7c99ffb891 Allow gtk_clist_insert() to work on empty lists.
-Marc
1998-02-23 01:50:22 +00:00
Owen Taylor
84335371b1 Count idle handlers at internal priority as pending events.
Sun Feb 22 14:28:43 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c (gtk_events_pending): Count idle handlers
	at internal priority as pending events.
1998-02-22 19:26:46 +00:00
Tim Janik
9a0687a673 don't perform gdk operations on size allocation
if the notebook isn't realized.
yosh: this fixes the iwarp problem.
-timj
1998-02-22 12:16:01 +00:00
Owen Taylor
5861dfb9f8 Fixed URL and improved description for gsumi. 1998-02-22 03:12:05 +00:00
Tim Janik
06d19fb68d renamed signal GtkWidget::set_parent to GtkWidget::parent_set. since it's
Sat Feb 21 15:33:20 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: renamed signal GtkWidget::set_parent to
        GtkWidget::parent_set. since it's purpose is pure notification,
        it should have been named this way in the first place.
1998-02-22 02:18:29 +00:00
MET 1998 Eckehard Berns
e00c0594a3 fixed a bug for mode GDK_CC_MODE_TRUE, when on a 24-bit visual on a 32-bit
Sun Feb 22 00:20:12 MET 1998  Eckehard Berns  <eb@berns.prima.de>

	* gdk/gdkcc.c (gdk_color_context_query_colors): fixed a bug for mode
	GDK_CC_MODE_TRUE, when on a 24-bit visual on a 32-bit mashine.
1998-02-21 23:25:34 +00:00
scott
75a8405430 Added a NULL test in gtk_entry_set_text. (Fielded a report on #gimp
that a NULL argument caused a core dump.)
--sg
1998-02-21 17:12:15 +00:00
Tim Janik
800afc55d7 gtk_object_query_args takes an additional pointer now which if supplied
Sat Feb 21 14:49:17 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkobject.h:
        * gtk/gtkobject.c: gtk_object_query_args takes an additional pointer
        now which if supplied will point to an array holding the sequential
        argument ids.

        * gtk/gtktree.c: fix emission of selection_changed signal, supplied
        by Bolliet Jerome.

        * gtk/gtktreeitem.c: inline the plus and minus pixmaps, supplied by
        Bolliet Jerome.

        * gtk/gtknotebook.c: do a resize when a page is removed and don't
        refer to the removed page on the switch signal, supplied by Lars Hamann
        and Stefan Jeske.

        * gtk/gtktoolbar.h:
        * gtk/gtktoolbar.c:
        gtk_toolbar_append_item, gtk_toolbar_prepend_item,
        gtk_toolbar_insert_item, gtk_toolbar_append_widget,
        gtk_toolbar_prepend_widget, gtk_toolbar_insert_widget: take an additional
        gchar *tooltip_private_text as argument to fully support the underlying
        call to gtk_tooltip_set_tip.


(made the ChangeLog catch up with my last commits).
1998-02-21 14:11:40 +00:00
Tim Janik
a8d6f14c2d added the sequential argument number to gtk_object_query_args.
-timj
1998-02-21 13:33:20 +00:00
Tim Janik
f97dd05d5a removed #define gtk_tooltips_set_tips
-timj
1998-02-21 04:47:35 +00:00
Tim Janik
782dcc834b api changes to GtkToolBar to support the private tooltips text also.
-guess who ;)
1998-02-21 04:46:21 +00:00
Tony Gale
4c0ca9b968 Various FAQ updates, including:
* added to list of GTK apps
        * added 'do-what-ya-like' permissions notice
        * new GDK section - needs some Q&A's added

  -Tony
1998-02-20 16:46:50 +00:00
Tony Gale
7983856239 Various FAQ updates, including:
* added to list of GTK apps
	* added 'do-what-ya-like' permissions notice
	* new GDK section - needs some Q&A's added

  -Tony
1998-02-20 10:01:04 +00:00
Tim Janik
53a595f448 New widget GtkTipsQuery for letting the user query tooltips of widgets.
Fri Feb 20 06:40:00 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtktipsquery.h:
        * gtk/gtktipsquery.c:
        New widget GtkTipsQuery for letting the user query tooltips of widgets.

        * gtk/testgtk.c: add example for GtkTipsQuery.

        * gtk/gtk.h: include gtk/gtktipsquery.h.

        * gtk/gtklabel.c: enable default constructing.
1998-02-20 05:46:48 +00:00
Jay Painter
005f39e02e moved widget creation to gtk_clist_construct for the gtk-- folks. 1998-02-20 05:29:03 +00:00
Larry Ewing
75fbe1adae removed g_warnings from the common XShm failure cases in gdkimage.c
Thu Feb 19 18:53:51 1998  Larry Ewing  <lewing@discord.isc.tamu.edu>

	* removed g_warnings from the common XShm failure cases in gdkimage.c
1998-02-20 00:59:45 +00:00
Federico Mena Quintero
6ff27c34f1 Added M-p and M-n key equivalents for up and down keys. Just for us Emacs
1998-02-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkcombo.c (gtk_combo_entry_key_press): Added M-p and M-n
	key equivalents for up and down keys.  Just for us Emacs weenies :-)
1998-02-19 20:22:51 +00:00
Owen Taylor
7cb1030d32 Minor cleanups. 1998-02-19 18:14:11 +00:00
Owen Taylor
22a9a454af Use POINTER_MOTION_HINT when dragging shapes around. (gtk-wille-980203-0
Thu Feb 19 12:18:24 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/testgtk.c : Use POINTER_MOTION_HINT when dragging
	shapes around.
	(gtk-wille-980203-0
	 Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>)

	* gtk/gtktext.c : Fixes to inserting and deleting characters
	on line breaks.
	(gtk-magnus-980210-0 Magnus Hulthen <magnus@axiom.se>)
1998-02-19 18:06:29 +00:00
Owen Taylor
62dba86c81 the value of ---enable_debug is written into glibconfig.h so everything is
Thu Feb 19 12:18:24 1998  Owen Taylor  <owt1@cornell.edu>

	* glib/configure.in glib/glibconfig.h.in: the value of
	---enable_debug is written into glibconfig.h so everything
	is recompiled when it changes. (HACK)

	* gtk/gtkmain.c gdk/gdk.c docs/debugging.txt:
	Added --gdk-no-debug and --gtk-no-debug switches. Effect
	of switches is no cumulative.
1998-02-19 18:02:03 +00:00
Owen Taylor
2fbc8c20c1 Added Josh Macdonald's description of the Text widget's internals. 1998-02-19 17:34:50 +00:00
Manish Singh
132f17fa37 gdk_get_debug_level doesn't exist anymore
-Yosh
1998-02-19 09:14:21 +00:00
Tim Janik
10474e6a73 more debugging fixes.
hey yosh, you beated me at gdk.c ;)
-timj
1998-02-19 08:14:03 +00:00
Manish Singh
c87244dd75 Should compile with debugging off now...
-Yosh
1998-02-19 08:07:55 +00:00
Tim Janik
0ef453b82c present the argument access masks on their announcement.
Thu Feb 19 06:56:52 1998  Tim Janik  <timj@gimp.org>

        * gtkbox.c:
        * gtkbutton.c:
        * gtkcontainer.c:
        * gtkframe.c:
        * gtklabel.c:
        * gtkobject.c:
        * gtkwidget.c:
        * gtkwindow.c:
        present the argument access masks on their announcement.

        * gtk/gtkobject.h:
        * gtk/gtkobject.c:
        (gtk_object_add_arg_type): take an additional argument describing
        the access mask of the new arg. this can be of GTK_ARG_READABLE,
        GTK_ARG_WRITABLE or GTK_ARG_READWRITE (the latter is an alias for
        the two previous ones).
        (gtk_object_query_args): provide an access_mask array if desired.

        * gtk/gtkwidget.c (gtk_widget_real_realize):
        realized the assumtion that widget is a NO_WINDOW widget
        in actuall code.

        * gtkwindow.c:
        slight changes to gtk_window_configure_event that will make
        the resizing behaviour a little less odd.
        sigh, for some (buggy) reason, there are still container resizes
        triggered by manual resizing to very small window sizes.
        the cointainer resizes will cause gtk_real_window_move_resize to
        be invoked, which makes the app look like it wants to fight the users
        resizing action. ;(
1998-02-19 07:18:42 +00:00
Owen Taylor
a4b322cccc missed one. 1998-02-19 06:21:49 +00:00
Owen Taylor
fc7e845c8f configure.in gdk/gdk.[ch] gdk/gdkcc.c gdk/gdkglobals.c
Thu Feb 19 01:11:48 1998  Owen Taylor  <owt1@cornell.edu>

	* configure.in         gdk/gdk.[ch]         gdk/gdkcc.c
	  gdk/gdkglobals.c     gdk/gdkinputcommon.h gdk/gdkprivate.h
	  gdk/gdkvisual.c      glib/configure.in    glib/glib.h
	  glib/gutils.c        gtk/Makefile.am      gtk/gtkmain.c
	  gtk/gtkobject.[ch]   gtk/gtkdebug.h       docs/debugging.txt

	New system for controlling debugging:

	* --enable-debug=[no/yes/minimum]
	* G_DISABLE_ASSERT and G_DISABLE_CHECKS for glib
	* G_NO_CHECK_CASTS to control cast checking
	* G_ENABLE_DEBUG enables run time checking which controls:
	    Object tracing
	    Showing events
	    Miscellaneous g_print's in GDK
	  And is controlled by --gdk-debug/GDK_DEBUG, --gtk-debug/GTK_DEBUG
        * debug_level and show_events are gone from GTK

	See docs/debugging.txt for details.

	And some fixups to the configure.in's so '-g' can be
	overriden on the command line for --enable-debug
1998-02-19 06:21:27 +00:00
Tim Janik
3d4cc2f904 applied gtk-hamann_jeske-980218-0.patch.gz, a patch from Lars Hamann and
Thu Feb 19 05:40:51 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtknotebook.h:
        * gtk/gtknotebook.c:
        applied gtk-hamann_jeske-980218-0.patch.gz, a patch from
        Lars Hamann and Stefan Jeske which introduces major
        usability improvements.
        fixed bugs are:
        - container border_width>0 does now work correctly for show_tabs==TRUE
          and for tab_pos=GTK_POS_BOTTOM/GTK_POS_RIGHT.
        - toggleing visibility of the tab labels works now.
        - emission of GtkNotebook:switch_page and all page changes
        also the signature for the GtkNotebook:switch_page signal changed,
        callbacks should now look like:
        gint notebook_switch_page (GtkWidget *widget,   GtkNotebookPage *page,
                                   gint       page_num, gpointer         data);
1998-02-19 05:13:46 +00:00
Jay Painter
8923d60dba CList signal revert (right back at you! *ouch*) 1998-02-19 02:59:55 +00:00
Jay Painter
9ad922290c A couple of compiler warning fixes, GtkCList signal changes, changed
fileselect to work with new CList signals, and enhanced testgtk's clist
example to show pixmaps and signal results. -Jay Painter
1998-02-18 10:03:54 +00:00
Tim Janik
7e3692b99f new signal GtkWidget::set_parent. this signal will be emitted once a
Wed Feb 18 04:38:24 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c:
          new signal GtkWidget::set_parent. this signal will be emitted once a
          widget gets a new/no parent assigned (i.e. from gtk_widget_unparent
          and gtk_widget_set_parent).
1998-02-18 04:09:13 +00:00
Tim Janik
83e3008d35 new functions gtk_tooltips_data_get and gtk_tooltips_set_tip,
Wed Feb 18 02:58:50 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtktooltips.h:
          new functions gtk_tooltips_data_get and
          gtk_tooltips_set_tip, gtk_tooltips_set_tips is discouraged now.
        (_GtkTooltips): removed some fields that were never used.
          changed boolean fields to one bit size, to pack together with
          the delay field.
        (_GtkTooltipsData): added tip_private, renamed tips_text to
          tip_text.
        * gtk/gtktooltips.c:
          (gtk_tooltips_data_get): new function to retrive the
          _GtkTooltipsData structure of a widget.
        (gtk_tooltips_set_tip): new function for more extensible tooltips
          settings than gtk_tooltips_set_tips which is discuraged now.
          removed a bug that caused a stale object_data key to a
          _GtkTooltipsData structure.
          removed a bug that caused tips falsly to come up for a grab widget
          on widgets where events were grabbed from.
1998-02-18 02:40:08 +00:00
Federico Mena Quintero
1410a8a003 Added some missing newlines on debug messages.
1998-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdk/gdkcc.c: Added some missing newlines on debug messages.
1998-02-17 20:13:43 +00:00
rhlabs
825aa9501b Make g_slist_insert_sorted() always insert.
-Marc
1998-02-17 18:52:52 +00:00
Tim Janik
b5cb66dc35 invoke gtk_entry_grow_text already in this place, so the application will
Tue Feb 17 05:41:31 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkentry.c (gtk_entry_init): invoke gtk_entry_grow_text already
          in this place, so the application will never see entry->text==NULL.
          (see also ChangeLog entry from Tue Feb 11 1997 on this).


also i added some blurb about recent changes to the NEWS file,
and updated the TODO.
1998-02-17 08:32:55 +00:00
Tim Janik
a303493882 applied patch to fix draw_indicator behaviour from Lars Hamann and Stefan
Tue Feb 17 05:41:31 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkcheckbutton.c:
        * gtk/gtkradiobutton.c:
        * gtk/gtktogglebutton.c:
          applied patch to fix draw_indicator behaviour from Lars Hamann
          and Stefan Jeske.

        * gtk/gtkmain.h:
        * gtk/gtkmain.c (gtk_grab_get_current): new function
          that returns the current grab widget or NULL.

        * gdk/gdkwindow.c (gdk_window_shape_combine_mask): remove
          shape mask if mask==NULL (provided by Stefan Wille).
1998-02-17 06:03:40 +00:00
Owen Taylor
9f96d18eb1 From Patrice Fortier <Patrice.Fortier@aquarel.fr>
Tue Feb 17 00:06:26 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkpaned.c, gtk/gtk[hv]paned.c: (gtk-fortier-980215-0)
	  From Patrice Fortier <Patrice.Fortier@aquarel.fr>

	  Add a widget->window for paned windows, so they
	  can be reparented properly.
1998-02-17 05:07:51 +00:00
Owen Taylor
7b399a225c From Patrice Fortier <Patrice.Fortier@aquarel.fr>
Mon Feb 16 23:47:09 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkviewport.c: (gtk-fortier-980130-0)
	  From Patrice Fortier <Patrice.Fortier@aquarel.fr>

	  Eliminate some extra expose events for viewports.
	  (To be conservative, I set the user's event mask for
	   both widget->window, and viewport->bin_window  -owt)
1998-02-17 04:48:50 +00:00
Owen Taylor
d91da80871 Make timeout and idle insertion code use g_list_insert_sorted().
Mon Feb 16 23:12:14 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkmain.c: Make timeout and idle insertion code
	  use g_list_insert_sorted().
1998-02-17 04:39:47 +00:00
Owen Taylor
04c520bad9 Changed function so elements are always inserted, even if they compare
Mon Feb 16 23:05:06 1998  Owen Taylor  <owt1@cornell.edu>

	* glist.c (g_list_insert_sorted): Changed function
	  so elements are always inserted, even if they compare
	  equal with another.
1998-02-17 04:03:56 +00:00
Tim Janik
afcc0ad3b2 \n 1998-02-17 02:19:30 +00:00
Owen Taylor
27575aa216 Use gtk_signal_default_marshaller, for expand/collapse signals.
Mon Feb 16 17:35:17 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtktreeitem.c: Use gtk_signal_default_marshaller,
	  for expand/collapse signals.
1998-02-16 22:34:30 +00:00
Elliot Lee
fa10f1361f D&D fixes 1998-02-16 22:04:52 +00:00
Tim Janik
a589338a7f gtkmain forgot a return value.
few fixes with resizing behaviour and non opaque moves
where configure events would exceed te number of calls
to gdk_window_resize.
-timj
1998-02-14 05:37:53 +00:00
Owen Taylor
623f7d9772 Fixed some incorrect information. 1998-02-13 23:00:54 +00:00
Tim Janik
3c7f5af2a5 check for clist !REALIZED. (draw_rows): bail out if the widget isn't
Fri Feb 13 19:08:51 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkclist.c (check_exposures): check for clist !REALIZED.
        (draw_rows): bail out if the widget isn't drawable.
        (hadjustment_value_changed):
        (vadjustment_value_changed): bail out if clist isn't drawable.

        * gdk/gdk.c (graphics_expose_predicate): check for private != NULL.
        (gdk_event_get_graphics_expose): check for window != NULL.
1998-02-13 18:41:18 +00:00
Owen Taylor
c3fc26bb9d Realize window before creating xpm so it gets the right colormap/visual,
Fri Feb 13 00:33:26 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/testgtk.c (shape_create_icon): Realize window before
	  creating xpm so it gets the right colormap/visual,
	  instead of the default one.
1998-02-13 05:33:17 +00:00
Owen Taylor
041983a776 Change style->white to style->base[] where appropriate. Change the default
* gtk/gtkentry.c gtk/gtkinputdialog.c gtk/gtklist.c
	  gtk/gtklistitem.c gtktree.c gtk/gtktreeitem.c testgtkrc:

	  Change style->white to style->base[] where appropriate.
	  Change the default style to make this apparent. (Yes, it's
	  ugly... it can be removed later)
1998-02-13 05:26:33 +00:00
Owen Taylor
888470ee29 gtk/gtksignal.[ch] gtk/gtkmain.[ch] gtk/gtkcontainer.[ch]
Thu Feb 12 23:59:49 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtksignal.[ch] gtk/gtkmain.[ch] gtk/gtkcontainer.[ch]
	  gtk/gtkselection.[ch] gdk/gdk.[ch] gtktypeutils.h

 	  Replaced all _interp functions with _full functions.
	  (_interp functions left in for compatibility until 0.99.5).
	  Difference: _full functions take _both_ a C-language callback and a
	  marshaller, and simply ignore the C-language callback
	  if the marshaller is present. This allows the destroy notification
	  to be used without marshalling.

	  gtk_selection_add_handler[_full]() regularized to agree
	  with other callbacks.

	  Also, added gtk_input_add_full() to the header file.
	  (gtk_input_add_interp() was never there)

	* gtk/gtkmain.[ch] gtk/gtkwidget.c: Idle functions are now prioritized.
	  Added new function gtk_idle_add_priority to create
	  an idle with a specified priority (default is zero)
	  constants #defined - GTK_PRIORITY_[HIGH/INTERNAL/DEFAULT/LOW]
	  (redraws, resizes run at GTK_PRIORITY_INTERNAL)

	* gtk/gtkentry.c gtk/testselection.c: changes to keep up with change
  	  to gtkselection.c.
1998-02-13 05:19:06 +00:00
Owen Taylor
dd07df15c1 Add a DestroyNotify field, and gtk_object_set_data_full() to match.
Tue Feb 10 15:01:44 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkobject.c gtk/gtkobject.h: Add a DestroyNotify
	field, and gtk_object_set_data_full() to match.

	* gtk/gtkobject.c (gtk_object_finalize): ObjectData structures
	were being added to a free list, then forgotten about. Just
	rely on GMemChunk instead.
1998-02-13 05:11:16 +00:00
Owen Taylor
39e26262a5 change logged. 1998-02-13 03:47:43 +00:00
Owen Taylor
c43a50fe36 removed deprecated g_string_equal and g_string_hash.
Thu Feb 12 22:48:11 1998  Owen Taylor  <owt1@cornell.edu>

	* gstring.c glib.h: removed deprecated g_string_equal
	  and g_string_hash.
1998-02-13 03:47:25 +00:00
Federico Mena Quintero
9dee8ee4e4 Fixed unrealize handler to comply with the documentation (which mentions
2018-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtkclist.c:
	* gtk/gtkentry.c:
	* gtk/gtkfixed.c:
	* gtk/gtkhandlebox.c:
	* gtk/gtknotebook.c:
	* gtk/gtkpaned.c:
	* gtk/gtkpreview.c:
	* gtk/gtkrange.c:
	* gtk/gtkruler.c:
	* gtk/gtktext.c:
	* gtk/gtkviewport.c:
	Fixed unrealize handler to comply with the
	documentation (which mentions the right thing to do).
1998-02-12 03:02:14 +00:00
Owen Taylor
31a238b6b6 Spelling fixups and minor changes. 1998-02-12 02:40:30 +00:00
Tim Janik
c305397fca small fixup, so that the clist doesn't draw if it is
not realized.
-timj
1998-02-11 05:07:36 +00:00
Manish Singh
f747f3b2cd Really minor cosmetic fix that just niggled me. :P
-Yosh
1998-02-11 01:08:42 +00:00
Tim Janik
ed848ac41e backed out the section "Gnits to care about". new file, kinda developers
Wed Feb 11 00:18:31 1998  Tim Janik  <timj@gimp.org>

        * docs/refcounting.txt: backed out the section "Gnits to care about".
        * docs/developers.txt: new file, kinda developers FAQ.
1998-02-11 00:40:20 +00:00
Tim Janik
2090cc650c new function gtk_signal_handler_pending() returning the id of the next
Wed Feb 11 00:18:31 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtksignal.h:
        * gtk/gtksignal.c: new function gtk_signal_handler_pending() returning
          the id of the next handler pending for that signal or 0.
          put struct GtkHandler back into gtksignal.c along with
          gtk_signal_get_handlers.
1998-02-10 23:49:15 +00:00
Owen Taylor
13179d42a0 Add check to see if the C library's iswalnum can actually be used. (Not
Tue Feb 10 13:04:36 1998  Owen Taylor  <owt1@cornell.edu>

	* configure.in: Add check to see if the C library's
	  iswalnum can actually be used. (Not true for
	  Linux libc-5.4.38)
1998-02-10 18:18:19 +00:00
Tim Janik
6898536a02 ok, there have been several severe bugs in the signal handler referencing
Tue Feb 10 07:12:07 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtksignal.h:
        * gtk/gtksignal.c:
        ok, there have been several severe bugs in the signal handler
        referencing and ->next connection stuff. these bugs caused
        invokations of handlers that are disconnected and - worse -
        destroyed already. invokation of *destroyd* handlers mean:
        anything can be executed , because the handler structure can just
        as well be realocated.
        at the cost of an extra ->prev field per handler we should have a
        reasonable stable system now, because of the various places that
        can cause a handler to be disconnected (*any* handler invokation can
        cause *any* or *all* handlers to be disconnected, there is no way
        around a doubly linked list, actually handler disconnection has never
        worked correctly because of this.
        handlers are connected together via a *doubly* linked list now, and it
        is *not* valid to remove a handler out of this list untill all its
        references have been droped, i.e. handler->ref_count==0.
        to prevent emissions of disconnected but still referenced handlers,
        disconnected handlers are simply marked as blocked and get an id of 0
        which is an invalid signal handler id.
        the handler->id has been changed to have 28 significant bits (using
        alignment gaps), since 65536 (old range: guint16) signal connections
        (as a total) can easily be reached by complex applications.
        this whole handler thingy is at least as tedious as writing doubly
        linked list implementations ;)
1998-02-10 06:53:08 +00:00
Owen Taylor
f98686da85 Check for the RESIZE_NEEDED flag and remove the widget from the list.
Mon Feb  9 23:08:16 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwidget.c (gtk_widget_unparent): Check for
	  the RESIZE_NEEDED flag and remove the widget from the list.
	  Remove the check from gtk_widget_destroy (no longer needed).

	* Unrealize widget _before_ calling "destroy" signal, and
	  unset VISIBLE flag.

	* Unrealize child widgets _after_ unrealizing parent to improve
	  visual appearance.
1998-02-10 04:17:10 +00:00
Miguel de Icaza
6246db9288 no longer a private routine; gtksignal.h: export gtk_signal_get_handlers
Mon Feb  9 16:42:21 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtk/gtksignal.c (gtk_signal_get_handlers): no longer a private
	routine;
	gtksignal.h: export gtk_signal_get_handlers and GtkHandlers type.
1998-02-09 22:44:34 +00:00
Tim Janik
38fac1be63 new fundtion to return the widget that the menu is attached to.
Sun Feb  8 07:06:54 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmenu.c (gtk_menu_get_attach_widget): new fundtion to return
          the widget that the menu is attached to.
1998-02-08 19:00:01 +00:00
Jay Painter
7a3af96d84 New API functions: gtk_clist_get_cell_type gtk_clist_get_text
New API functions:
  gtk_clist_get_cell_type
  gtk_clist_get_text
  gtk_clist_get_pixmap
  gtk_clist_get_pixtext
  gtk_clist_find_row_from_data
1998-02-08 07:55:11 +00:00
Owen Taylor
289f6a38fe use a mask of 0xffffffff instead of 0xffff, since there are 22 flags
Sat Feb  7 11:33:08 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
	  instead of 0xffff, since there are 22 flags currently
	  defined. (From: Jon Trowbridge <trow@emccta.com>)

	  Changed to something better. ~((~1) << GCLastBit)
		   (From: from Daniel Stephens <daniel@cheeseplant.org>)
1998-02-07 17:07:14 +00:00
Owen Taylor
e105a87144 added some additional consts in appropriate places to remove a warning
Sat Feb  7 11:48:09 1998  Owen Taylor  <owt1@cornell.edu>

	* gstring.c gutils.c: added some additional consts in
	  appropriate places to remove a warning
1998-02-07 16:48:03 +00:00
Owen Taylor
c763748dd1 use a mask of 0xffffffff instead of 0xffff, since there are 22 flags
Sat Feb  7 11:33:08 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
	  instead of 0xffff, since there are 22 flags currently
	  defined. (From: Jon Trowbridge <trow@emccta.com>)
1998-02-07 16:34:40 +00:00
Owen Taylor
75cd57b6cb include <ctype.h> for tolower()
Sat Feb  7 11:15:54 1998  Owen Taylor  <owt1@cornell.edu>

	* gutils.c: include <ctype.h> for tolower()
1998-02-07 16:14:13 +00:00
Tom Tromey
dca018206e Here's a small patch that corrects a prototype in gtkvpaned.h.
From: Tom Tromey <tromey@creche.cygnus.com>
Here's a small patch that corrects a prototype in gtkvpaned.h.

                                        -owt
1998-02-07 16:10:01 +00:00
Tim Janik
89107cb751 clean ups. -timj
clean ups.
-timj
1998-02-07 04:59:23 +00:00
Tim Janik
edad08addd don't wipe out window_private's x and y coordinates if the configure
Sat Feb  7 02:29:01 1998  Tim Janik  <timj@gimp.org>

        * gdk/gdk.c (gdk_event_translate): don't wipe out window_private's x
          and y coordinates if the configure notify is only about resizing,
          query the correct origin instead.
1998-02-07 02:26:09 +00:00
Jay Painter
5b597c65c7 A little cosmetic cleanup 1998-02-05 08:40:06 +00:00
scott
d3c3333735 Menufactory now refs&sinks its children.
--sg
1998-02-05 04:10:43 +00:00
Tim Janik
9258a7aecb new function to perform the same actions as gtk_list_remove_items, but
Thu Feb  5 02:13:08 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtklist.h:
        * gtk/gtklist.c (gtk_list_remove_items_no_unref): new function
          to perform the same actions as gtk_list_remove_items, but
          supply the removed widgets with an additional reference count.

        * gtk/gtkmain.c (gtk_main_iteration_do): ignore events
          with event_widget == NULL, since they are bogus events
          from destroyed GdkWindows, exept for the case where
          event->type==GDK_PROPERTY_NOTIFY. Always handle expired
          timeout functions when returning from this function.

        * gtk/gtkwidget.c (gtk_widget_event): ignore GDK_EXPOSE events
          if event->window == NULL. Also, if this function couldn't handle
          the event for any reason (including failing assumptions), make
          the return value to look as if the event had been handled to
          avoid further processing (and warnings).

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: remove gtk_widget_sink, because there is
          no point in providing such a function.

        * gdk/gdk.c (gdk_init): changed options `-name' and `-class'
          to `--name' and `--class', because the old names would
          confuse getopt(). these arguments have been introduced in the
          changes from gtk+970916 to gtk+970925 without a ChangeLog entry,
          changing argument names is painful, it would be nice if people
          would care about compatibility and consistency in the first place!
1998-02-05 03:53:41 +00:00
Tim Janik
f82814760e section: Gnits to care about -------------------
section:
Gnits to care about
-------------------

-timj
1998-02-05 00:13:42 +00:00
Tim Janik
4b86717650 documentation. -timj
documentation.
-timj
1998-02-04 03:18:53 +00:00
Tim Janik
8d2bb0f43e indentations. -timj
indentations.
-timj
1998-02-04 00:06:29 +00:00
Owen Taylor
23a13fd4a5 Renamed widget_states.txt to widget_system.txt, and
made some further revisions.
1998-02-03 23:31:21 +00:00
Tim Janik
64ca527ecb for the emission of AFTER signals, fetch the objects signals via
Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtksignal.c (gtk_signal_real_emit): for the emission
          of AFTER signals, fetch the objects signals via
          gtk_signal_get_handlers again. some handlers might have
          been removed or added. not doing this would mess up the
          memchunk allocation of signal handlers (this had been
          triggered by multiple *_while_alive connections), bad, bad, bad!
          (gtk_handlers_run): do the referencing on signal handlers
          unconditionally, the invokation of AFTER handlers will now take
          care of modified lists.

        * gtk/gtksignal.h: added gtk_signal_connect_while_alive.
1998-02-03 21:36:06 +00:00
Owen Taylor
3b0de24a7b Only query the colormap for GRAYSCALE and PSEUDOCOLOR visuals, and don't
Tue Feb  3 15:34:27 1998  Owen Taylor  <owt1@cornell.edu>

	* gdk/gdkcolor.c (gdk_colormap_get_system): Only query
	  the colormap for GRAYSCALE and PSEUDOCOLOR visuals,
	  and don't ask for more than 256 colors in any case.

	* gdk/gdkwindow.c (gdk_window_internal_destroy): Remove
	  the input window information when we destroy the window,
	  not when we are notified of it.

	* gdk/gdkinputcommon.h (gdk_input_device_new): Work around
	  bug in XFree86 3.3.1's handling of Wacom macro buttons.
	  by assumming no device will report exactly 25 buttons.

	* gdk/gdkinputcommon.h (gdk_input_common_other_event): Fill
	  in string translation for generated key press events,
	  do sanity checking on received key codes.

	* gdk/gdkcc.c (gdk_color_context_new): Allocate enough
	  room for a GdkColorContextPrivate, not just for a
	  GdkColorContext.
1998-02-03 20:57:40 +00:00
Tim Janik
5842311062 don't add the same menu to different menuitems/ optionmenus.
Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>

        * gtk/testgtk.c: don't add the same menu to different menuitems/
          optionmenus.

        * gtk/gtkmenuitem.h:
        * gtk/gtkmenuitem.c: new function gtk_menu_item_remove_submenu ro
          be consistent with optionmenu. use gtk_menu_attach_to_widget/
          gtk_menu_detach for setting/removing the submenu.
          invoke gtk_widget_destroy(submenu) in destructor to be consistent
          with other destructors.

        * gtk/gtkoptionmenu.h:
        * gtk/gtkoptionmenu.c: attach/detach to menu widget via
          gtk_menu_attach_to_widget/gtk_menu_detach.
          invoke gtk_widget_destroy(menu) in destructor to be consistent
          with other destructors.
1998-02-03 15:14:35 +00:00
Tim Janik
b45cd0430c attach/detach to menu widget via
Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkoptionmenu.h:
        * gtk/gtkoptionmenu.c: attach/detach to menu widget via

        * gtk/gtkmenu.h:
        * gtk/gtkmenu.c: new functions gtk_menu_attach_to_widget
          and gtk_menu_detach that correspond to the action of
          gtk_widget_set_parent and gtk_widget_unparent.

        * gtk/widget.c: few fixups.
1998-02-03 14:13:05 +00:00
Owen Taylor
a8629917ae gtk/gtktable.c Fixed problem with division by zero in row/column-spanned
Tue Feb  3 00:12:00 1998  Owen Taylor  <owt1@cornell.edu>
	* gtk/gtktable.c
	  Fixed problem with division by zero in row/column-spanned
	  tables. Also removed a bunch of conditionals by making
	  the observation that x/1 == x.
1998-02-03 05:57:31 +00:00
Owen Taylor
febe6498f2 Fixed (?) problem with arithmentic exceptions in row/column
spanned tables.
1998-02-03 05:23:03 +00:00
Tim Janik
fc86f630a6 dunno, what cvs wants right now. i just told me these
changes are already commited... ;(
-timj
1998-02-02 21:41:24 +00:00
Tim Janik
b239e3c941 changed name to reflect that these macros in fact can't operate on
Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwindow.c:
        * gtk/gtkwidget.c:
        * gtk/gtkmain.c:
        * gtk/gtkwidget.c:
        * gtk/gtkcontainer.c:
        * gtk/gtkprivate.h (GTK_PRIVATE_UNSET_FLAG) (GTK_PRIVATE_UNSET_FLAGS):
          changed name to reflect that these macros in fact can't operate on
          multiple flags.
1998-02-02 21:07:18 +00:00
Tim Janik
6b5e983f3d fixed destroy handler, so it doesn't segfault with the new refcounting
Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtktoolbar.c: fixed destroy handler, so it doesn't
          segfault with the new refcounting scheme anymore.

        * gtk/gtkhandlebox.c:
        * gtk/gtkclist.c:
        * gtk/gtkentry.c:
        * gtk/gtkrange.c:
        * gtk/gtktext.c:
        * gtk/gtkviewport.c:
          enforced
          gdk_window_set_user_data (window, NULL);
          gdk_window_destroy (window);
          window = NULL;
          throughout the code.
1998-02-02 20:40:03 +00:00
Tim Janik
eeaefdf04f fixed a bad, bad referencing bug that could caused unreferencing of
Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkmain.c (gtk_propagate_event): fixed a bad, bad referencing
          bug that could caused unreferencing of finalized objects.

        * gtk/testgtk.c: destroy fileselection on "OK" (this triggered the
          above mentioned bug).

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c:
        * gtk/gtkobject.h:
        * gtk/gtkobject.c:
          implemented and object reference tracer (gtk_trace_referencing) which
          is activated if GTK_TRACE_OBJECTS is defined (currently per default).
          in gdb: set the static variable `gtk_trace_object' to point to the
          object that you want to have reference traced.

        * gtk/gtkfileselection.c: few cleanups.
1998-02-02 18:44:28 +00:00
Tim Janik
8822bde131 cleanups with key name spaces.
Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkcolorsel.c:
        * gtk/gtkcombo.c:
        * gtk/gtkobject.c:
        * gtk/gtkselection.c:
        * gtk/gtkwidget.c:
        * gtk/gtkwindow.c:
          cleanups with key name spaces.

        * gtk/gtkcombo.c: fixed destruction bug with popwin.
1998-02-02 14:13:13 +00:00
Tim Janik
c3154703d0 watch the next ChangeLog update...
-timj
1998-02-02 14:11:24 +00:00
Tim Janik
57bae55574 fixed a refresh bug with unrealization of no_window widgets.
(dialog button in tesgtk)
-timj
1998-02-02 05:35:59 +00:00
Tim Janik
58df302b15 forgot gtkprivate.h as well
-timj
1998-02-02 04:56:42 +00:00
Tim Janik
35ba1ac7ef hehe, forgot the ChangeLog
-timj
1998-02-02 04:55:09 +00:00
Tim Janik
eef38289b2 GTK_RESIZE_NEEDED is a private flag now.
Mon Feb  2 04:15:08 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkcontainer.h:
        * gtk/gtkcontainer.c: GTK_RESIZE_NEEDED is a private flag now.
          (gtk_container_register_toplevel): new function.
          (gtk_container_unregister_toplevel): new function.

        * gtk/gtkmain.c: GTK_LEAVE_PENDING is a private flag now.

        * gtk/gtkmenu.c: call gtk_container_register_toplevel in
          gtk_menu_class_init instead of this dirty gtk_widget_set_parent(,NULL)
          hack. new default handler gtk_menu_destroy for calling
          gtk_container_unregister_toplevel. removed GTK_ANCHORED, GTK_UNMAPPED.

        * gtk/gtkobject.h: macro cleanups, added GTK_DESTROYED flag.

        * gtk/gtkobject.c: only emit DESTROY signal if !GTK_OBJECT_DESTROYED
          (object).

        * gtk/gtkprivate.h: new file that will not be automatically included.
          it holds the private flags for GtkWidget along with it's SET/UNSET
          and examination macros.

        * gtk/gtkwidget.c: private flags: GTK_RESIZE_NEEDED, GTK_REDRAW_PENDING,
          GTK_RESIZE_PENDING, GTK_IN_REPARENT, GTK_USER_STYLE. GTK_ANCHORED is
          replaced by GTK_TOPLEVEL. added missing UNSET for GTK_IN_REPARENT.
          removed the gtk_widget_set_parent(, NULL) hack for toplevels.
          upon destroy free memory for widgets with GTK_WIDGET_HAS_SHAPE_MASK.

        * gtk/gtkwidget.h: split up the widget flags into a public and a private
          portion. added an extra field private_flags to GtkWidget without making
          it bigger by using an alignment gap of 16 bit. macro cleanups.

        * gtk/gtkwindow.c: removed GTK_ANCHORED. new function gtk_window_destroy
          for calling gtk_container_unregister_toplevel. removed the
          gtk_widget_set_parent(,NULL), call gtk_container_register_toplevel
          instead. remove GTK_UNMAPPED. GTK_RESIZE_NEEDED is private now.

        * gtk/gtksignal.c (gtk_signal_disconnect): removed a bug on
          removal that cut off the handler list -> living_objects == 0
          with testgtk. made some warnings more descriptive.
          new function gtk_signal_connect_object_while_alive, which
          will automatically destroy the connection once one of the objects
          is destroyed. didn't include this before removal of the above
          mentioned bug.

* reflected refcounting revolution in ChangeLog
1998-02-02 04:54:25 +00:00
Radek Doulik
81fe36047e move enum GtkToolbarChildType before typedef to make gtktoolbar.h compile with c++ (or egcs at least :) 1998-02-01 08:50:08 +00:00
Owen Taylor
b0de5e73f5 Some documentation of the internals.
Owen
1998-02-01 08:22:51 +00:00
Owen Taylor
1522f2ae59 Added a new GTK_IN_REPARENT flag and revised gtk_widget_reparent so that
Sat Jan 31 21:26:27 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkwidget.c: Added a new GTK_IN_REPARENT flag and revised
	  gtk_widget_reparent so that the child would not be unrealized
	  unnecessarily. Changed gtk_widget_unrealize () to recursively
	  unrealize the children (since the child windows will be
	  destroyed too.)
1998-02-01 02:28:14 +00:00
Shawn Amundson
a11062b2d9 I got sick of typing in the same commands over and over, so borrowed
autogen.sh from gnome cvs...  Also corrected some info in HACKING.

-Shawn
1998-01-31 17:43:56 +00:00
Manish Singh
01200282da Added and autoconfigured in a new utility function g_strcasecmp
GtkCombo uses g_strcasecmp now
Quelled a warning about atexit undeclared in gtkobject

-Yosh
1998-01-31 08:15:57 +00:00
Owen Taylor
4ef94fd74e Backed out change to close polygons since it caused problems for the
Sat Jan 31 00:13:33 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkstyle.c: Backed out change to close polygons
	  since it caused problems for the Notebook.
1998-01-31 05:12:37 +00:00
Owen Taylor
b38b6f5f0f - Conformity to new reference counting schemes - Font and color
Fri Jan 30 22:28:09 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkclist.{c,h}:
	   - Conformity to new reference counting schemes
	   - Font and color information is no-longer taken from
	     the (possibly unitialized) style before the widget
	     is realized, but is obtained when needed. (Fixes
	     problems with non-default styles)
	   - white_gc => base_gc where appropriate
	   - Handle graphics expose events correctly (or as
	     correctly as anywhere else) so that scrolling when
	     overlapped works.
1998-01-31 03:33:02 +00:00
Owen Taylor
db628b3ca0 In gtk_widget_init, set the flags _on_top_of_ those for
GTK_OBJECT, to avoid clearing the FLOATING flag.
living_objects == 0!
1998-01-31 02:28:43 +00:00
George Lebl
015c1052ae fixed round-off error in calculation of tables with a lot of cells
Fri Jan 30 17:41:06 1998  George Lebl  <jirka@5z.com>

        * gtk/gtktable.c: fixed round-off error in calculation
          of tables with a lot of cells
1998-01-31 01:43:47 +00:00
Federico Mena
ce4263f901 red/green/blue parameters are now expected to be in [0, 65535], to be
Fri Jan 30 08:51:16 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gdk/gdkcc.c (gdk_color_context_get_pixel): red/green/blue
 	parameters are now expected to be in [0, 65535], to be consistent
 	with the rest of Gdk.
	(gdk_color_context_get_pixels): Made it use 16-bit color values as
 	well.  Fixed mdist=1000000 buglet (it should start with at least
 	0x1000000).
	(gdk_color_context_get_pixels_incremental): Same as
	gdk_color_context_get_pixels().
1998-01-31 00:09:58 +00:00
Tim Janik
4af33fa24d hm, initital refcount revolution commit ;)
still some gnits left, but keep working on it ;)
-timj
1998-01-30 23:47:09 +00:00
Radek Doulik
ee7038f9fd make toolbar Child structure accesible from apps 1998-01-30 10:21:37 +00:00
Owen Taylor
7922f34318 Close the polygon if it isn't already. (To match gtk_draw_polygon)
Thu Jan 29 22:57:39 1998  Owen Taylor  <owt1@cornell.edu>

	* gtk/gtkstyle.c (gtk_default_draw_polygon): Close
	  the polygon if it isn't already. (To match gtk_draw_polygon)
	  Simplified logic. (Appearance could probably be
	  improved for objects with gradual curves by adding in
	  some intermediate edge coloration)
1998-01-30 03:58:47 +00:00
Tim Janik
ac492cfab6 discovered and documented a new bug ;)
-timj
1998-01-30 03:51:43 +00:00
Tim Janik
1ff162c445 some bugs worked out.
comment cleanups
-timj
1998-01-30 01:34:19 +00:00
Tim Janik
38bffa52d3 new function to gather information about a certain signal.
Thu Jan 29 21:36:14 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtksignal.c (gtk_signal_query): new function to gather
          information about a certain signal.

        * gtk/gtksignal.c (gtk_signal_newv): new function similar to
          gtk_signal_new().

        * gtk/gtksignal.c (gtk_signal_real_emit): check for function_offset
          == 0.

        * gtk/gtksignal.c (gtk_signal_connect_by_type): perform a signal
          id lookup on the parent as well.

        * gtk/gtkobject.c (gtk_object_class_add_user_signal): new
          function for implementation of user defined signals.
        * gtk/gtkobject.c (gtk_object_class_add_signals): free old
          signal id array.

        * gtk/gtkobject.h: this holds the typedefs for GtkSignalFunc and
          GtkSignalMarshaller now, because they are used for
          gtk_object_class_add_user_signal.

        * gtk/gtktypeutils.c (gtk_type_class_init): reset object_class->signals
          and object_class->nsignals for new object classes.
1998-01-29 20:46:05 +00:00
Tim Janik
db6a8d4a8a new user signal, and possibility to query signal information.
-timj
1998-01-29 20:44:14 +00:00
Tim Janik
22388cfc07 this goes to *all* widget writers,
you have to follow the gtk+ nameing scheme, otherwise bad things
will happen (in e.g. signal/argument/type lookups).
-timj
1998-01-29 13:47:47 +00:00
Tim Janik
b5b1534b10 removed a FIXME that i had forgotten earlier. 1998-01-29 08:44:55 +00:00
Manish Singh
89a5c21c07 The list sort functions compared things backwards. Fixed.
The list iterator macros now check for NULL args

-Yosh
1998-01-29 08:00:28 +00:00
Arturo Espinosa
4fb20bdbcc Small fix to my previous GtkTable commit -miguel 1998-01-28 05:55:54 +00:00
Arturo Espinosa
7b2f9afe4c Oops, forgot a clean-up - Federico 1998-01-28 03:51:48 +00:00
Federico Mena
bad1cb0f37 The auto_shrink policy of the floating window is now set to TRUE. This
Tue Jan 27 15:52:48 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gtk/gtkhandlebox.c (gtk_handle_box_realize): The auto_shrink
	policy of the floating window is now set to TRUE.  This fixes the
	problem of the floating window being too big when the handlebox
	child is small.
	(gtk_handle_box_motion): Now we use GDK_POINTER_MOTION_HINT_MASK
	to improve movement.
1998-01-28 03:41:55 +00:00
Arturo Espinosa
4cb6dec331 Tables autoresize now -miguel 1998-01-27 23:40:51 +00:00
Shawn Amundson
d43c0de3f4 More changes from Tony Gale. 1998-01-27 20:51:36 +00:00
Manish Singh
a9f866f4ca g_string_prepend* had interchanged src and dest params. Fixed.
-Yosh
1998-01-27 17:50:07 +00:00
Manish Singh
8f355e26ef Fixed a really lame error where g_slist_insert didn't hook the data
in! Reworked the routine a bit too.

-Yosh
1998-01-27 09:42:41 +00:00
Jay Painter
3cefe524dc Shows the widgets properly. -Jay 1998-01-27 06:39:56 +00:00
Elliot Lee
918f7d484d Fixed widget sensitivity for the treeitem - please review at leisure 1998-01-27 03:57:59 +00:00
CST 1998 Shawn T. Amundson
2c4b378455 additions/changes from new FAQ maintainers Nathan Froyd and Tony Gale.
Mon Jan 26 17:12:12 CST 1998 Shawn T. Amundson <amundson@gimp.org>

        * docs/gtkfaq.sgml: additions/changes from new FAQ maintainers
          Nathan Froyd and Tony Gale.
1998-01-26 23:11:51 +00:00
CST 1998 Shawn T. Amundson
347a06e3d0 additions/changes from Gregory A. McLean
Mon Jan 26 16:54:02 CST 1998 Shawn T. Amundson <amundson@gimp.org>

        * docs/gtk.texi: additions/changes from Gregory A. McLean
1998-01-26 22:57:10 +00:00
Tim Janik
f734007af4 added a bunch of checks for window != NULL and private->destroyed. (don't
Mon Jan 26 02:15:29 1998  Tim Janik  <timj@gimp.org>

        * gdk/gdkdraw.c:
        * gdk/gdkgc.c:
        * gdk/gdkimage.c:
        * gdk/gdkinput.c:
        * gdk/gdkpixmap.c:
        * gdk/gdkproperty.c:
        * gdk/gdkselection.c:
        * gdk/gdkwindow.c: added a bunch of checks for window != NULL and
          private->destroyed.
(don't trust this cvs commit message, i didn't modify that many files!)
1998-01-26 01:20:14 +00:00
Jay Painter
63f6c689ff Fixed a resizing bug with CList where you could loose the end of the last
column; I also fixed a small cosmetic problem with the fileselect. -Jay
1998-01-26 00:07:40 +00:00
Tim Janik
edf9e176db added new widget flag GTK_LEAVE_PENDING. if a widget has GTK_LEAVE_PENDING
Sun Jan 25 19:15:32 1998  Tim Janik  <timj@gimp.org>

        * gtk/gtkwidget.h (enum): added new widget flag GTK_LEAVE_PENDING.
        * gtk/gtkmain.c (gtk_main_iteration_do): if a widget has
          GTK_LEAVE_PENDING set, send it its LEAVE_NOTIFY event, regardless
          of a grab or sensitivity.
          changed the compression code for enter/leave notify events to
          free *both* compressed event, and removed an unneccessary call
          to g_list_remove.

        * ChangeLog: finally catched up with the recent changes on my part.
1998-01-25 18:45:56 +00:00
Tim Janik
33f3f4a2ae forgot a printf() line ;)
-timj
1998-01-24 20:03:58 +00:00
Tim Janik
6f7faf9df2 gtk_object_query_args() now returns the args in the corret order.
-timj
1998-01-24 20:02:19 +00:00
Jay Painter
3942cb76af Changed static function names/reorganized to make more sense. -Jay 1998-01-24 19:14:42 +00:00
Tim Janik
6365ebc9ea added BUGS. -timj
added BUGS.
-timj
1998-01-24 18:45:34 +00:00
Tim Janik
36b2a2ebcd new element n_args in GtkObjectClass.
-timj
1998-01-23 10:38:29 +00:00
Federico Mena
3779493d17 Switched the file to GNU indentation, for consistency.
Thu Jan 22 18:58:44 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gdk/gdkcc.c: Switched the file to GNU indentation, for consistency.
1998-01-23 06:26:39 +00:00
Federico Mena
01f66785cb Picky, picky... fix two lines with wrong indentation :-)
Thu Jan 22 18:58:44 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gdk/gdktypes.h (struct _GdkColorContext): Picky, picky... fix
	two lines with wrong indentation :-)
1998-01-23 06:05:39 +00:00
scott
5cb62b4561 gtk/Makefile.am: Fixed the called to runelisp to use $(SHELL).
(Cannot rely on the script having execute permissions.)
--sg
1998-01-22 07:34:13 +00:00
Shawn Amundson
d64570b781 Release GTK+ 0.99.3. 1998-01-21 23:29:56 +00:00
Tim Janik
fb48f5a356 some gtk_*_set_arg fixes
-timj
1998-01-21 23:03:11 +00:00
Shawn Amundson
b2140a2322 Added FAQ to the tree in prep for others to start working on it... 1998-01-21 22:41:35 +00:00
Ian Main
0b372cfb3a Added in Jay's new gtk_clist_column_titles_passive() call.
Ian
1998-01-21 09:31:57 +00:00
Tim Janik
2d42cb955e sigh, it wasn't so simple - first correction
-timj
1998-01-21 09:16:33 +00:00
Ian Main
10be064561 Forgot to free GList on destroy, and to destroy fileop dialog boxes.
Ian
1998-01-21 09:06:05 +00:00
Jay Painter
b533c32dd4 GtkCList Updates. -Jay 1998-01-21 08:56:52 +00:00
Ian Main
3dca445763 Small fix for the optionmenu.
Ian
1998-01-21 08:50:47 +00:00
Tim Janik
5e517e426c new function gdk_pointer_is_grabbed(). extremely simple ;)
-timj
1998-01-21 08:35:37 +00:00
Ian Main
325dc92ad4 New file selection dialog. Converted to use clist, added Mac-like pulldown,
and a few simple file operations.


	Ian Main <slow@intergate.bc.ca
1998-01-21 07:53:07 +00:00
Shawn Amundson
d1da1a45a0 strdup changed to g_strdup
-Shawn
1998-01-21 05:13:01 +00:00
Shawn Amundson
06f64ff941 Got rid of -z text for Solaris x86... again... sigh.
-Shawn
1998-01-21 05:04:45 +00:00
Tim Janik
4c2931aab5 removed some superfluous variables that duplicated widget->state.
updated ChangeLog.
-timj
1998-01-21 00:52:17 +00:00
Tim Janik
3ae8c300bb Applied patch from (Raja R Harinath <harinath@cs.umn.edu>) to add function
Wed Jan 21 01:13:25 1998  Tim Janik  <timj@psynet.net>

        * Applied patch from (Raja R Harinath <harinath@cs.umn.edu>)
          to add function g_snprintf.
        * configure.in (AC_CHECK_FUNCS): Check for vsnprintf.
        * glib.h: Add prototype for g_snprintf.
        * glibconfig.h.in: Add HAVE_VSNPRINTF.
        * gutils.c (g_snprintf): new function.
1998-01-21 00:46:48 +00:00
Elliot Lee
18ee22d93b Use browse mode on the list 1998-01-21 00:34:27 +00:00
Tim Janik
3b95a7a2b1 sensitivity and state setting combination.
-timj
1998-01-20 23:58:42 +00:00
Tim Janik
275d8a2696 glib aclocal stuff -timj
glib aclocal stuff
-timj
1998-01-20 23:53:15 +00:00
Owen Taylor
0dae051ddd Conversion to use Paolo Molaro's GtkCombo instead of GtkComboBox 1998-01-20 21:40:38 +00:00
Jay Painter
a7a7e430bf GtkCList updates. -Jay 1998-01-20 11:46:15 +00:00
Miguel de Icaza
839be1dfdb someone forgot the __cplusplus closing brace.
Mon Jan 19 19:05:26 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtk/gtkstatusbar.h: someone forgot the __cplusplus closing brace.
1998-01-20 01:04:55 +00:00
Federico Mena
53ac2efcad Set container_class->focus to NULL. Widgets in the toolbar should not get
Mon Jan 19 16:21:00 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gtk/gtktoolbar.c (gtk_toolbar_class_init): Set
	container_class->focus to NULL.  Widgets in the toolbar should not
	get the focus via the normal key bindings (no toolkit does this,
	and it makes sense).
1998-01-19 23:45:37 +00:00
Federico Mena
73386d5761 Removed the GTK_PIXMAP casts to match Eckehard's new prototypes.
Mon Jan 19 16:21:00 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gtk/testgtk.c (create_toolbar): Removed the GTK_PIXMAP casts to
	match Eckehard's new prototypes.

	* gtk/gtktoolbar.h: Switched the order of the tooltip_text and
	widget parameters to the gtk_toolbar_*_widget() functions, to be
	friendlier to the C++ bindings.  This is per request of Guillaume
	Laurent.
1998-01-19 22:38:22 +00:00
Jay Painter
79f69b1676 GtkCList updates: Click-Drag column resizing, a couple of layout
fixes, show/hide functions for the title buttons, and I've replaced
gtk_clist_new with gtk_clist_new_with_titles.  gtk_clist_new will
create a list without title bars which can be added later by calling
gtk_clist_set_column_(title/widget) for the column button you want to add.
A column button for column 0 always exhists, and buttons span all columns
until they come to the next exhisting button, or the last column. -Jay
1998-01-19 09:59:20 +00:00
Tim Janik
1a8765e6ce this is a stack of grabbing widgets now, having unique entries. the
Mon Jan 19 09:16:38 1998  Tim Janik  <timj@psynet.net>

        * gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
          of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
          flag of a widget is set while it is on the stack (wasn't
          implemented before).
1998-01-19 08:23:24 +00:00
MET Eckehard Berns
0c6a6baa08 changed gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget as
Mon Jan 19 00:46:18 1998 MET  Eckehard Berns  <eb@berns.prima.de>

	* gtk/gtktoolbar.[ch]: changed
 	  gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget
 	  as icon to allow more flexibility
1998-01-18 23:49:56 +00:00
Shawn Amundson
9dcce18815 Forgot this. -Shawn
Forgot this.
-Shawn
1998-01-18 23:04:43 +00:00
Shawn Amundson
67e6757069 Statusbar widget. -Shawn
Statusbar widget.
-Shawn
1998-01-18 23:01:09 +00:00
Owen Taylor
2dd1106130 Missed some files -owt
Missed some files
                                        -owt
1998-01-18 18:21:33 +00:00
Tim Janik
59ff297c24 implementations of gtk_invoke_key_snoopers(), gtk_key_snooper_install()
implementations of
gtk_invoke_key_snoopers(),
gtk_key_snooper_install() and
gtk_key_snooper_remove()
-timj
1998-01-18 18:17:23 +00:00
Tim Janik
f424cd83a9 g_str_hash stuff -timj
g_str_hash stuff
-timj
1998-01-18 18:15:46 +00:00
Owen Taylor
4628759d3b renamed g_string_equal => g_str_equal renamed g_string_hash => g_str_hash
Sat Jan 17 23:52:40 1998  Owen Taylor  <owt1@cornell.edu>

	* gstring.{c,h} gscanner.c:
	   renamed g_string_equal => g_str_equal
	   renamed g_string_hash => g_str_hash
	  And const corrected. Old functions left in for now.
1998-01-18 15:12:01 +00:00
Owen Taylor
11d37c5067 gtkbutton.c gtkclist.c gtkdrawingarea.c gtkentry.c gtkeventbox.c
Sun Jan 18 09:57:00 1998  Owen Taylor  <owt1@cornell.edu>
* gtkbutton.c gtkclist.c gtkdrawingarea.c gtkentry.c gtkeventbox.c
  gtkfixed.c gtkhandlebox.c gtkhscale.c gtkhscrollbar.c gtkitem.c
  gtklist.c gtkmenushell.c gtkmisc.c gtknotebook.c gtkpaned.c
  gtkpreview.c gtkprogressbar.c gtkruler.c gtktext.c gtktree.c
  gtkviewport.c gtkvscale.c gtkvscrollbar.c gtkwidget.{c,h}

  Added gtk_widget_set_parent and gtk_widget_get_parent. All
  widgets should use:

   gtk_widget_get_parent() instead of widget->parent->window.

  Any widget that wants to have children not in the parent window,
  should use gtk_widget_set_parent () in their realize() and
  add () routines.

  CList and Viewport widgets changed to do this. (Viewport
  widget using code from gtk-fortier-980117-0.patch.)
1998-01-18 15:09:10 +00:00
Tim Janik
1e34b9ba8d updates... -timj
updates...
-timj
1998-01-18 11:11:27 +00:00
Tim Janik
1e764e1b41 gtk_*_get_arg() and gtk_*_set_arg() implementations. new arg
Sun Jan 18 03:57:52 1998  Tim Janik  <timj@psynet.net>

        * gtk/gtkframe.c: gtk_*_get_arg() and gtk_*_set_arg() implementations.
        * gtk/gtkobject.c: new arg `GtkObject::object_signal' similar to
          `GtkObject::signal'. check for class type in gtk_object_{setv|getv}.

        * gtk/gtkobject.c:
        * gtk/gtksignal.c:
        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: added GTK_TYPE_DOUBLE.

        * gtk/gtkwidget.c: new args `has_focus' and `has_default'.
        * gtk/gtkwindow.c: new arg `window_position'.
1998-01-18 11:09:04 +00:00
Tim Janik
e35fb5486f checked in wrong version of gtk_box_reorder_child previously.
-timj
1998-01-18 04:15:22 +00:00
Tim Janik
40808fa050 new functions gtk_box_reorder_child, gtk_box_query_child_packing and
Sun Jan 18 03:57:52 1998  Tim Janik  <timj@psynet.net>

        * gtk/gtkbox.h:
        * gtk/gtkbox.c: new functions gtk_box_reorder_child,
        gtk_box_query_child_packing and gtk_box_set_child_packing to
        allow modification of the child linkage after the widget tree
        is setup.

        * gtk/gtkbox.c:
        * gtk/gtklabel.c:
        * gtk/gtkwindow.c:
        * gtk/gtkwidget.c:
        * gtk/gtkobject.c: gtk_*_get_arg() and gtk_*_set_arg() fixes
          and implementations.
1998-01-18 03:09:42 +00:00
Jay Painter
3f44ca9487 Fixed GDK_INPUT_ONLY window type. -Jay 1998-01-17 23:35:52 +00:00
Owen Taylor
84cf918177 changed log -owt
changed log
                                        -owt
1998-01-17 23:29:17 +00:00
Owen Taylor
443648028c Take putback events into account
* gdk/gdk.c (gdk_events_pending): Take putback events into
  account

* gdk/gdk.c (gdk_event_free): Handle dropdataavaible memory
  allocation correctly. (Incompatible change: client must
  _not_ fre event->data and event->data_type.)

* gdk/gdk.c (gdk_event_translate): Changed DND dragging
  so that we don't ungrab pointer when we reenter window
  to prevent extra Enter/Leave effects which had bad
  effects.
  Changed drag zone handling to not send uncessary
  DragEnter events.
  Fixed EnterNotify/LeaveNotify handling. (Only pay
  attention to events on window, don't specify these
  events to XGrabPointer - that isn't valid, and handle
  reverse the sense of the handling of LeaveNotify.)

* gdk/gdkwindow.c (gdk_window_remove_filter): Free removed
  filter.

* gtk/gtk.defs (GdkFont): gdk_font_free => gdk_font_unref

* gtk/gtkmain.{c,h} (gtk_events_pending): new function - apps
  should use this instead of gdk_events_pending.

* gtk/gtkvbbox.h: Fixed a duplication in the headers.

* gtk/testgtk.c (dnd_drop): Don't free the drop data,
  it belongs to the event.
1998-01-17 23:24:09 +00:00
CST 1998 Shawn T. Amundson
2e99581612 Applied patch from <lupus@lettere.unipd.it> which adds
Sat Jan 17 13:26:15 CST 1998 Shawn T. Amundson <amundson@gimp.org>

        * gtk/gtkentry.[ch]:  Applied patch from <lupus@lettere.unipd.it>
          which adds gtk_entry_set_max_length function.  This was
          part of gtk-lupus-970112-0.

        * gtk/testgtk.c: Applied gtk-wille-980113-0 which fixes
          a problem with a shaped widget keeping grab forever
          when double clicked.

        * docs/gtk.texi: patch from Gregory McLean <gregm@randomc.com>
          to add some on aspect_frame, button_box, and color_selection
          widgets
1998-01-17 22:48:31 +00:00
Tim Janik
8d721e5b75 more *_get_arg/*_set_arg implementations
-timj
1998-01-17 07:52:38 +00:00
Tim Janik
8dc9cd53ff +Sat Jan 17 06:24:05 1998 Tim Janik <timj@psynet.net>
+
+        * gtk/gtktypeutils.h (gtk_type_get_arg): new function.
+        * gtk/gtkobject.h (gtk_object_query_args): new function.
+        * gtk/gtkobject.h (gtk_object_getv): new function.
+        * gtk/gtkwidget.h (gtk_widget_get): new function.
1998-01-17 05:31:13 +00:00
Federico Mena
c44ba4b377 Now we use a GtkWindow of type GTK_WINDOW_DIALOG as a destination for
Fri Jan 16 00:36:31 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gtk/gtkhandlebox.c: Now we use a GtkWindow of type
	GTK_WINDOW_DIALOG as a destination for reparenting the child of
	the handle box.  This solves the problem of having X calls in
	Gtk.  It also makes the handle box work with KWM, OLVWM, 4Dwm (so
	I expect mwm to work as well).  I hadn't noticed that previously
	it only worked with fvwm and twm.

	* gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
	real_parent field, as it is never used.
	(struct _GtkHandleBox): Added a float_window field.  This is a
	GtkWindow to where the child is now reparented.
1998-01-16 23:43:10 +00:00
Shawn Amundson
a6252a3297 Added note for when 0.99.2 was released.
-Shawn
1998-01-16 22:07:31 +00:00
Federico Mena
582a3f433c Lots of changes all over the place. Now the widget has two windows. The
Fri Jan 16 00:36:31 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>

	* gtk/gtkhandlebox.c: Lots of changes all over the place.  Now the
	widget has two windows.  The steady_window stays put in the parent
	container, and the widget->window is the one that gets
	reparented.  Now that window is transient, in compliance with the
	ICCCM, instead of an OverrideRedirect window.

	We have two windows so that we can properly receive Expose events
	for the thin 3D line that marks the place where the handlebox is
	docked.

	* gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
	dragging (mouse position information).  Added fleur_cursor so that
	we look pretty.  Added steady_window field; it is the window that
	actually stays on the parent (widget->window is the one that gets
	reparented).

Owen, this is the version with the two X calls in gtkhandlebox.c.
I'll do as you say; either we can add new calls to Gdk, or I can
modify the handle box code to use a separate GtkWindow and reparent
the child into that.

- Federico
1998-01-16 19:01:56 +00:00
Tim Janik
97f11c694c implementation of gtk_widget_get()
-timj
1998-01-16 05:11:10 +00:00
Miguel de Icaza
aed02304eb Call gtk_clist_size_allocate_columns every time the column configuration
Thu Jan 15 19:03:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

        * gtk/gtkclist.c (gtk_clist_set_column_width): Call
        gtk_clist_size_allocate_columns every time the column
        configuration changes.
1998-01-16 01:51:56 +00:00
Tim Janik
8e1fb2cccd changelog correction ;(
-timj
1998-01-16 01:05:07 +00:00
Tim Janik
2d5a6055e8 changelog entry for the widget arg stuff.
-timj
1998-01-16 01:02:13 +00:00
Tim Janik
dd77b5db5a main part for GtkArgSetFunc/GtkArgGetFunc implementation.
-timj
1998-01-16 00:49:51 +00:00
Jay Painter
18681dc653 Fixed a small memory leak in gtkpaned, and I changed the cursor to a
"I" beam for gtkentry. -Jay
1998-01-15 08:45:57 +00:00
Tim Janik
f91efadd4f remove an invalid cast that shows up with debugging enabled only.
-timj
1998-01-15 03:49:51 +00:00
Jay Painter
880c62eec1 changlog updates 1998-01-13 15:19:36 +00:00
Jay Painter
72da1d3e02 GtkCList updates, GtkText now defaults to editable = FALSE, but you can
turn it on and type now without it seg-faulting.  You can also delete, but it
will eventually seg fault on you (oh well).  -Jay
1998-01-13 15:14:54 +00:00
Arturo Espinosa
4da8e492f7 Re-indented to GNU style to be consistent with the rest of Gtk - Federico 1998-01-13 07:00:52 +00:00
Federico Mena Quintero
139026de73 Fixed child->icon and child->label == NULL bugs.
1998-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtk/gtktoolbar.c: (gtk_real_toolbar_style_changed): Fixed
	child->icon and child->label == NULL bugs.

	* gtk/gtktoolbar.h: Added some new functions:
		gtk_toolbar_append_widget()
		gtk_toolbar_prepend_widget()
		gtk_toolbar_insert_widget()
	These let the user insert any kind of widget in the toolbar.  Also
	changed the gtk_toolbar_*_item() functions to return a
	GtkWidget * so that the user can do things with the toolbar buttons.

	* gtk/gtktoolbar.c: Now the toolbar supports its own buttons and
	arbitrary widgets as well.  Geometry management has been changed
	accordingly.  Added gtk_toolbar_remove() function, so container
	functionality should be complete now.

	* gtk/testgtk.c (create_toolbar): Added an entry widget to test
	the new toolbar.

	* Most of these changes are adapted from the
	gtk-lupus-970112-0-patch (should be 970112... :-)
1998-01-13 06:14:52 +00:00
Elliot Lee
284882b8c7 misc mods 1998-01-13 05:48:19 +00:00
Jay Painter
dfc3630c8c This reverts GTK to libtool-1.0f, libtool-1.0h has some problems linking libgdk to libX11 and libXext. -Jay 1998-01-12 15:41:36 +00:00
Ian Main
8bb622a983 *** empty log message *** 1998-01-11 04:47:23 +00:00
Ian Main
24cfae7295 Added a better test for './' and changed a few other things about the
correct_dir_fullname() function.

Ian
1998-01-11 04:03:32 +00:00
Tim Janik
75b20f2eaf changed message for EAGAIN from "no more processes" to "try again" since
Fri Jan  9 20:03:46 1998  Tim Janik  <timj@psynet.net>

        * gutils.c (g_strerror): changed message for EAGAIN from
        "no more processes" to "try again" since EAGAIN is used with
        functions else than fork().

        * gscanner.c (g_scanner_get_token_ll): use strtol() instead of
        strtoul() to avoid conflicts with solaris.

        * merged the glib portions from Jan 2 to Jan 7 out of gtk+/ChangeLog
        into this file.

hey folks, could you *please* honour the glib/ChangeLog?
1998-01-10 00:25:21 +00:00
Jay Painter
839b480391 Look and feel changes to CList so it now looks like a scrolled window.
I also added Sopwith's changes to gtk_clist_insert so you can pass the title
pointer as a null to insert a blank row.  Please make consistant changes
for things like this.  -Jay
1998-01-09 08:52:01 +00:00
Elliot Lee
6d33a0791a gtkclist: allow adding a new row without having to give text for it (i.e. if you want to put all pixmaps) 1998-01-09 04:14:58 +00:00
Manish Singh
00000538ed Added check for inline in configure and updated files to use it.
-Yosh
1998-01-09 01:48:19 +00:00
Elliot Lee
f873f58d5b a few modifications, blah blah 1998-01-08 20:25:33 +00:00
Manish Singh
1d58a2e291 Minor fixup to gtklabel for prototype/definition consistency
-Yosh
1998-01-08 19:02:40 +00:00
Elliot Lee
84e1ee4bac copyright notices 1998-01-08 16:25:31 +00:00
Elliot Lee
5eee6416f5 New widget (GtkComboBox) and fixed gdk_window_init to initialize gdk_root_parent some more 1998-01-08 04:13:13 +00:00
Manish Singh
4ccc005197 applied patch to use a backing pixmap for drawing in GtkEntry, which removes
the bad flickering. (gtk-wille-980106-0)

-Yosh
1998-01-08 01:58:39 +00:00
Manish Singh
52d5af4d7e Remembered to update the ChangeLog...
-Yosh
1998-01-07 10:06:36 +00:00
Manish Singh
82da232b12 Added g_list_insert_sorted and g_slist_insert_sorted to glib.
-Yosh
1998-01-07 07:37:36 +00:00
Elliot Lee
51a481d9e8 Added gtk_entry_set_editable() 1998-01-07 00:04:19 +00:00
Owen Taylor
d2aa891c8e Added "switch_page" signal. (gtk-hamann_jeske-971212-0.patch)
-owt
1998-01-06 21:59:43 +00:00
Owen Taylor
ad5466ca6e Fixed problem with deleting while text is selected.
Changed behavior so that motion keys remove selection.
Added new gtk_entry_select_region () call.

                                        -owt
1998-01-06 21:59:00 +00:00
Jay Painter
33a9119c22 clist updates to fix seg fault, list-end row removal, and row removal in BROWSE mode. -Jay 1998-01-06 06:48:48 +00:00
Arturo Espinosa
1f07d39e23 GDK_VISIBILITY_NOTIFY events were not working at all. It was my
fault; I wrote them hurriedly before going on vacation, and I never
did any testing.  Sorry :-)

Apart from the fix in Gdk, I added the corresponding
"visibility_notify_event" to GtkWidget.

- Federico
1998-01-06 01:17:10 +00:00
Arturo Espinosa
49517ca835 Some geometry management bugs fixed (and some others added -- will fix them
today).  Next I will make the handle box use a transient window.  It should
be done that way, according to the ICCCM.  We have to talk to the KDE guys
to use their window manager protocol to let the WM know that we don't want
decoration on our window.  This has to be hacked into other WMs, too.

- Federico
1998-01-05 19:41:03 +00:00
Jay Painter
be68a5dacb Updated libtool to 1.0h. -Jay 1998-01-05 18:42:42 +00:00
Owen Taylor
23db1522f6 Changed guint32 -> guint for bitfields. (Bitfields must be
int or unsigned int?)
1998-01-04 01:15:15 +00:00
Jay Painter
0e3e5eed78 Better Clist test in testgtk.c. -Jay 1998-01-03 23:28:28 +00:00
Shawn Amundson
957bd9d9c0 Changes in preparation for GTK 0.99.2 release. 1998-01-03 17:22:12 +00:00
Shawn Amundson
65d015d813 initialize scrollbar_spacing (gtk-fortier-980103-0)
* gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
          (gtk-fortier-980103-0)

-Shawn
1998-01-03 17:00:37 +00:00
scott
0eedb30ce8 Fixed a typo in configure.in (reported by Elrond on IRC).
--sg
1998-01-03 15:08:41 +00:00
Manish Singh
25995faa6c Added Gordon Matzigkeit's patch for fixed length gtk entry fields
-Yosh
1998-01-03 08:35:21 +00:00
Jay Painter
621e1dd4c2 Removal of inlines, and updated ChangeLog. -Jay 1998-01-03 07:45:05 +00:00
Shawn Amundson
8eb36ebbd5 Several portability fixes from Michael Callahan <callahan@xmission.com>
* Several portability fixes from Michael Callahan
          <callahan@xmission.com> including adding in missing
          #includes and adding void in function prototypes.

-Shawn
1998-01-03 05:46:58 +00:00
Jay Painter
39f02b638b Removed my ulgy splicing hack of glib.h/glibconfig.h. It's back to the
way it was. -Jay
1998-01-03 04:38:58 +00:00
Jay Painter
7a2073bf64 Added CList. -Jay 1998-01-03 03:31:34 +00:00
Jay Painter
948a3620cf Added column list widget GtkCList. -Jay Painter 1998-01-03 03:31:03 +00:00
Arturo Espinosa
303c8f03a8 I had forgot to put GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events in gtk_main_iteration() - Federico 1998-01-02 21:38:39 +00:00
Shawn Amundson
06dc220d64 On to GTK 0.99.1... 1998-01-02 21:03:53 +00:00
Elliot Lee
9dadde735c Go back to old handlebox for now, so we can get a release out 1998-01-02 20:31:46 +00:00
Shawn Amundson
dc4e9e2fe1 corrects a small resize bug in the viewport widget. The viewport widget
* gtk/gtkviewport.c: corrects a small resize bug in the
          viewport widget.  The viewport widget provides a _set_shadow
          function to draw its shadows. But if GTK_SHADOW_NONE is sent
          to this function, the viewport isn't resized correctly (it's
          still considered as a shadowed widget).  (gtk-fortier-971213-0)

        * gtk/gtknotebook.c: this patch fixes the redraw problems of
          notebook tabs, without using gdk_gc_set_clip_rectangle.
          (gtk-hamann_jeske-971218-0)

        * add gtk_widget_(show/hide)_all (Stefan Wille)
          (gtk-wille-301297-0)  Patch for testgtk not included
          because it did not patch clean.

-Shawn
1998-01-02 20:22:38 +00:00
Arturo Espinosa
0e9ff02e85 memcpy() requires <string.h> - Federico 1998-01-02 19:12:57 +00:00
Manish Singh
c3a5564894 Fixed up the xinput test in configure.in
-Yosh
1998-01-02 05:15:34 +00:00
Elliot Lee
2b65feb5a5 Fix warnings in testgtk 1998-01-02 04:31:37 +00:00
Elliot Lee
af9e316ce6 Fixed recursing bug in gdk_exit_func() 1998-01-02 03:43:24 +00:00
Manish Singh
92610dafdb Miscellaneous portability fixes.
-Yosh
1998-01-02 03:36:27 +00:00
Elliot Lee
26c35927f7 Fixed configure.in to AC_CONFIG_SUBDIRS(glib) 1998-01-01 23:45:23 +00:00
Elliot Lee
f7443e0e85 Fixed bug in get_length_upper_bound where g_print-ing a NULL string would cause a segfault 1998-01-01 22:48:18 +00:00
Elliot Lee
e2f5eb1c3e added gdk_window_withdraw - not sure if its needed, but oh well 1998-01-01 20:38:21 +00:00
Elliot Lee
0f6d9f0ffc GtkHandleBox needs some changes, it might not work now 1998-01-01 19:44:32 +00:00
Elliot Lee
36d360aa98 Added HACKING instructions - please revise as necessary 1998-01-01 18:57:04 +00:00
Elliot Lee
0516fcead1 handlebox now lets you set in_root flag (and if you set that, its location as well) 1998-01-01 03:31:11 +00:00
Elliot Lee
f872397c0c misc gtk touchups 1997-12-31 02:52:03 +00:00
Arturo Espinosa
aacb5bd1e3 Small typo fix 1997-12-30 03:47:51 +00:00
Miguel de Icaza
fb51b7a6c5 New function, used to copy the values from one gc to another gc.
Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
	from one gc to another gc.
1997-12-30 03:45:59 +00:00
Elliot Lee
b8e57550b7 ChangeLog entry 1997-12-28 01:30:51 +00:00
Elliot Lee
2d8acc12f3 HandleBox mostly works now (the size_request and size_allocate is black magic to me, I am lucky it works :) Plus a few other changes 1997-12-28 01:28:27 +00:00
Elliot Lee
a5fa0b03c0 A few fixes to the handlebox, mostly to make it debuggable 1997-12-28 00:34:22 +00:00
Elliot Lee
d02a42db34 added config.cache to the glib .cvsignore 1997-12-26 18:34:06 +00:00
scott
4c23b890c4 Added gtkhandlebox.c to Makefile.am. 1997-12-26 16:13:29 +00:00
scott
7c21169e72 Eliminated a compiler warning caused by not casting an argument in a
debugging message. :)
1997-12-26 16:11:40 +00:00
Arturo Espinosa
ad1a805810 Update for NoExpose and VisibilityNotify events - Federico 1997-12-26 08:54:43 +00:00
Arturo Espinosa
6ceea7e635 Added new GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events. They are needed
for the TV widget by Alan Cox and by the GtkXmHTML widget.

Only missing with respect to their Xlib counterparts are the
major_code and minor_code fields in the GdkEventNoExpose structure.
Does anyone need them for their code?

- Federico
1997-12-26 08:54:12 +00:00
Elliot Lee
ed11431bdb glib.h is autogenerated - if I am supposed to leave it in anyways, apologies 1997-12-26 03:08:38 +00:00
Tim Janik
ee489eafb0 this macro computes the spacing from klass->scrollbar_spacing now. adapted
* gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
        the spacing from klass->scrollbar_spacing now. adapted all functions
        that used this macro (based on a patch from Patrice Fortier).
        * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
        scrollbar_spacing to substitute a define (patch from Patrice Fortier).
-timj
1997-12-23 20:13:14 +00:00
Arturo Espinosa
104f72cf95 Added "orientation_changed" and "style_changed" signals to GtkToolbar.
Fixed some nits. - Federico
1997-12-23 06:11:36 +00:00
Elliot Lee
7bac5c59eb Need errno.h for glibc systems (among others) - sopwith 1997-12-23 03:56:44 +00:00
Elliot Lee
7c726a1e3e added gtkhandlebox to these - sopwith 1997-12-23 03:35:00 +00:00
Tim Janik
2b2667e791 new function. many functions adapted to use GScanner for scanning.
* gtk/gtkrc.h (gtk_rc_parse_string): new function.
        * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
        (gtk_rc_parse): use gtk_rc_parse_any for parsing.
        (gtk_rc_parse_string): new function to support parsing from
        strings, just calls gtk_rc_parse_any.
        (gtk_rc_parse_any): new function using GScanner as lexer.
-timj
1997-12-23 02:12:10 +00:00
Tim Janik
e3956c289a new file for GScanner: Flexible lexical scanner for general purpose. added
* gscanner.c: new file for GScanner: Flexible lexical scanner for
        general purpose.
        * glib_pre2.h: added GScanner includes. added g_strconcat and g_strtod.
        gutils.c (g_strconcat): new function for string concatenation of NULL
        terminated parameter list.
        (g_strtod): new function to perform best string to double conversion
        with or without consideration of the current locale.
-timj
1997-12-23 02:09:34 +00:00
Arturo Espinosa
b44565f3e4 Demo works fine. I have to add the missing functions for setting the toolbar's
parameters on the fly. - Federico
1997-12-23 00:35:48 +00:00
Elliot Lee
4da7b2f2ef The handlebox is almost finished. Just need help with resizing the
parent - anyone know what I should be doing?
1997-12-22 21:37:43 +00:00
Arturo Espinosa
0a81bbf58f It compiles. Now I will add the toolbar example to testgtk.c - Federico 1997-12-22 21:32:24 +00:00
Arturo Espinosa
162795e983 Very basic functionality seems to be complete; I'll try compiling it
next :-)  - Federico
1997-12-22 20:43:55 +00:00
Elliot Lee
81a58c413c Fixed dragging of handlebox 1997-12-22 04:12:18 +00:00
Shawn Amundson
1b6fb00808 Beginnings of support for 1 bpp depth in gdk. Very minor changes.
Most of testgtk runs on 1 bpp.  Nothing much else will work until
gdkcc is used for gtk_preview and other color-intensive things.

-Shawn
1997-12-20 08:39:21 +00:00
Arturo Espinosa
32fbb7b821 A couple of enums for GtkToolbar settings - Federico 1997-12-19 21:41:42 +00:00
Arturo Espinosa
67180c87e1 Started work on a GtkToolbar widget. The idea is to eventually dump a
toolbar inside a GtkHandleBox (inside a GnomeApp container, yet to be
written).

When the toolbar is usable, I will add the proper example to testgtk.c.

- Federico
1997-12-19 21:14:44 +00:00
Elliot Lee
24b21a5d84 OK, handle box is good to go except for having the parent resize when it is dragged out, and also allowing user to drag it back into the original parent 1997-12-19 21:06:39 +00:00
Elliot Lee
01eda653ee more gtkhandlebox painting stuff.. 1997-12-19 20:19:28 +00:00
Elliot Lee
61124945c0 more gtkhandlebox work.. 1997-12-19 19:17:45 +00:00
Shawn Amundson
e9f322e2f0 Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
Adds the possibility to connect all items by lines. This is the
default now.  You can overide this with the function
gtk_tree_set_view_line which take a tree and a boolean.

This tree widget looks way more finished with the lines.  Very
nice.  Check it out and run gtk/testtree.

-Shawn
1997-12-19 05:41:45 +00:00
Shawn Amundson
f7b1fa3aed For consistancy with GIMP/GNOME projects. Plus these files can
get really annoying if they are in the tree.

-Shawn
1997-12-19 05:24:25 +00:00
Elliot Lee
8d0318387f Fixed restoration of old event mask 1997-12-18 23:38:39 +00:00
Elliot Lee
1cf3f510d1 DnD works again, fixed my own stupidity ;-) 1997-12-18 23:03:26 +00:00
Manish Singh
6824581335 Removed gtkhandlebox.c from Makefile.am
-Yosh
1997-12-18 22:12:34 +00:00
Elliot Lee
fde815eb54 sorry about the debug define left in... - sopwith 1997-12-18 20:36:16 +00:00
Elliot Lee
05cf0f3203 handlebox mods 1997-12-18 15:54:10 +00:00
Elliot Lee
73e9b6b205 DnD debugging misc 1997-12-18 13:59:17 +00:00
scott
555aa2baf9 Caught a stray gdk_colormap_destroy that Owen missed (and Shawn found).
-- sg
1997-12-18 04:29:53 +00:00
Owen Taylor
26be2f7003 Filling in the details. 1997-12-18 02:24:41 +00:00
Owen Taylor
d5d01a5af9 It's all in the changelog. Well, almost all.
-owt
1997-12-18 02:17:14 +00:00
Arturo Espinosa
65e63db01e Made the XCC stuff more accessible 1997-12-18 00:27:10 +00:00
Shawn Amundson
4de2665e8c Tree widget implementation by Bolliet Jerome.
There is also another tree widget implementation by
AOSASA Shigeru <aozasa@sakuranet.or.jp>:

ftp://ftp.gimp.org/pub/gtk/contrib/gtk-shige-971216-0.tar.gz

-Shawn
1997-12-17 23:41:42 +00:00
Arturo Espinosa
865eab2445 forgot to add GdkColorContext to ChangeLog - Federico 1997-12-17 22:59:24 +00:00
Manish Singh
f9bfb8462a Added gdk_get_display ()
-Yosh
1997-12-17 22:40:07 +00:00
Arturo Espinosa
9c5d32799d Added gdk_color_context_get_visual() function. 1997-12-17 22:08:48 +00:00
Elliot Lee
4c530ae5bc Added root coords to button & motion events - sopwith 1997-12-17 14:36:57 +00:00
Arturo Espinosa
134466992b Added some extra functions to access the ColorContext toys.
federico
1997-12-17 01:40:34 +00:00
Arturo Espinosa
585dc6d781 New GdkColorContext object, ported from the XColorContext in XmHTML.
It compiles and links, but is *completely* untested.  Feel free to
pound on it.

The idea is to do all color management (allocation, etc.) via a
GdkColorContext so that apps will be friendly to 8-bit displays.

GdkColorContext is supposed to work on all visual/depth combinations.
This support, however, is lacking from the rest of Gdk/Gtk.  I will
try to work on that.

 - Federico
1997-12-17 00:14:36 +00:00
Elliot Lee
ad5083714e add gdk_window_set_override_redirect() et al 1997-12-16 22:10:43 +00:00
Elliot Lee
fce69b5a4f Start of work on a widget to allow you to drag other widgets in and out of
windows (i.e. like KDE has for its menu bars).

- sopwith
1997-12-16 21:39:55 +00:00
Shawn Amundson
a97e3501c8 A list divided into 1.0 and post-1.0 is now started.
-Shawn
1997-12-16 17:50:29 +00:00
Tim Janik
d55ed5449d minor optimizations: (g_list_append): `if' optimized for common code path,
Mon Dec 15 19:33:58 1997  Tim Janik  <timj@psynet.net>

        * glist.c: minor optimizations:
        (g_list_append): `if' optimized for common code path, commented out
        unneccessary `assert', saved one variable assignment.
        (g_list_prepend): saved two (conditioned) variable assignment.
        (g_list_insert): saved one  (conditioned) variable assignment,
        saved one variable assignment.
        (g_list_remove): `if' optimized for common code path, saved two
        variable assignments by using `g_list_free_1' (which is even
        faster) instead of `g_list_free'.
        (g_list_reverse): saved allocation of one variable, saved one
        variable assignment.
1997-12-15 19:08:53 +00:00
Shawn Amundson
4d724c25c7 New GTK release, 0.99.0. This release was coordinated with the
upcoming release of GIMP 0.99.16.

-Shawn
1997-12-14 08:49:30 +00:00
Raph Levien
92c316606b ChangeLog entries for filesel patch. 1997-12-14 08:05:15 +00:00
Raph Levien
3103106ba7 A simple patch to make the file sel dialog not always select the first
file in the directory.
1997-12-14 07:54:36 +00:00
Jay Painter
ebce1f7954 Added focus flag to gtk/gtkvscrollbar.c so it can get keyboard focus.
-Jay
1997-12-13 19:32:00 +00:00
Owen Taylor
da9a8aee9e Removed warning when XGetWindowProperty fails - this can be the desired
* Removed warning when XGetWindowProperty fails - this can
  be the desired behavior.
                                        -owt
1997-12-13 02:08:35 +00:00
Owen Taylor
4bb8907c2b Now that glib.h has been removed, it can't be used as the
unique file for AC_INIT()
                                        -owt
1997-12-13 01:06:12 +00:00
Owen Taylor
c3fe09e069 gdk/makecursor* gdk/makekeysym* gdk/Makefile.am Removed old sed/awk code
* gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
  Removed old sed/awk code and replaced it with a
  spiffier awk-only code from Art_Haas@dril-quip.com

                                        -owt
1997-12-13 00:58:24 +00:00
Owen Taylor
19096ebdfd Generated file removed from repository.
-owt
1997-12-13 00:51:39 +00:00
Owen Taylor
d30343b9d9 gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
rectangle = NULL, remove clip mask, instead of segfaulting.
gtk/gtknotebook.c: Set clip mask before redrawing, so that
  we don't overwrite things outside of exposed areas when
  drawing the shadows. (Based on a patch from
  Lars Hamann <hamann@braunschweig.netsurf.de> and Stefan Jeske)

                                        -owt
1997-12-12 20:03:48 +00:00
Shawn Amundson
30e8968f3b Change to ltconfig to remove -z text for Solaris x86 Change to configure
* Change to ltconfig to remove -z text for Solaris x86
* Change to configure stuff so compile works on Solaris x86
* Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree

-Shawn
1997-12-11 17:06:25 +00:00
Tim Janik
bb698f73f4 added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>. -timj
* gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
-timj
1997-12-11 08:39:21 +00:00
Tim Janik
8a6dea2d55 GLib:
* glib_pre1.h:
        * glib_pre2.h:
        * glib.h: this file now gets concatenated by makeglib_h from
        glib_pre1.h and glib_pre2.h to merge in glibconfig.h wich got
        created by configure (done by Jay Painter).

        * glib_pre2.h: the g_assert*() and g_return_*_fail() macros
        are wrapped by G_STMT_START and G_STMT_END now, to avoid conflicts
        when used within if (...) g_macro(); else ... conditionals.
Gtk+:
        * fixed some compiler errors, because g_return_if_fail() wasn't used
        with a trailing semicolon in some places. fixed few other warnings also.

-timj
1997-12-10 22:43:24 +00:00
Owen Taylor
68269a3f2a Configure changes:
Change test ! `...` to test -z `...`
    (Harald Meland <Harald.Meland@usit.uio.no>)
  Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
  With --enable_debug, don't touch CFLAGS if they're already set.

                              - owt (OK, which platform does this break?)
--------------------------------------------------------------------
1997-12-10 02:28:14 +00:00
Owen Taylor
244e4fe4c7 Fix to pixmap mask handling. (gtk-fortier-971122-0.patch)
-owt
1997-12-09 22:02:50 +00:00
Owen Taylor
2e943b280e gtkimage.c: Fixes to expose handler from Rob Browning
testselection.c gtktext.c gtktext.h: Spelling fix: foreward => forward
  from Tom Tromey
                                        -owt
1997-12-08 23:55:54 +00:00
Owen Taylor
d6b0c35739 YACU 1997-12-08 23:53:14 +00:00
Owen Taylor
ef7a3aa2ff Update. 1997-12-07 16:38:06 +00:00
Owen Taylor
79f532177f Remove dependencies of interfaces on USE_XIM Attempt to make wchar
* gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h:
  Remove dependencies of interfaces on USE_XIM
* gdki18n.h: Attempt to make wchar handling more portable
* gdkwindow.c: Include config.h. (For gdkinput.h)
1997-12-07 16:36:36 +00:00
Owen Taylor
56aae058fc Changes to make word motion work again.
Cut/copy/paste via the X clipboard.
Generalized extending selection using <Shift> to work with all types
  of motion, not just arrow keys.
Don't change length of GtkEntry structure because of USE_XIM

                                        -owt
1997-12-07 16:25:48 +00:00
Tim Janik
37f6b421f2 applied jamesa-971010-0 for stability. applied jamesa-971010-2 for a small
* gtkfilesel.c: applied jamesa-971010-0 for stability.
        * gtkrc.c: applied jamesa-971010-2 for a small optimization.
        * gtkcheckmenuitem.h:
        * gtkcheckmenuitem.c:
        * gtkradiomenuitem.c:
        * testgtk.c: applied johannes-971113-0 which adds
        gtk_check_menu_item_set_show_toggle() to change the way check
        menu items and radio menu items look.
-timj
1997-12-07 02:34:38 +00:00
Elliot Lee
7e4ee8cb4f Read the ChangeLog :) 1997-12-06 22:12:10 +00:00
Jay Painter
0219b8b6b4 Changed glib.h so it's created by merging glib_pre1.h, glibconfig.h, and
glib_pre2.h.  This eliminates the need to install glibconfig.h in $(includedir)
and fixes some builddir != srcdir when compiling multiple archatecture types
from the same source code. -Jay
1997-12-06 21:45:45 +00:00
Jay Painter
4d6f11a6ce Added undef's for wchar tests. -Jay 1997-12-06 21:32:43 +00:00
Arturo Espinosa
a51d944e25 Add support for pixmap cursors -mig 1997-12-06 20:53:46 +00:00
Michael Johnson
a7f427d7d9 No need to DUMP CORE if the display can't be opened...
Might as well just warn folks about the problem and quit with an error.

-mkj
1997-12-05 23:14:41 +00:00
Owen Taylor
59af5a46f0 Removed some unused variables
-owt
1997-12-05 04:33:00 +00:00
Owen Taylor
a8cd23de73 Don't redefine _GNU_SOURCE if already defined.
-owt
1997-12-05 04:29:22 +00:00
Owen Taylor
bb1aa22b63 Changes to make drawing work correctly (no black text on black background).
Also, removed calls to gtk_widget_set_events (that produced warnings)

                                        -owt
1997-12-05 04:27:44 +00:00
Owen Taylor
28de9c69b3 Ignore gdk_gc_set_font if font is a fontset. (Actually, gdk_gc_set_font
is completely useless now...)
                                        -owt
1997-12-05 04:25:52 +00:00
Jay Painter
ef3f373172 Fixed recent bug in gtkstyle.c. -Jay 1997-12-04 08:00:59 +00:00
Owen Taylor
4b4c6aff91 Various configuration and portability related changes. See ChangeLog
for details.
                                        -owt
1997-12-03 21:43:44 +00:00
Jay Painter
c3ac6c80a6 Fixed a optionmenu bug where if you set a new menu on a optionmenu, the
selected widget would not get positioned correctly inside of the optionmenu.
-Jay
1997-12-03 16:38:54 +00:00
Owen Taylor
6653fcf391 Include <unistd.h> to get SEEK_END on SunOS.
-owt
1997-12-02 22:34:44 +00:00
Owen Taylor
1ce708c570 define _GNU_SOURCE before include fnmatch.h, so that all
appropriate constants are defined.
                                        -owt
1997-12-02 22:27:33 +00:00
Owen Taylor
8fc5d3586a - Added a g_memmove function for SunOS compatability.
- Disabled unused gldouble definitions which were a portability problem

                                        - owt
1997-12-02 21:03:14 +00:00
Owen Taylor
a95ad0a897 Added missing /* */'s
-owt
1997-12-02 19:41:19 +00:00
Jay Painter
1e4243e40b same as before -Jay 1997-12-02 03:43:24 +00:00
Michael Johnson
60ec6d4638 ChangeLog entry about gtkentry visibility I forgot to make on the 17th. :-(
-mkj
1997-12-01 19:01:07 +00:00
Elliot Lee
b50a9f760b Misc fixes for color changing stuff 1997-11-28 06:47:01 +00:00
Elliot Lee
ebdcd27f15 Fixed a bug in gdk_property_get, I think, and made error messages sane 1997-11-28 03:10:25 +00:00
Gnome CVS User
8d073b0232 new gtk_main_level(). fixes to gtk_window_show() to prevent -1x-1 size on
window creation. some indentation fixes.
this basically brings my tree back in sync with the repository again...
1997-11-28 01:22:38 +00:00
Gnome CVS User
64fd713042 Automake update to automake 1.2d. I also moved the GTK_SELECTIO_...
enums to gtkenums.h. -Jay
1997-11-27 19:21:42 +00:00
Gnome CVS User
fbc9ee9fba Patches to support internationalized input by:
Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
  TANAKA Shinya <shinya@race.u-tokyo.ac.jp>

See ChangeLog entries for further details.

[ missed one ]
1997-11-27 05:17:24 +00:00
Elliot Lee
519a4bc24e cleanups for color changing stuff 1997-11-27 05:07:48 +00:00
Elliot Lee
b04290fe58 mo ignores 1997-11-27 05:02:25 +00:00
Elliot Lee
15f51f0eb6 ignore generated info files 1997-11-27 05:00:47 +00:00
Elliot Lee
763c529be0 Changed ignore thing. 1997-11-27 04:52:29 +00:00
Gnome CVS User
dd34bcca5e Patches to support internationalized input by:
Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
  TANAKA Shinya <shinya@race.u-tokyo.ac.jp>

See ChangeLog entries for further details.

Also some small fixes to event handling in gdk/gdk.c; sending
clear events in gtk/gtkselection.c and cut-and-paste in
gtk/gtkentry.c
1997-11-27 04:16:39 +00:00
Gnome CVS User
e522ad46ba gtk/gtkaspectframe.c:
Some minor improvements to rounding in aspectframes.
Make sure that child allocation is always >= 0
Always trigger size allocation with gtk_widget_queue_resize
  to prevent calling size_allocate before allocation done.

gtk/gtkframe.c:
Changed tests for drawability to GTK_WIDGET_DRAWABLE
Always trigger size allocation with gtk_widget_queue_resize
  to prevent calling size_allocate before allocation done.
1997-11-26 02:36:43 +00:00
Gnome CVS User
aedb8717f1 Moved list concatenation code from gtkmain.c into its proper
place in glib/glist.c, added corresponding g_slist_concat.
1997-11-26 01:52:50 +00:00
Gnome CVS User
33b9431580 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
gtk-dairiki-971117-2.patch
        gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
        computing new dimensions of the subwidget, round to nearest
        integer rather than truncating.

Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
        gtk-dairiki-971117-1.patch
        * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
        * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
        always are drawn when they should be (sometimes they were getting
        drawn with zero length --- invisible).  Also clear rectangle
        behind text labels to ensure they don't touch or overlap ticks.

Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
        * gtk/gtkaspectframe.c (gtk_aspect_frame_set):
        gtk-dairiki-971117-0.patch
        Clear window when aspect ratio or alignment is changed.
1997-11-25 07:15:41 +00:00
Gnome CVS User
c82e82dafc gtk-dairiki-971117-0.patch
Clear window when aspect ratio or alignment is changed. -Jay
1997-11-25 06:49:03 +00:00
Gnome CVS User
ba1d51293c Fixed GTK_OBJECT_NSIGNALS macro in gtk/gtkobject.h -Jay 1997-11-25 06:36:40 +00:00
Gnome CVS User
63bf68c991 adding autoconf-generated files. -Jay 1997-11-25 06:18:43 +00:00
Gnome CVS User
c320a8d858 Adding autoconf generated files. -Jay 1997-11-25 06:17:49 +00:00
502 changed files with 218864 additions and 46618 deletions

View File

@@ -5,6 +5,9 @@ libtool
config.status
stamp-h
Makefile
gtk+.xconfig
Makefile.in
aclocal.m4
configure
gtk-config
config.cache

29
AUTHORS
View File

@@ -1,3 +1,26 @@
Peter Mattis (petm@xcf.berkeley.edu)
Spencer Kimball (spencer@xcf.berkeley.edu)
Josh MacDonald (jmacd@xcf.berkeley.edu)
Original Authors
----------------
Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
The GTK+ Team (in alphabetical order)
-------------------------------------
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@in2p3.fr>
Tony Gale <gale@gtk.org>
Lars Hamann <lars@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Fedrerico Mena <quartic@gtk.org>
Paolo Molaro <lupus@lettere.unipd.it>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>
There are many others who have contributed patches; we thank them,
GTK+ is much better because of them.

View File

@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -436,7 +436,7 @@ DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
@@ -463,8 +463,9 @@ convey the exclusion of warranty; and each file should have at least the
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., 675 Mass Ave, Cambridge, MA 02139, USA.
License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307 USA.
Also add information on how to contact you by electronic and paper mail.

4351
ChangeLog

File diff suppressed because it is too large Load Diff

4961
ChangeLog.pre-1-0 Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

53
HACKING Normal file
View File

@@ -0,0 +1,53 @@
If you want to hack on the Gtk+ project, it will make you life easier
to have the following packages installed:
- GNU autoconf 2.12
- GNU automake 1.3
(Beta releases are at ftp://ftp.cygnus.com/pub/tromey)
- GNU libtool 1.2
These should be available by ftp from ftp.gnu.org or any of the
fine GNU mirrors. Beta software can be found at alpha.gnu.org.
In order to get CVS gtk+ installed on your system, you need to have
the most recent CVS version of glib installed as well.
The installation process of glib is similar to that of gtk+, but
needs to be fulfilled prior to installation of gtk+.
To compile a CVS version of gtk+ on your system, you will need to take
several steps to setup the tree for compilation. You can do all these
steps at once by running:
cvsroot/gtk+# ./autogen.sh
Basically this does the following for you:
cvsroot/gtk+# aclocal; automake; autoconf
The above commands create the "configure" script. Now you
can run the configure script in cvsroot/gtk+ to create all
the Makefiles.
Before running autogen.sh or configure, make sure you have libtool
in your path.
Note that autogen.sh runs configure for you. If you wish to pass
options like --prefix=/usr to configure you can give those options
to autogen.sh and they will be passed on to configure.
If at all possible, please use CVS to get the latest development version of
gtk+ and glib. You can do the following to get glib and gtk+ from cvs:
$ export CVSROOT=':pserver:anonymous@cvs.gimp.org:/debian/home/gnomecvs'
$ cvs login
(there is no password, just hit return)
$ cvs -z9 checkout glib
$ cvs -z9 checkout gtk+
Please submit patches to the gtk-list@redhat.com mailing list (you must
subscribe before you post, e-mail gtk-list-request@redhat.com with a
subject of "subscribe"). All kinds of contributions are accepted.
Patches that you wish to go into the distribution should also be uploaded
to ftp://ftp.gimp.org/incoming. Follow the rules there for naming your
patches.

156
INSTALL
View File

@@ -0,0 +1,156 @@
Prerequisites
=============
GTK+ requires the GLIB library, available at the same location as
you got this package.
Simple install procedure
========================
% gzip -cd gtk+-1.1.2.tar.gz | tar xvf - # unpack the sources
% cd gtk+-1.1.2 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
% make install # install GTK
The Nitty-Gritty
================
The 'configure' script can be given a number of options to enable
and disable various features. For a complete list, type:
./configure --help
A few of the more important ones:
* --prefix=PREFIX install architecture-independent files in PREFIX
[ Defaults to /usr/local ]
* --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[ Defaults to the value given to --prefix ]
* --with-xinput=[no/gxi/xfree] support XInput [default=no]
The --with-xinput flag specifies whether to compile with support
for the XInput extension (mainly used for graphics tablets), and
which form of support to use:
no : no support
gxi : Use generic XInput support
xfree : Use special features in the Wacom drivers in XFree86 3.3.1
and later.
For more information, follow the link from http://www.gtk.org
* --enable-xim support XIM [default=yes]
Specifying --disable-xim will disable support for entering
internationalized text using X Input Methods. This will give some
slight savings in speed and memory use and might be necessary
with older versions of X.
* --with-locale=LOCALE locale name you want to use
The --with-locale options is used to determine if your operating
system has support for the locale you will be using. If not, X's
built in locale support will be used.
Because of bugs in autoconf, it is necessary to specify this
option even if your LANG environment variable is correctly set.
This option does not determine which locale GTK will use at
runtime. That will be determined from the usual environment
variables. If you will be using multiple locales with GTK,
specify the one for which your operating system has the worst
support for the --with-locale option.
Options can be given to the compiler and linker by setting
environment variables before running configure. A few of the more
important ones:
CC : The C compiler to use
CPPFLAGS : Flags for the C preprocesser such as -I and -D
CFLAGS : C compiler flags
The most important use of this is to set the
optimization/debugging flags. For instance, to compile with no
debugging information at all, run configure as:
CFLAGS=-O2 ./configure # Bourne compatible shells (sh/bash/zsh)
or,
setenv CFLAGS -O2 ; ./configure # csh and variants
Using an uninstalled copy of GLIB
=================================
You can compile GTK+ against a copy of GLIB that you have not
yet installed. To do this, give the --with-glib=DIR options
to ./configure. For instance:
./configure --with-glib=../glib-1.1.3
This, however, will not work if you built GLIB with different
source and build directories.
Installation directories
========================
The location of the installed files is determined by the --prefix
and --exec-prefix options given to configure. There are also more
detailed flags to control individual directories. However, the
use of these flags is not tested.
One particular detail to note, is that the architecture-dependent
include file glibconfig.h is installed in:
$exec_pref/lib/glib/include/
if you have a version in $prefix/include, this is out of date
and should be deleted.
A shell script gtk-config is created during the configure
process, and installed in the bin/ directory
($exec_prefix/bin). This is used to determine the location of GTK
when building applications. If you move GTK after installation,
it will be necessary to edit this file.
For complete details, see the file docs/gtk-config.txt
Notes for using XIM support for Japanese input
==============================================
* There is a bug in older versions of kinput2 that will cause GTK
to hang when destroying a text entry. The latest versions of
kinput is available from:
ftp://ftp.sra.co.jp/pub/x11/kinput2
* The locale information file for the ja_JP EUC locale
distributed with some recent versions of X11 specifies to use the
C library multibyte functions. Unless your C library has support
for Japanese locales, this is incorrect, and will cause problems
for GTK's internationalization.
(In particular, this occurs with GNU libc 2.0 and 2.1, in which
the multibyte functions always translate to and from UTF-8; but
the problem may occur for other C libraries, and other operating
systems as well.)
To fix this, change the line:
use_stdc_env True
to
use_stdc_env False
in the file /usr/X11R6/lib/X11/locale/ja_JP/XLC_LOCALE.

View File

@@ -1,9 +1,88 @@
## Process this file with automake to produce Makefile.in
SRC_SUBDIRS = glib gdk gtk
SRC_SUBDIRS = gdk gtk
SUBDIRS = $(SRC_SUBDIRS) docs
EXTRA_DIST = gtk+.prj makecopyright TODO
bin_SCRIPTS = gtk-config
EXTRA_DIST = \
HACKING \
gtk+.spec \
gtk.m4 \
makecopyright \
TODO \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
README.cvs-commits \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/clist/clist.c \
examples/entry/Makefile \
examples/entry/entry.c \
examples/eventbox/Makefile \
examples/eventbox/eventbox.c \
examples/filesel/Makefile \
examples/filesel/filesel.c \
examples/gtkdial/Makefile \
examples/gtkdial/dial_test.c \
examples/gtkdial/gtkdial.c \
examples/gtkdial/gtkdial.h \
examples/helloworld/Makefile \
examples/helloworld/helloworld.c \
examples/helloworld2/Makefile \
examples/helloworld2/helloworld2.c \
examples/list/Makefile \
examples/list/list.c \
examples/menu/Makefile \
examples/menu/menu.c \
examples/menu/menufactory.c \
examples/menu/menufactory.h \
examples/menu/mfmain.c \
examples/menu/mfmain.h \
examples/notebook/Makefile \
examples/notebook/notebook.c \
examples/packer/Makefile \
examples/packer/pack.c \
examples/packbox/Makefile \
examples/packbox/packbox.c \
examples/paned/Makefile \
examples/paned/paned.c \
examples/pixmap/Makefile \
examples/pixmap/pixmap.c \
examples/progressbar/Makefile \
examples/progressbar/progressbar.c \
examples/radiobuttons/Makefile \
examples/radiobuttons/radiobuttons.c \
examples/rulers/Makefile \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
examples/scribble-simple/scribble-simple.c \
examples/scrolledwin/Makefile \
examples/scrolledwin/scrolledwin.c \
examples/selection/Makefile \
examples/selection/gettargets.c \
examples/selection/setselection.c \
examples/statusbar/Makefile \
examples/statusbar/statusbar.c \
examples/table/Makefile \
examples/table/table.c \
examples/tictactoe/Makefile \
examples/tictactoe/tictactoe.c \
examples/tictactoe/tictactoe.h \
examples/tictactoe/ttt_test.c \
examples/wheelbarrow/Makefile \
examples/wheelbarrow/wheelbarrow.c \
examples/find-examples.sh
m4datadir = $(datadir)/aclocal
m4data_DATA = gtk.m4
.PHONY: files populate checkin release

501
Makefile.in Normal file
View File

@@ -0,0 +1,501 @@
# Makefile.in generated automatically by automake 1.3 from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@
GTK_MICRO_VERSION = @GTK_MICRO_VERSION@
GTK_MINOR_VERSION = @GTK_MINOR_VERSION@
GTK_VERSION = @GTK_VERSION@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_RELEASE = @LT_RELEASE@
LT_REVISION = @LT_REVISION@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
x_cflags = @x_cflags@
x_includes = @x_includes@
x_ldflags = @x_ldflags@
x_libs = @x_libs@
xinput_progs = @xinput_progs@
SRC_SUBDIRS = glib gdk gtk
SUBDIRS = $(SRC_SUBDIRS) docs
bin_SCRIPTS = gtk-config
EXTRA_DIST = \
gtk+.spec \
gtk.m4 \
makecopyright \
TODO \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/entry/Makefile \
examples/entry/entry.c \
examples/eventbox/Makefile \
examples/eventbox/eventbox.c \
examples/filesel/Makefile \
examples/filesel/filesel.c \
examples/gtkdial/Makefile \
examples/gtkdial/dial_test.c \
examples/gtkdial/gtkdial.c \
examples/gtkdial/gtkdial.h \
examples/helloworld/Makefile \
examples/helloworld/helloworld.c \
examples/helloworld2/Makefile \
examples/helloworld2/helloworld2.c \
examples/list/Makefile \
examples/list/list.c \
examples/menu/Makefile \
examples/menu/menu.c \
examples/menu/menufactory.c \
examples/menu/menufactory.h \
examples/menu/mfmain.c \
examples/menu/mfmain.h \
examples/notebook/Makefile \
examples/notebook/notebook.c \
examples/packbox/Makefile \
examples/packbox/packbox.c \
examples/paned/Makefile \
examples/paned/paned.c \
examples/pixmap/Makefile \
examples/pixmap/pixmap.c \
examples/progressbar/Makefile \
examples/progressbar/progressbar.c \
examples/radiobuttons/Makefile \
examples/radiobuttons/radiobuttons.c \
examples/rulers/Makefile \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
examples/scribble-simple/scribble-simple.c \
examples/scrolledwin/Makefile \
examples/scrolledwin/scrolledwin.c \
examples/selection/Makefile \
examples/selection/gettargets.c \
examples/selection/setselection.c \
examples/statusbar/Makefile \
examples/statusbar/statusbar.c \
examples/table/Makefile \
examples/table/table.c \
examples/tictactoe/Makefile \
examples/tictactoe/tictactoe.c \
examples/tictactoe/tictactoe.h \
examples/tictactoe/ttt_test.c \
examples/wheelbarrow/Makefile \
examples/wheelbarrow/wheelbarrow.c \
examples/find-examples.sh
m4datadir = $(datadir)/aclocal
m4data_DATA = gtk.m4
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = gtk-config
SCRIPTS = $(bin_SCRIPTS)
DATA = $(m4data_DATA)
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess config.h.in \
config.sub configure configure.in gtk-config.in install-sh ltconfig \
ltmain.sh missing mkinstalldirs stamp-h.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
all: all-recursive-am all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): @MAINT@ configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure
$(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
config.h: stamp-h
@:
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
$(SHELL) ./config.status
@echo timestamp > stamp-h
$(srcdir)/config.h.in: @MAINT@$(srcdir)/stamp-h.in
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
gtk-config: $(top_builddir)/config.status gtk-config.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_SCRIPTS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
$(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
else if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
$(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
else :; fi; fi; \
done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
list='$(bin_SCRIPTS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
done
install-m4dataDATA: $(m4data_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(m4datadir)
@list='$(m4data_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p; \
fi; fi; \
done
uninstall-m4dataDATA:
@$(NORMAL_UNINSTALL)
list='$(m4data_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(m4datadir)/$$p; \
done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
list='$(SUBDIRS)'; for subdir in $$list; do \
target=`echo $@ | sed s/-recursive//`; \
echo "Making $$target in $$subdir"; \
(cd $$subdir && $(MAKE) $$target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
done; \
for subdir in $$rev; do \
target=`echo $@ | sed s/-recursive//`; \
echo "Making $$target in $$subdir"; \
(cd $$subdir && $(MAKE) $$target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
(cd $$subdir && $(MAKE) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) \
&& $(MAKE) dvi \
&& $(MAKE) check \
&& $(MAKE) install \
&& $(MAKE) installcheck \
&& $(MAKE) dist
-rm -rf $(distdir)
@echo "========================"; \
echo "$(distdir).tar.gz is ready for distribution"; \
echo "========================"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
$(mkinstalldirs) $(distdir)/examples $(distdir)/examples/aspectframe \
$(distdir)/examples/buttons $(distdir)/examples/entry \
$(distdir)/examples/eventbox $(distdir)/examples/filesel \
$(distdir)/examples/gtkdial $(distdir)/examples/helloworld \
$(distdir)/examples/helloworld2 $(distdir)/examples/list \
$(distdir)/examples/menu $(distdir)/examples/notebook \
$(distdir)/examples/packbox $(distdir)/examples/paned \
$(distdir)/examples/pixmap $(distdir)/examples/progressbar \
$(distdir)/examples/radiobuttons $(distdir)/examples/rulers \
$(distdir)/examples/scribble-simple \
$(distdir)/examples/scrolledwin \
$(distdir)/examples/selection $(distdir)/examples/statusbar \
$(distdir)/examples/table $(distdir)/examples/tictactoe \
$(distdir)/examples/wheelbarrow
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
for subdir in $(SUBDIRS); do \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
|| exit 1; \
done
info: info-recursive
dvi: dvi-recursive
check: all-am
$(MAKE) check-recursive
installcheck: installcheck-recursive
all-recursive-am: config.h
$(MAKE) all-recursive
all-am: Makefile $(SCRIPTS) $(DATA) config.h
install-exec-am: install-binSCRIPTS
install-data-am: install-m4dataDATA
uninstall-am: uninstall-binSCRIPTS uninstall-m4dataDATA
install-exec: install-exec-recursive install-exec-am
@$(NORMAL_INSTALL)
install-data: install-data-recursive install-data-am
@$(NORMAL_INSTALL)
install: install-recursive install-exec-am install-data-am
@:
uninstall: uninstall-recursive uninstall-am
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs: installdirs-recursive
$(mkinstalldirs) $(DATADIR)$(bindir) $(DATADIR)$(m4datadir)
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
maintainer-clean-generic distclean-am
mostlyclean: mostlyclean-recursive mostlyclean-am
clean: clean-recursive clean-am
distclean: distclean-recursive distclean-am
-rm -f config.status
-rm -f libtool
maintainer-clean: maintainer-clean-recursive maintainer-clean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
uninstall-binSCRIPTS install-binSCRIPTS uninstall-m4dataDATA \
install-m4dataDATA install-data-recursive uninstall-data-recursive \
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
uninstalldirs-recursive all-recursive check-recursive \
installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
installcheck all-recursive-am all-am install-exec-am install-data-am \
uninstall-am install-exec install-data install uninstall all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
.PHONY: files populate checkin release
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
@for subdir in $(SUBDIRS); do \
files=`cd $$subdir; $(MAKE) files | grep -v "make\[[1-9]\]"`; \
for file in $$files; do \
echo $$subdir/$$file; \
done; \
done
populate:
@echo "populating project"
@files=`$(MAKE) files | grep -v "make\[[1-9]\]"`; prcs populate -d gtk+.prj $$files
checkin: populate
@echo "checking in project"
@prcs checkin
release:
$(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

65
NEWS
View File

@@ -0,0 +1,65 @@
What is new in GTK+ 1.1.2:
* New runtime loading and initialization of modules
* Tutorial updates
* Changes to menus including tearoff menus and accelerators
* Better support for modal dialogs
* Removed CAN_FOCUS by default from scrollbars and button children of toolbar
* Fix for clist resize bug
* New sorting for clist, removed duplicate sorting from ctree
What is new in GTK+ 1.1.1:
* Tutorial updates and additions.
* Key binding support for GtkListItems and GtkList.
* Extended selection mode and autoscrolling for GtkLists.
* A GtkCtree now operates on GtkCTreeNode* structures rather than GList*.
* GtkCTreeNodes can now be created from GNode trees.
* Bug fixes for GtkNotebook, GtkCList, GtkCombo and GdkWindow reparentation.
What is new in GTK+ 1.1.0:
* New widget GtkFontSelector.
* New featurefull progress bar.
* New container widget GtkPacker.
* New object GtkItemFactory, GtkMenuFactory is deprecated.
* New key binding system, configurable via rcfiles, similar to styles.
* New widget GtkCTree with drag selections and keyboard movement and
and horizontal scrolling. Features also implemented for GtkCList.
* Significant speedups to widget creation and destruction through caching
colormap and visual queries to the XServer.
* Speedups for type creation and especially gtk_type_is_a() checks.
* Speedups in signal lookup, creation and emissions and connection handling.
* Minor speedups with object data allocation and destruction.
* Additions to the signal handling API (e.g. *_emitv).
* Support for rc-file reparsing.
* Resizing logic is now implemented on container widget basis, rather than
for toplevel GtkWindows only.
* Buttons support relief styles now.
* Some widgets are now allocated through memchunks to behave more memory wise.
* Newly included file gtkfeatures.h which defines compatibility macros to
test for certain API features upon program compilation.
* Child arguments support for container widgets.
* Far better support for object arguments, revamp of the underlying
mechanism for speed and reusability. Child/object arguments don't
need to be preceeded by the "GtkType::" portion anymore.
* Removed GtkAcceleratorTable in favour of GtkAccelGroup, accelerator display
is now performed by a new widget GtkAccelLabel.
* Overhaul of the resizing code. Resizing behaviour can now be specified
on GtkContainer basis, so the underlying algorithm isn't only available
for GtkWindows.
* GtkTables are now fully resizable.
* The GtkType system now supports an additional base class initialization
function.
* GtkStyles and key bindings can now be looked up depending on the base
types of a widget, through a new keyword `class' in rc files.
* GtkButton derives from GtkBin (finally).
* More descriptive error messages on rc parsing.
* Runtime information is available to query enum/flag definition values.
* Upgrade to libtool-1.2
* Legions of bug fixes, memory leaks, segfaults, of-by-something errors...
including those that already went into the 1.0.x branch.
* A big bunch of features and cosmetic fixups that just got lost in
the masses of changes.

124
NEWS.pre-1-0 Normal file
View File

@@ -0,0 +1,124 @@
Overview of Changes in GTK+ 1.0.0:
* A few bug fixes.
Overview of Changes in GTK+ 0.99.10:
* Lots of bug fixes
* Documentation improvements
* Better looking handlebox
* A few convenience functions
Overview of Changes in GTK+ 0.99.9:
* Added examples directory, even more examples soon
* Added optional word wrap to gtktext
* Changes to gtkhandlebox
* Lots of bug fixes
Overview of Changes in GTK+ 0.99.8:
* Compilation and configuration fixes
* DND Fixes
* New test in testgtk: cursors
* Tutorial updates/additions
* Few more FAQ additions
* More prep for 1.0
Overview of Changes in GTK+ 0.99.7:
* This release is mainly because 0.99.6 did not compile completely
due to a missing file.
* Fixes to Gtk's quit handlers.
Overview of Changes in GTK+ 0.99.6:
* Intermediate release to become 1.0.
* More signedness corrections for handler functions in gtkmain.h.
* Semantics of GtkWidget::delete_event changed.
* Documentation updates.
* Inclusion of Gtk tutorial.
* Implementation of a new shutdown method for GtkObject's executed prior to
actual destruction. WARNING: this breaks binary compatibility, programs using
Gtk need to be recompiled.
* Clean ups due to compiler warnings.
* Various widget fixes.
Overview of Fixes in GTK+ 0.99.5:
* Signal signedness and naming corrections
* rc/style fixes
* text, entry widget fixes
* gtkeditable fixes
* scrollbar flickering fixed
* check casts are more descriptive
* DND fixes
* FAQ updates
* Bug fixes
Overview of Changes in GTK+ 0.99.4:
* Reference counting revolution integrated.
Refer to docs/refcounting.txt on this issue.
* Implementation of a decent debugging system, you would want
to export GTK_DEBUG=objects if you are going to develop gtk applications,
refer to docs/debugging.txt for further information.
* Additions on the signal code for querying information about certain signals,
and pending handlers of signals.
* Support for user signals, and major changes to internal signal handler
handling for proper signal removal and invokation of after signals.
* Additional signals for various widgets e.g, GtkHandleBox::child_attached,
GtkHandleBox::child_detached, GtkWidget::style_set, GtkWidget::parent_set.
* GtkTooltips became a true descendant of GtkObject via derivation from
GtkData and facilitates an extra tip string which can be used as e.g. an
index into context help.
* Split up of the widget/object flags into a private and a public portion,
consult docs/widget_system.txt on this.
* Support for hot keys on gtk programs via gtk_key_snooper_install().
* Reimplementation of the *_interp functions as *_full functions to provide
simple callback functions as well.
* Idle functions are now prioritized.
* Many enhancements to GtkNotebook.
* New widget GtkSpinButton, check out testgtk.
* New widget GtkTipsQuery for letting the user query tooltips of widgets.
* Addition of GtkEditable base widget to encapsulate selection and
clipboard handling. (GtkEntry and GtkText use this)
* Text widget more complete.
* Additions to GtkStatusBar to make it complete.
* Gdk now supports regions.
* Access masks for widget arguments (GTK_ARG_READABLE/GTK_ARG_WRITABLE).
* Function replacements:
g_string_hash() -> g_str_hash()
g_string_equal() -> g_str_equal()
gtk_tooltips_set_tips() -> gtk_tooltips_set_tip()
* Support for quit handlers in gtk_main().
* Motif window mangaer hints support.
* Widget arguments are now flagged for readability/writability.
* Additions to documentation.
* Various FAQ updates. (FAQ now included)
* Clean ups and many many bug fixes by a lot of people all over the place.
* New, long and descriptive ChangeLog entries for bored readers ;)
Overview of Changes in GTK+ 0.99.3:
* Filesel enhancement / stability changes
* New widget, gtkcombo
* Widgets in the toolbar do not get the focus
* New widget, gtkstatusbar (still in-progress)
* g_string_equal renamed g_str_equal
* g_string_hash renamed g_str_hash
* new gtkbox functions to allow modification of the child
linkage after the widget tree is setup
* gtk_*_get_arg() and gtk_*_set_arg() fixes and implementations
* DND changes/fixes
* Entry widget now has set_max_length function
* Handlebox widget changes/fixes
* Some work on text widget (still in-progress)
* Now the toolbar supports arbitrary widgets as well
* CList has resizable columns again
* CList now looks consistant with scrolled windows
* Remove flickering from entry widget
* Added switch_page signal to notebook widget
* Documentation additions
* Other bug fixes...

74
README
View File

@@ -1,17 +1,75 @@
General Information
===================
This is GTK+ version 1.1.2. GTK+, which stands for the Gimp ToolKit,
is a library for creating graphical user interfaces for the X Window
System. It is designed to be small, efficient, and flexible. GTK+ is
written in C with a very object-oriented approach.
The official ftp site is:
ftp://ftp.gimp.org/pub/gtk
ftp://ftp.gtk.org/pub/gtk
Patches can be uploaded to:
ftp://ftp.gimp.org/incoming
Anonymous CVS access for gtk+ (as well as 'gimp', 'gimp-data', and
'gnome') is available via
CVSROOT=:pserver:anonymous@cvs.gnome.org:/home/cvs
with an empty password.
The official web site is:
http://www.gtk.org/
A mailing list is located at:
gtk-list@redhat.com
To subscribe: mail -s subscribe gtk-list-request@redhat.com < /dev/null
(Send mail to gtk-list-request@redhat.com with the subject "subscribe")
Installation
============
See the file 'INSTALL'
How to report bugs
==================
To report a bug, send mail either to gtk-list, as mentioned
above, or to gtk-bugs@gtk.org. If you send mail to gtk-list, you
must be subscribed yourself.
In the mail include:
* The version of GTK
* Information about your system. For instance:
- What operating system and version
- What version of X
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with the testgtk program that is built
in the gtk/ subdirectory, that will be most convenient. Otherwise,
please include a short test program that exhibits the behavior.
As a last resort, you can also provide a pointer to a larger piece
of software that can be downloaded.
(Bugs that can be reproduced within the GIMP are almost as good
as bugs that can be reproduced in testgtk. If you are reporting a
bug found with the GIMP, please include the version number of the GIMP
you are using)
* If the bug was a crash, the exact text that was printed out
when the crash occured.
* Further information such as stack traces may be useful, but
is not necessary. If you do send a stack trace, and the error
is an X error, it will be more useful if the stacktrace
is produced running the test program with the --sync command
line option.
Patches
=======
Patches can be uploaded to the incoming/ directory on
ftp.gtk.org. Please follow the instructions there, and include
your name and email address in the README file.
If the patch fixes a bug, it is usually a good idea to include
all the information described in "How to Report Bugs".

52
README.cvs-commits Normal file
View File

@@ -0,0 +1,52 @@
GTK+ is part of the GNOME CVS repository. At the current time, any
person with write access to the GNOME repository, can make changes to
GTK+. This is a good thing, in that it encourages many people to work
on GTK+, and progress can be made quickly. However, GTK+ is a fairly
large and complicated package that many other things depend on, so to
avoid unnecessary breakage, and to take advantage of the knowledge
about GTK+ that has been built up over the last 18 months, we'd like
to ask people commiting to GTK+ to follow a few rules:
0) Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you've
been working on GTK+ for a while it probably isn't necessary
to ask. But when in doubt, ask. Even if your change is correct,
somebody may know a better way to do things.
If you are making changes to GTK+, you should be subscribed
to gtk-devel-list@redhat.com. (Subscription address:
gtk-devel-list-request@redhat.com.) This is a good place to ask
about intended changes.
If you just want to make a trivial change, and don't want to subscribe,
you can also mail gtk-bugs@gtk.org. Or, alternatively, you can look in
the ChangeLog for somebody who has been making changes to the file
you want to change and email them.
#gimp on byxnet (irc.gimp.org, irc2.gimp.org, irc3.gimp.org,
irc.germany.gimp.org...)s also a good place to find GTK+ developers to
discuss changes with, however, email to gtk-devel-list is the most
certain and preferred method.
1) Ask _first_.
2) There must be a ChangeLog for every commit. (If you discover that
you only committed half the files you meant to and need to fix that
up, or something, you don't need a new ChangeLog entry. But in general,
ChangeLog entries are mandatory.) Changes with out ChangeLog entries
will be reverted.
3) There _must_ be a ChangeLog for every commit.
Notes:
* If you are going to be changing many files in an experimental fashion,
it probably is a good idea to create a separate branch for your changes.
Owen Taylor
13 Aug 1998

281
TODO
View File

@@ -1,36 +1,275 @@
Now
---
For 1.2.0 release:
- remove deprecated functions from *.[hc] files, especially the
non-functional ones.
Bugs:
* Widget redrawing when the window resizes sometimes messes up.
GtkLabels sometimes redraw without clearing up the underlying background on
window resizes.
* delay dnd settings to take effect once a widget is realized, this is
to avoid force realizations. i think this goes along with owens dnd
changes?
-timj
The way DND data types are set in GtkWidget really needs to be fixed.
This is pretty high on my priority list, and I'll get to it as soon as
the column list widget is done. The correct way dnd data needs to be set
is to have a additional keyed data type with GtkWidget, which is applied to
the widget's window upon realize.
There also needs to be a way to set dnd-data on widget windows which are
not the main window (for widgets that create more than one window).
-Jay Painter
DnD seems to work for me, but yes, there needs to be some sort of
gtk_widget layer that makes it easier... Also, adding support for drop
zones might be nice.
-Elliot
This one is reproducabel for me:
testgtk --sync
popup colorselection
drag/drop works
start up preview color
drag works but not dropping
end preview color
drag/drop works
start up prewiev color
segfault in malloc
-timj
3. Fix focus activation of list items. Does list item activation have to be
completely reorganized?
* Change bitfields to guints from enums, or vice versa?
4. Lists should scroll to center the recently selected item if it isn't
* Expose events aren't being generated correctly for DND demo
Additions:
* implement keyboard navigation in menus
* focus handling for GtkOptionMenu (needs the previous)
* GScanner: it might be good to ues stdio and getch() instead of 1-character
reads. so one can take advantage of buffering. Currently each read() takes
a separate syscall.
* implement gtk_default_draw_oval and other missing things in gtkstyle.c.
* Lists should scroll to center the recently selected item if it isn't
visible.
* enforce invariants on *_RESIZE* and *_REDRAW* flags.
The Future
----------
* asure that child widgets are really get gtk_widget_destroy()ed in their
parents destroy handler, and not just unparented or somesuch.
-Documentation
* GtkToolTips:
allocate GtkTooltipsData from memchunks
look into incorporation of outdated/gtk-dairiki-971208-[01].patch.gz
* Change gtk_widget_propagate_default_style() mechanism to
void gtk_rc_string_export (const gchar *rc_additions,
gboolean override_rc_styles);
-Tree widget
* Make all widget attributes configurable after the widget is created (timj).
* Widgets dervied from GtkButton need to be able to override
GtkButtonClass.paint. e.g. redrawing of GtkToggleButton with CAN_DEFAULT
is messed up otheriwse. This does in fact not only apply to (toggle)buttons,
we should introduce a common paint member for the GtkWidgetClass.
* Radio buttons need to display CAN/HAS_DEFAULT correctly.
-Text widget (needs to be finished)
* GtkCList improvements. (Jay Painter)
-Widget redrawing when the window resizes sometimes messes up.
* Seperate GtkObject, type and signaling system from Gdk dependancies,
by moving them into a seperate libgtkobj.
* move *_input_add (wrappers for select(2)) mechanism into glib.
-Make sure a widget added to a list is a list item and a widget added
to a menu is a menu item, etc...
* Make sure a widget added to a list is a list item and a widget added
to a menu is a menu item, etc. GTK_BASIC was a first attempt at this,
but it fails with subsequent container_add()s. maybe have another
GTK_PARENT_BASIC (similar to GTK_PARENT_SENSITIVE) flag, to prevent
tree iterations upon every container addition.
-More dialogs? Print, font, etc?
* gdk_expose_compress: ala-Xt, this would really help for opaque moves and
such
-Multiple document interface (MDI)?
* Entry should have a password mode (and it should show stars
for user feedback).
-Support another widget style? Should be possible using GtkStyle's, but
there may be some work needed to remove any style dependencies in widget
code. Maybe GtkStyle's should have 'draw_push_button', 'draw_check_button',
etc, functions to draw the various widgets.
* Entry should allow set_usize to work better, and should compute
a different width when a maximum length is used.
-OffiX drag and drop support
* More dialogs: Print, GtkFontSelector, maybe others...
-Make all widget attributes configurable after the widget is created.
* Multiple document interface (MDI)?
* Support another widget style? Should be possible using GtkStyle's, but
there may be some work needed to remove any style dependencies in widget
code. Maybe GtkStyle's should have 'draw_push_button', 'draw_check_button',
etc, functions to draw the various widgets.
This will be covered by upcoming themability, raster is working on it.
* make the gtk_main callbacks consistent in their add/remove behaviour.
* More work on Documentation
* Check return values on all calls to XIC[Get/Set]Values
* Rewrite the interface to the i18n stuff so GTK widgets don't need to
retrieve X values, and so they don't have to know the value of the
XNxxx character constants.
* The "--geometry" option should be supported
- Having gdk_init() parse the geometry option. (putting it into
GDK means you can use XParseGeometry() without wrapping it)
- Add a call gdk_get_geometry() that retrieves the results
in a form like that returned by XParseGeometry()
- The application then can modify the results (as would gemvt)
then call a routine gtk_window_set_geometry() on whatever
it considers to be its main window.
- Then in some manner GtkWindow takes that into account when
setting its hints. (Probably it uses the size and position
as the current uposition and usize, and modulates that
be the equivalents of the X flags
XValue, YValue, WidthValue, HeightValue, XNegative, or YNegative
( You'd have to extend gdk_window_set_hints to accept the
window gravity option to get it right. )
? Allow moving the separator for paned widgets by dragging
it directly instead of using the handle.
? Mark public use of gtk_tree_remove_item as deprecated - it should be used
as:
gtk_container_remove (GTK_CONTAINER(tree), widget);
* Standardize that all strings should be passed as gchar *, not
guchar *. But what about non-string data? (gdk_property_change,
gtk_selection_data_set) X makes these sort of things guchar...
* Check into XAddConnectionWatch - is this needed for XIM?
* Places where a _full variant is needed:
gtk_clist_set_row_data
gtk_init_add
gtk_menu_popup
gtk_toolbar_prepend_element
gtk_toolbar_insert_element
gtk_widget_dnd_data_set (should be guchar * with a copy?
shouldn't be there at all...)
??? GtkDrawingarea.draw_data
* gtk_rc_add_[name/class]_style are broken for bg pixmaps, because
styles are broken for bg pixmaps, and RC styles only hack around
that.
* Try to rationally deal with someone else deleting one of our
windows??? This would mean keeping track of our window heirarchy
ourselves, for one thing, and will never be safe, because of
race conditions.
* --g-fatal-warnings flag that does
g_set_warning_handler ((GWarningHandler)g_error);
* If a window spontaneously resizes itself N times before any
ConfigureNotify events are received, then due to the interaction
of the ConfigureNotify compression code in GDK and the resize
count used for the window, the window will be size_allocated
the next N-1 times it is moved.
Fix: Only send GDK_EVENT_CONFIGURE when the window is resized,
create a new event type for toplevel motion. (GDK_EVENT_REPOSITION?)
and eliminate the resize count in GtkWindow.
* Generic ScrolledWindow interface, which provide automatic scrollbar
capability to Viewport, Text, and CList widgets.
* GTK_POLICY_NEVER for scrolled windows.
* Consider caching more state in GdkWindowPrivate. Currently,
every widget realization involves a XGetGeometry and a
XGetWindowAttributes. And every GdkWindow destruction
involves a XQueryTree.
* Should all the default handlers really return FALSE? This can
cause confusing presses to be sent to containers that actually
want to get events on themselves.
* New signals to handle accelerators: accel_before and accel_after (or
somesuch) to pre and post process accelerator calls. [Yosh]
Text/Edit widget:
Bugs:
- Really big font (150 pt), plus lots of editing caused segfault
Improvements:
- Unify the key binding support in some fashion between the
Entry and Text widget widgets (???)
- Figure out a way not to recompute the geometry on insertions/deletions
which are large, but not a significant fraction of the
entire text. (e.g., compute the changes as when the widget
is not frozen, but without the actual scrolling)
- Prune the line start cache. But since it is only 68 bytes
per line, and it is a lot faster when lines are in the cache,
it may be better not to, at least for now.
- Show the non-editable state by changing colors. (Use the
style entries for insensitive?)
- Multibyte support for the Text widget.
- Unicode support to do the multi-byte right.
- Support an .inputrc. (The readline one doesn't really work,
unless it is extended because it can't represent X keysyms,
just terminal type input)
- A vi mode
- Word wrap, instead of line folding. (Should the continuation
characters be shown?)
- Horizontal scrolling
- Disable pasting compound text
- When showing background pixmap (not editable) actually set
the background pixmap as the windows bg pixmap, to improve
appearance on exposes. But this would require using another
window to get the origins.
- In word wrap mode, break:
aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
as:
| Maximum column
aaaaaaaaaaa bbbbbbbbbbb|
bbbbbbbbbbbbbbbbbbbbbbb|
bbbbbbbbb |
Instead of:
|
aaaaaaaaaaa |
bbbbbbbbbbbbbbbbbbbbbbb|
bbbbbbbbbbbbbbbbbbbb |
- Blinking cursor
- API's : gtk_text_clear, gtk_text_delete_lines (gint start, gint end),
gtk_text_append/prepend, gtk_text_insert_at (gint row, gint column),
some function to get the row/column from the x/y-coordinates of a
mouse click, some function to get the word/line under the mouse pointer
[ From: Stefan Jeske <jeske@braunschweig.netsurf.de> ]
- "changed" emitted when doing deletes on empty Text widget.
- Delete IC in editable->unrealize, not editable->finalize?

View File

@@ -15,18 +15,28 @@
/* Other stuff */
#undef GTK_COMPILED_WITH_DEBUGGING
#undef HAVE_IPC_H
#undef HAVE_SHM_H
#undef HAVE_XPM
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SYS_SELECT_H
#undef HAVE_XCONVERTCASE
/* some systems do not allow to ipcrm pages prior to
* actual usage, namely: OSF1 V3.2, SunOS 4.1.1, 5.5, 5.5.1, 5.6,
* IRIX 5.2 and 6.2.
*/
#undef IPC_RMID_DEFERRED_RELEASE
#undef NO_FD_SET
#undef RESOURCE_BASE
/* Define to enable POSIX threading awareness */
#undef USE_PTHREADS
#undef XINPUT_NONE
#undef XINPUT_GXI
#undef XINPUT_XFREE

259
acinclude.m4 Normal file
View File

@@ -0,0 +1,259 @@
## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
## Copyright (C) 1996-1998 Free Software Foundation, Inc.
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program 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
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
## As a special exception to the GNU General Public License, if you
## distribute this file as part of a program that contains a
## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program.
# serial 24 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AM_ENABLE_SHARED])dnl
AC_REQUIRE([AM_ENABLE_STATIC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AM_PROG_LD])dnl
AC_REQUIRE([AM_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
# Check for any special flags to pass to ltconfig.
libtool_flags=
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case "$host" in
*-*-irix6*)
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
LD="${LD-ld} -32"
;;
*N32*)
LD="${LD-ld} -n32"
;;
*64-bit*)
LD="${LD-ld} -64"
;;
esac
fi
rm -rf conftest*
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
CFLAGS="$CFLAGS -belf"
;;
esac
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
])
# AM_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AM_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_SHARED,
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl
<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
changequote([, ])dnl
[ --enable-shared=PKGS only build shared libraries if the current package
appears as an element in the PKGS list],
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
])
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AM_DISABLE_SHARED,
[AM_ENABLE_SHARED(no)])
# AM_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AM_DISABLE_STATIC,
[AM_ENABLE_STATIC(no)])
# AM_ENABLE_STATIC - implement the --enable-static flag
# Usage: AM_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_STATIC,
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static,
changequote(<<, >>)dnl
<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
changequote([, ])dnl
[ --enable-static=PKGS only build shared libraries if the current package
appears as an element in the PKGS list],
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
])
# AM_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD,
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
/* | [A-Za-z]:\\*)
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
fi
fi
done
IFS="$ac_save_ifs"
else
ac_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$ac_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT($LD)
else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AM_PROG_LD_GNU
])
AC_DEFUN(AM_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
ac_cv_prog_gnu_ld=yes
else
ac_cv_prog_gnu_ld=no
fi])
])
# AM_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AM_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[case "$NM" in
/* | [A-Za-z]:\\*)
ac_cv_path_NM="$NM" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -B"
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -p"
else
ac_cv_path_NM="$ac_dir/nm"
fi
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
;;
esac])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])

395
aclocal.m4 vendored
View File

@@ -1,395 +0,0 @@
dnl aclocal.m4 generated automatically by aclocal 1.2
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AM_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
AM_SANITY_CHECK
AC_ARG_PROGRAM
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_PROG_MAKE_SET])
# serial 1
AC_DEFUN(AM_PROG_INSTALL,
[AC_REQUIRE([AC_PROG_INSTALL])
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
AC_SUBST(INSTALL_SCRIPT)dnl
])
#
# Check to make sure that the build environment is sane.
#
AC_DEFUN(AM_SANITY_CHECK,
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "$@" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
fi
test "[$]2" = conftestfile
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
AC_SUBST($1)])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file.
dnl This file resides in the same directory as the config header
dnl that is generated. We must strip everything past the first ":",
dnl and everything past the last "/".
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
<<am_indx=1
for am_file in <<$1>>; do
case " <<$>>CONFIG_HEADERS " in
*" <<$>>am_file "*<<)>>
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
;;
esac
am_indx=`expr "<<$>>am_indx" + 1`
done<<>>dnl>>)
changequote([,]))])
# serial 17 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_RANLIB])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AM_PROG_LD])
AC_REQUIRE([AM_PROG_NM])
AC_REQUIRE([AC_PROG_LN_S])
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)
dnl Allow the --disable-shared flag to stop us from building shared libs.
AC_ARG_ENABLE(shared,
[ --enable-shared build shared libraries [default=yes]],
[if test "$enableval" = no; then
libtool_enable_shared=no
else
libtool_enable_shared=yes
fi])
test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared"
libtool_shared=
test "$enable_shared" = no && libtool_shared=" --disable-shared"
dnl Allow the --disable-static flag to stop us from building static libs.
AC_ARG_ENABLE(static,
[ --enable-static build static libraries [default=yes]],
[if test "$enableval" = no; then
libtool_enable_static=no
else
libtool_enable_static=yes
fi])
test -n "$libtool_enable_static" && enable_static="$libtool_enable_static"
libtool_static=
test "$enable_static" = no && libtool_static=" --disable-static"
libtool_flags="$libtool_shared$libtool_static"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
[case "$host" in
*-*-irix6*)
ac_save_CFLAGS="$CFLAGS"
flag_passed=no
for f in -32 -64 -n32 ABI -cckr -mips1 -mips2 -mips3 -mips4; do
case "$f" in
ABI)
test -n "$SGI_ABI" && flag_passed=yes
if test "$flag_passed" = no && test "$ac_cv_prog_gcc" = yes; then
# Choose the ABI flag according to GCC's specs.
if $CC -dumpspecs 2>&1 | sed '/^\*link:$/,/^$/!d' | egrep -e '[ ]-32' >/dev/null; then
LD="${LD-ld} -32"
else
LD="${LD-ld} -n32"
fi
fi
;;
*)
if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then
flag_passed=yes
LD="${LD-ld} $f"
fi
;;
esac
done
CFLAGS="$ac_save_CFLAGS"
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
CFLAGS="$CFLAGS -belf"
;;
esac]
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
])
# AM_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD,
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
/*)
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
fi
fi
done
IFS="$ac_save_ifs"
else
ac_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$ac_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT($LD)
else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AM_PROG_LD_GNU
])
AC_DEFUN(AM_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
ac_cv_prog_gnu_ld=yes
else
ac_cv_prog_gnu_ld=no
fi])
])
# AM_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AM_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[case "$NM" in
/*)
ac_cv_path_NM="$NM" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in /usr/ucb $PATH /bin; do
test -z "$ac_dir" && dir=.
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -B"
elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -p"
else
ac_cv_path_NM="$ac_dir/nm"
fi
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
;;
esac])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])
# Add --enable-maintainer-mode option to configure.
# From Jim Meyering
# serial 1
AC_DEFUN(AM_MAINTAINER_MODE,
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
dnl maintainer-mode is disabled by default
AC_ARG_ENABLE(maintainer-mode,
[ --enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer],
USE_MAINTAINER_MODE=$enableval,
USE_MAINTAINER_MODE=no)
AC_MSG_RESULT($USE_MAINTAINER_MODE)
if test $USE_MAINTAINER_MODE = yes; then
MAINT=
else
MAINT='#M#'
fi
AC_SUBST(MAINT)dnl
]
)
# serial 1
# @defmac AC_PROG_CC_STDC
# @maindex PROG_CC_STDC
# @ovindex CC
# If the C compiler in not in ANSI C mode by default, try to add an option
# to output variable @code{CC} to make it so. This macro tries various
# options that select ANSI C on some system or another. It considers the
# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
# handles function prototypes correctly.
#
# If you use this macro, you should check after calling it whether the C
# compiler has been set to accept ANSI C; if not, the shell variable
# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
# code in ANSI C, you can make an un-ANSIfied copy of it by using the
# program @code{ansi2knr}, which comes with Ghostscript.
# @end defmac
AC_DEFUN(AM_PROG_CC_STDC,
[AC_REQUIRE([AC_PROG_CC])
AC_BEFORE([$0], [AC_C_INLINE])
AC_BEFORE([$0], [AC_C_CONST])
AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
AC_CACHE_VAL(am_cv_prog_cc_stdc,
[am_cv_prog_cc_stdc=no
ac_save_CC="$CC"
# Don't try gcc -ansi; that turns off useful extensions and
# breaks some systems' header files.
# AIX -qlanglvl=ansi
# Ultrix and OSF/1 -std1
# HP-UX -Aa -D_HPUX_SOURCE
# SVR4 -Xc -D__EXTENSIONS__
for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
AC_TRY_COMPILE(
[#if !defined(__STDC__) || __STDC__ != 1
choke me
#endif
/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/stat.h>
#endif
], [
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};],
[am_cv_prog_cc_stdc="$ac_arg"; break])
done
CC="$ac_save_CC"
])
if test -z "$am_cv_prog_cc_stdc"; then
AC_MSG_RESULT([none needed])
else
AC_MSG_RESULT($am_cv_prog_cc_stdc)
fi
case "x$am_cv_prog_cc_stdc" in
x|xno) ;;
*) CC="$CC $am_cv_prog_cc_stdc" ;;
esac
])

63
autogen.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
PROJECT=Gtk+
TEST_TYPE=-d
FILE=gdk
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $PROJECT."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
(libtool --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have libtool installed to compile $PROJECT."
echo "Get ftp://alpha.gnu.org/gnu/libtool-1.0h.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have automake installed to compile $PROJECT."
echo "Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.2d.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT directory"
exit 1
}
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
case $CC in
*lcc | *lcc\ *) am_opt=--include-deps;;
esac
aclocal $ACLOCAL_FLAGS
# optionally feature autoheader
(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader
automake $am_opt
autoconf
./configure "$@"
echo
echo "Now type 'make' to compile $PROJECT."

View File

@@ -3,28 +3,45 @@
/* Define to empty if the keyword does not work. */
#undef const
/* Define if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define if your processor stores words with the most significant
byte first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
/* Define if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
/* Other stuff */
#undef GTK_COMPILED_WITH_DEBUGGING
#undef HAVE_IPC_H
#undef HAVE_SHM_H
#undef HAVE_XPM
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SYS_SELECT_H
#undef HAVE_XCONVERTCASE
/* some systems do not allow to ipcrm pages prior to
* actual usage, namely: OSF1 V3.2, SunOS 4.1.1, 5.5, 5.5.1, 5.6,
* IRIX 5.2 and 6.2.
*/
#undef IPC_RMID_DEFERRED_RELEASE
#undef NO_FD_SET
#undef RESOURCE_BASE
/* Define to enable POSIX threading awareness */
#undef USE_PTHREADS
#undef XINPUT_NONE
#undef XINPUT_GXI
#undef XINPUT_XFREE
@@ -32,5 +49,8 @@
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* #undef PACKAGE */
/* #undef VERSION */
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

View File

@@ -1,11 +1,49 @@
# Process this file with autoconf to produce a configure script.
AC_INIT(gdk/gdktypes.h)
# Configure glib
AC_CONFIG_SUBDIRS(glib)
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
# Making releases:
# GTK_MICRO_VERSION += 1;
# GTK_INTERFACE_AGE += 1;
# GTK_BINARY_AGE += 1;
# if any functions have been added, set GTK_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
#
GTK_MAJOR_VERSION=1
GTK_MINOR_VERSION=1
GTK_MICRO_VERSION=2
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=0
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
AC_SUBST(GTK_INTERFACE_AGE)
AC_SUBST(GTK_BINARY_AGE)
AC_SUBST(GTK_VERSION)
# libtool versioning
LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
LT_REVISION=$GTK_INTERFACE_AGE
LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
AC_SUBST(LT_RELEASE)
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)
# For automake.
VERSION=$GTK_VERSION
PACKAGE=gtk+
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
dnl Initialize automake stuff
AM_INIT_AUTOMAKE(gtk+, 971109)
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
# Specify a configuration file
AM_CONFIG_HEADER(config.h)
@@ -20,21 +58,30 @@ AC_CANONICAL_HOST
AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available [default=yes]],
echo $enable_shm, enable_shm="yes")
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
if eval "test x$enable_debug = xyes"; then
DEBUGFLAG="-g"
fi)
AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=minimum]],,enable_debug=minimum)
AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]],
, enable_ansi=no)
AC_ARG_WITH(glib, [ --with-glib=DIR Use uninstalled copy of glib])
AC_ARG_ENABLE(xim, [ --enable-xim support XIM [default=yes]],
echo $enable_xim, enable_xim="yes")
AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ])
AC_ARG_WITH(xinput, [ --with-xinput[=no/gxi/xfree] support XInput ])
AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ])
AC_ARG_WITH(threads, [ --with-threads=[posix] support threading ])
if test -n "$DEBUGFLAG"; then
CFLAGS="$DEBUGFLAG"
if test "x$enable_debug" = "xyes"; then
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
CFLAGS="$CFLAGS -DG_ENABLE_DEBUG"
else
CFLAGS="$CFLAGS -DNDEBUG"
if test "x$enable_debug" = "xno"; then
CFLAGS="$CFLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS"
else
CFLAGS="$CFLAGS -DGTK_NO_CHECK_CASTS"
fi
fi
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
# Build time sanity check...
AM_SANITY_CHECK
@@ -44,25 +91,109 @@ AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
if eval "test x$GCC = xyes"; then
test `echo "$CFLAGS" | grep "\-Wall" > /dev/null 2> /dev/null`
if test ! $?; then
if test "x$GCC" = "xyes"; then
if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
CFLAGS="$CFLAGS -Wall"
fi
if eval "test x$enable_ansi = xyes"; then
test `echo "$CFLAGS" | grep "\-ansi" > /dev/null 2> /dev/null`
if test ! $?; then
if test "x$enable_ansi" = "xyes"; then
if test -z "`echo "$CFLAGS" | grep "\-ansi" 2> /dev/null`" ; then
CFLAGS="$CFLAGS -ansi"
fi
test `echo "$CFLAGS" | grep "\-pedantic" > /dev/null 2> /dev/null`
if test ! $?; then
if test -z "`echo "$CFLAGS" | grep "\-pedantic" 2> /dev/null`" ; then
CFLAGS="$CFLAGS -pedantic"
fi
fi
fi
dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
gtk_save_LIBS=$LIBS
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
int main (void) { return (log(1) != log(1.)); }],
AC_MSG_RESULT(none needed),
gtk_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -std1"
AC_TRY_RUN([#include <math.h>
int main (void) { return (log(1) != log(1.)); }],
AC_MSG_RESULT(-std1),
AC_MSG_RESULT()
CFLAGS=$gtk_save_CFLAGS
AC_MSG_WARN(
[No ANSI prototypes found in library. (-std1 didn't work.)])
)
)
LIBS=$gtk_save_LIBS
dnl NeXTStep cc seems to need this
AC_MSG_CHECKING([for extra flags for POSIX compliance])
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
AC_MSG_RESULT(none needed),
gtk_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -posix"
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
AC_MSG_RESULT(-posix),
AC_MSG_RESULT()
CFLAGS=$gtk_save_CFLAGS
AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
if test "x$enable_xim" = "xyes"; then
CFLAGS="$CFLAGS -DUSE_XIM"
fi
if test x$with_glib = xyes ; then
AC_MSG_ERROR([
*** Directory must be specified for --with-glib])
fi
if test x$with_glib = x ; then
# Look for separately installed glib
AM_PATH_GLIB(1.1.3,,
AC_MSG_ERROR([
*** GLIB 1.1.3 or better is required. The latest version of GLIB
*** is always available from ftp://ftp.gtk.org.]),
gmodule)
glib_cflags=$GLIB_CFLAGS
glib_libs=$GLIB_LIBS
else
# Use uninstalled glib (assume they got the version right)
if test -x $with_glib/glib-config ; then
:
else
AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured])
fi
# For use in gtk-config
glib_cflags=`$with_glib/glib-config --cflags`
glib_libs=`$with_glib/glib-config --libs`
glib_release=`$with_glib/glib-config --version | sed 's%\\.[[0-9]]*$%%'`
# canonicalize relative paths
case $with_glib in
/*)
glib_dir=$with_glib
;;
*)
glib_dir="\$(top_builddir)/$with_glib"
;;
esac
GLIB_CFLAGS="-I$glib_dir"
GLIB_LIBS=$glib_dir/libglib-$glib_release.la
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
fi
AC_SUBST(glib_cflags)
AC_SUBST(glib_libs)
# Find the X11 include and library directories
AC_PATH_X
AC_PATH_XTRA
@@ -74,34 +205,73 @@ fi
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"
CFLAGS="$X_CFLAGS"
LDFLAGS="$X_LDFLAGS $X_LIBS"
CFLAGS="$CFLAGS $X_CFLAGS"
LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
if test "x$no_x" = "xyes"; then
AC_MSG_ERROR([
*** X libraries or include files not found. Check 'config.log' for
*** more details.])
fi
# Checks for libraries.
# Check for the X11 library
AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", no_x11_lib=yes, $X_EXTRA_LIBS)
AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS",
AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
$X_EXTRA_LIBS)
if eval "test x$enable_shm = xyes"; then
if test "x$enable_shm" = "xyes"; then
# Check for the Xext library (needed for XShm extention)
AC_CHECK_LIB(Xext, XShmAttach, x_libs="-lXext $x_libs", no_xext_lib=yes, $x_libs)
AC_CHECK_LIB(Xext, XShmAttach,
x_libs="-lXext $x_libs",
# On AIX, it is in XextSam instead, but we still need -lXext
AC_CHECK_LIB(XextSam, XShmAttach,
x_libs="-lXextSam -lXext $x_libs",
no_xext_lib=yes, $x_libs),
$x_libs)
fi
# Check for shaped window extension
AC_CHECK_LIB(Xext, XShapeCombineMask,
if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
x_libs="-lXext $x_libs"
fi
AC_DEFINE(HAVE_SHAPE_EXT),
,
$x_libs)
# Check for XConvertCase (X11R6 specific)
AC_CHECK_LIB(X11, XConvertCase,
AC_DEFINE(HAVE_XCONVERTCASE),
,
$x_libs)
x_cflags="$X_CFLAGS"
x_ldflags="$X_LDFLAGS $X_LIBS"
# set up things for XInput
if eval "test x$with_xinput = xgxi -o x$with_xinput = xyes"; then
if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
AC_DEFINE(XINPUT_GXI)
xinput_progs=gxid
x_libs="-lXi $x_libs"
elif eval "test x$with_xinput = xxfree"; then
elif test "x$with_xinput" = "xxfree"; then
AC_DEFINE(XINPUT_XFREE)
x_libs="-lXi $x_libs"
else
AC_DEFINE(XINPUT_NONE)
fi
# Threads
if test "x$with_threads" = "xposix" || test "x$with_threads" = "xyes"; then
AC_CHECK_LIB(pthread, pthread_attr_init,
AC_DEFINE(USE_PTHREADS)
x_libs="$x_libs -lpthread"
CFLAGS="$CFLAGS -D_REENTRANT")
fi
AC_SUBST(x_cflags)
AC_SUBST(x_includes)
@@ -112,7 +282,7 @@ AC_SUBST(xinput_progs)
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
if eval "test x$enable_shm = xyes"; then
if test "x$enable_shm" = "xyes"; then
# Check for shared memory
AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
@@ -151,11 +321,11 @@ if eval "test x$enable_shm = xyes"; then
# Check for the X shared memory extension header file
AC_MSG_CHECKING(X11/extensions/XShm.h)
if eval "test x$no_ext_lib = xyes"; then
if test "x$no_xext_lib" = "xyes"; then
AC_MSG_RESULT(no)
no_xshm=yes
else
if eval "test -f $x_includes/X11/extensions/XShm.h"; then
if test -f "$x_includes/X11/extensions/XShm.h"; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_XSHM_H)
else
@@ -186,29 +356,62 @@ gtk_cv_display_resource_base="private3")])
AC_MSG_RESULT($gtk_cv_display_resource_base)
AC_DEFINE_UNQUOTED(RESOURCE_BASE, gdk_display->$gtk_cv_display_resource_base)
# Check if X_LOCALE definition is necessary
AC_MSG_CHECKING(need -DX_LOCALE)
AC_TRY_RUN([
#include <stdio.h>
#include <locale.h>
int
main ()
{
return setlocale (LC_ALL, "${with_locale}") == NULL;
}],
need_x_locale=no,
need_x_locale=yes)
AC_MSG_RESULT($need_x_locale)
if test $need_x_locale = yes; then
CFLAGS="$CFLAGS -DX_LOCALE"
fi
# Checks for header files.
AC_HEADER_STDC
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
# Checks for endianness (needed by GdkRgb).
AC_C_BIGENDIAN
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
# Check for sys/select.h
AC_MSG_CHECKING([fd_set and sys/select])
# Check if <sys/select.h> needs to be included for fd_set
AC_MSG_CHECKING([for fd_set])
AC_TRY_COMPILE([#include <sys/types.h>],
[fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = no; then
if test $gtk_ok = yes; then
AC_MSG_RESULT([yes, found in sys/types.h])
else
AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
if test $gtk_ok = yes; then
AC_DEFINE(HAVE_SYS_SELECT_H)
AC_MSG_RESULT([yes, found in sys/select.h])
else
AC_DEFINE(NO_FD_SET)
AC_MSG_RESULT(no)
fi
fi
AC_MSG_RESULT($gtk_ok)
if test $gtk_ok = no; then
AC_DEFINE(NO_FD_SET)
fi
AC_OUTPUT(Makefile gtk+.xconfig docs/Makefile gdk/Makefile gtk/Makefile)
AC_OUTPUT([
Makefile
gtk-config
docs/Makefile
gdk/Makefile
gtk/Makefile
gtk/gtkfeatures.h
], [chmod +x gtk-config])

18
debian/README.debian vendored Normal file
View File

@@ -0,0 +1,18 @@
libgtk1 for Debian
----------------------
The GIMP Tool Kit (gtk) is a set of widgets to help you program
programs for the X Windowing System easily and powerfully.
gtk is the moving force behind The GNU Image Manipulation Program (The
GIMP) -- the number one freely-available image editing and creation
program available.
gtk is rapidly under development, and the source tree has officially
been separated from The GIMP now, as other teams of programmers
are beginning to write software using its great widget set -- like
GNOME, a desktop interface for X, and gzilla, a freely available
web browser for X.
Ben Gertzfield <che@debian.org>, Mon, 29 Sep 1997 13:11:45 -0700

169
debian/changelog vendored Normal file
View File

@@ -0,0 +1,169 @@
gtk+ (1:0.99.8-1) unstable; urgency=low
* New upstream version.
* New file included in libgtk-dev: /usr/share/aclocal/gtk.m4,
to help autoconf/automake developers use gtk and gtk-config
more easily.
* New file included in libgtk-doc: /usr/doc/libgtk-doc/gtk-config.txt
Please refer to this doc when developing for gtk or compiling
and running into odd path-related errors.
-- Ben Gertzfield <che@debian.org> Thu, 19 Mar 1998 19:58:53 -0800
gtk+ (1:0.99.7-4) frozen unstable; urgency=low
* Rebuild with native Debian libtool to have libraries properly
linked with libc and libX et al.
-- Ben Gertzfield <che@debian.org> Tue, 17 Mar 1998 16:05:13 -0800
gtk+ (1:0.99.7-3) frozen unstable; urgency=low
* Accidentally included all the html docs in /usr/doc/libgtk-doc/faq-html;
moved the tutorial into /usr/doc/libgtk-doc/tutorial-html.
* Included the Italian Gtk+ Tutorial in
/usr/doc/libgtk-doc/italian-tutorial-html.
-- Ben Gertzfield <che@debian.org> Mon, 16 Mar 1998 22:39:57 -0800
gtk+ (1:0.99.7-2) unstable; urgency=low
* Upstream source added a /usr/lib/glib/ directory that I didn't
notice; included this directory in libgtk-dev.
* Realized that Xinput support was broken because I was doing
./configure --enable-xinput=xfree instead of ./configure
--with-xinput=xfree. Fixed.
-- Ben Gertzfield <che@debian.org> Sun, 15 Mar 1998 19:17:05 -0800
gtk+ (1:0.99.7-1) unstable; urgency=low
* New upstream release -- THIS IS INCOMPATIBLE WITH OLDER RELEASES!
All Gtk-using packages *will* need patches to work with this Gtk!
* Upstream release includes 'gtk-config' script to check installed
version of Gtk; included said script in libgtk-dev in /usr/bin.
-- Ben Gertzfield <che@debian.org> Sun, 15 Mar 1998 11:03:03 -0800
gtk+ (1:0.99.5-2) unstable; urgency=low
* Modified libgtk-doc to Replace: libgtk-dev (<< 1:0.99.4) to
deal with both packages including the same .info files.
Fixes bug #19533.
* Also noticed that libgtk-dev depended on libgtk1 without
an epoch! Fixed.
-- Ben Gertzfield <che@debian.org> Thu, 12 Mar 1998 13:37:11 -0800
gtk+ (1:0.99.5-1) unstable; urgency=low
* Wow, that was quick, a new upstream version.
-- Ben Gertzfield <che@debian.org> Mon, 9 Mar 1998 22:08:08 -0800
gtk+ (1:0.99.4-3) unstable; urgency=low
* Recompiled with --enable-xinput=xfree to enable Wacom pads
and other physical input devices.
-- Ben Gertzfield <che@debian.org> Mon, 9 Mar 1998 21:26:07 -0800
gtk+ (1:0.99.4-2) unstable; urgency=MEDIUM
* Ack! The shlibs file makes things depend on libgtk1 (>= 0.99.4)
rather than (>= 1:0.99.4)! Fixes bug #19134.
-- Ben Gertzfield <che@debian.org> Sat, 7 Mar 1998 23:57:33 -0800
gtk+ (1:0.99.4-1) unstable; urgency=low
* New upstream version.
* Recompiled with new debhelper to remove du warnings.
* Upstream source is named gtk+, not libgtk1. Changed source name.
* Removed --disable-xim in hopes that xim is no longer broken.
* Removed testgtk at the behest of the Gtk developers until I can
come up with a better solution, probably related to:
* the new libgtk-doc package! :) libgtk-doc contains the Gtk FAQ,
the Gtk Tutorial, and the Gtk info files.
-- Ben Gertzfield <che@debian.org> Tue, 3 Mar 1998 22:23:47 -0800
libgtk1 (1:0.99.3-2) unstable; urgency=low
* Created manpage for testgtk program.
* Fixed copyright mention to LGPL.gz to be just LGPL.
* This fixes all known lintian errors.
-- Ben Gertzfield <che@debian.org> Wed, 11 Feb 1998 14:07:17 -0800
libgtk1 (1:0.99.3-1) unstable; urgency=low
* New upstream version.
* Include the testgtk binary in libgtk-dev.
-- Ben Gertzfield <che@debian.org> Sat, 24 Jan 1998 15:30:09 -0800
libgtk1 (1:0.99.2-2) unstable; urgency=low
* Fixed shlibs file to specify version >=1:0.99.2.
* Renamed debian/postinst.libgtk1 to debian/postinst, so debhelper
would actually install it.
-- Ben Gertzfield <che@debian.org> Mon, 5 Jan 1998 12:22:46 -0800
libgtk1 (1:0.99.2-1) unstable; urgency=low
* New upstream version.
-- Ben Gertzfield <che@debian.org> Sun, 4 Jan 1998 00:21:21 -0800
libgtk1 (1:0.99.0-1) unstable; urgency=medium
* New upstream version with new numbering scheme, went to epoch :1
correspondingly.
* Hopefully fixed entry-field bug.
* Converted to use debhelper.
-- Ben Gertzfield <che@debian.org> Mon, 15 Dec 1997 12:02:25 -0800
libgtk1 (971201-1) unstable; urgency=low
* New upstream version.
* Fixed copyright to say LGPL, not GPL. (bug #14867)
* Re-added postinst ldconfig call. (bug #14213)
* Info files should be correct now. (bugs #14773, #15143)
-- Ben Gertzfield <che@debian.org> Mon, 1 Dec 1997 16:41:50 -0800
libgtk1 (971109-1) unstable; urgency=low
* New upstream version.
* Name is really 'GIMP Tool Kit', not 'General Tool Kit'.
-- Ben Gertzfield <che@debian.org> Mon, 10 Nov 1997 16:15:27 -0800
libgtk1 (970925-3) unstable; urgency=low
* Moved the include files to /usr/include/{gtk,gdk}.
* Removed postinst/postrm ldconfig calls, fixes old gimp bug #13773.
-- Ben Gertzfield <che@debian.org> Fri, 17 Oct 1997 17:06:10 -0700
libgtk1 (970925-2) unstable; urgency=low
* Added the shlibs file.
* Removed the postinst/postrm calls to ldconfig, fixes bug #13733.
-- Ben Gertzfield <che@debian.org> Fri, 10 Oct 1997 17:55:39 -0700
libgtk1 (970925-1) unstable; urgency=low
* New upstream version.
* Split off source tree from gimp's source tree.
-- Ben Gertzfield <che@debian.org> Mon, 29 Sep 1997 13:14:45 -0700
Local variables:
mode: debian-changelog
add-log-mailing-address: "che@debian.org"
End:

41
debian/control vendored Normal file
View File

@@ -0,0 +1,41 @@
Source: gtk+
Priority: optional
Section: libs
Maintainer: Ben Gertzfield <che@debian.org>
Standards-Version: 2.4.0.0
Package: libgtk1
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: The GIMP Toolkit set of widgets for X
The GIMP Toolkit is a freely available set of widgets for X.
GTK is easy to use, and has been implemented in such projects as
The GNU Image Manipulation Program (The GIMP), GNOME, a GNU
desktop set of utilities for X, and gzilla, a GNU web-browser.
Package: libgtk-dev
Architecture: any
Section: devel
Depends: libgtk1 (>= 1:0.99.8)
Suggests: libgtk-doc
Replaces: libgtk1 (<= 0.99.7)
Description: Header files and static libraries for the GIMP Toolkit
This package contains the header files and static libraries for the
GIMP Toolkit set of widgets for X.
.
Install this package if you wish to develop your own X programs using
the GIMP Toolkit, or if you wish to compile your own plug-ins for
The GIMP.
Package: libgtk-doc
Architecture: all
Section: docs
Replaces: libgtk-dev (<< 1:0.99.4)
Description: Documentation and example code for the GIMP Toolkit
This package contains lots of info-files, HTML docs, FAQs, and
other handy documentation about the GIMP Toolkit set of widgets
for X.
.
Install this package if you want to have lots of info about the
GIMP toolkit when you're programming.

8
debian/copyright vendored Normal file
View File

@@ -0,0 +1,8 @@
This package was debianized by Ben Gertzfield che@imsa.edu on
Tue, 22 Jul 1997 20:53:20 -0500
It was downloaded from ftp.gimp.org.
It may be redistributed under the terms of the GNU LGPL, Version 2 or
later, found on Debian systems in the file /usr/doc/copyright/LGPL.

7
debian/libgtk-dev.postinst vendored Normal file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
ldconfig
#DEBHELPER#

6
debian/libgtk-dev.prerm vendored Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
set -e
install-info --quiet --remove gtk
#DEBHELPER#

14
debian/libgtk-doc.postinst vendored Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/sh
set -e
install-info --quiet --description="The GIMP Toolkit." \
--section "The GIMP" "The GIMP" /usr/info/gtk.info.gz
install-info --quiet --description="The GIMP Drawing Kit." \
--section "The GIMP" "The GIMP" /usr/info/gdk.info.gz
install-info --quiet --description="The GIMP Library." \
--section "The GIMP" "The GIMP" /usr/info/glib.info.gz
#DEBHELPER#

8
debian/libgtk-doc.prerm vendored Normal file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
install-info --quiet --remove gtk
install-info --quiet --remove glib
install-info --quiet --remove gdk
#DEBHELPER#

7
debian/postinst vendored Normal file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
ldconfig
#DEBHELPER#

120
debian/rules vendored Executable file
View File

@@ -0,0 +1,120 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
build: build-stamp
build-stamp:
dh_testdir
# Add here commands to compile the package.
./configure --prefix=/usr --with-xinput=xfree
$(MAKE)
cd docs && make -f Makefile.sgml
cd ..
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
-$(MAKE) distclean
-rm docs/*.html
dh_clean
install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean
$(MAKE) prefix=`pwd`/debian/tmp/usr install
touch install-stamp
# Build architecture-independent files here.
binary-indep: build install libgtk-doc
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install libgtk-dev libgtk1
libgtk1: build
dh_testdir -plibgtk1
dh_testroot -plibgtk1
# dh_clean -plibgtk1
dh_installdirs -plibgtk1
# Add here commands to install the files into debian/tmp
rm -rf debian/tmp/usr/bin debian/tmp/usr/include debian/tmp/usr/info debian/tmp/usr/lib/glib debian/tmp/usr/share
# dh_movefiles -plibgtk1
# $(MAKE) prefix=`pwd`/debian/tmp/usr install
# rmdir debian/tmp/usr/bin
# rm debian/tmp/usr/lib/*.{so,la,a}
# rm -rf debian/tmp/usr/{include,info}
dh_installdocs -plibgtk1
dh_installchangelogs -plibgtk1
dh_strip -plibgtk1
dh_compress -plibgtk1
dh_fixperms -plibgtk1
dh_installdeb -plibgtk1
dh_shlibdeps -plibgtk1
dh_gencontrol -plibgtk1
dh_makeshlibs -plibgtk1 -V 'libgtk1 (>= 1:0.99.7)'
# echo "libglib 1 libgtk1 (>=0.99.4)" >> debian/tmp/DEBIAN/shlibs
# echo "libgtk 1 libgtk1 (>=0.99.4)" >> debian/tmp/DEBIAN/shlibs
# echo "libgdk 1 libgtk1 (>=0.99.4)" >> debian/tmp/DEBIAN/shlibs
dh_md5sums -plibgtk1
dh_builddeb -plibgtk1
libgtk-dev: build
dh_testdir -plibgtk-dev
dh_testroot -plibgtk-dev
dh_clean -plibgtk-dev -k
dh_installdirs -plibgtk-dev
# Add here commands to install the files into debian/tmp
dh_movefiles -plibgtk-dev
cp gtk-config debian/tmp/usr/bin
# $(MAKE) prefix=`pwd`/debian/libgtk-dev/usr install
# find debian/libgtk-dev/usr/lib \( -type f -or -type l \) -and ! \( -name \*.so -or -name \*.a \) | xargs rm
# cp gtk/.libs/testgtk debian/libgtk-dev/usr/bin
# cp debian/testgtk.1 debian/libgtk-dev/usr/man/man1
dh_installdocs -plibgtk-dev
dh_installchangelogs -plibgtk-dev
dh_strip -plibgtk-dev
dh_compress -plibgtk-dev
dh_fixperms -plibgtk-dev
dh_installdeb -plibgtk-dev
dh_shlibdeps -plibgtk-dev
dh_gencontrol -plibgtk-dev
dh_makeshlibs -plibgtk-dev
dh_md5sums -plibgtk-dev
dh_builddeb -plibgtk-dev
libgtk-doc:
dh_testdir -plibgtk-doc
dh_testroot -plibgtk-doc
dh_clean -plibgtk-doc -k
dh_installdirs -plibgtk-doc usr/doc/libgtk-doc/faq-html \
usr/doc/libgtk-doc/tutorial-html usr/doc/libgtk-doc/italian-tutorial-html
# Add here commands to install the files into debian/tmp
dh_movefiles -plibgtk-doc
cp docs/gtkfaq*.html debian/libgtk-doc/usr/doc/libgtk-doc/faq-html
cp docs/gtk_tut-*.html debian/libgtk-doc/usr/doc/libgtk-doc/tutorial-html
cp docs/gtk_tut.html debian/libgtk-doc/usr/doc/libgtk-doc/tutorial-html
cp docs/gtk_tut_it*.html debian/libgtk-doc/usr/doc/libgtk-doc/italian-tutorial-html
dh_installdocs -plibgtk-doc docs/{debugging,developers,styles,text_widget,widget_system,gtk-config}.txt ChangeLog TODO NEWS
dh_installchangelogs -plibgtk-doc
dh_strip -plibgtk-doc
dh_compress -plibgtk-doc
dh_fixperms -plibgtk-doc
dh_installdeb -plibgtk-doc
dh_shlibdeps -plibgtk-doc
dh_gencontrol -plibgtk-doc
dh_makeshlibs -plibgtk-doc
dh_md5sums -plibgtk-doc
dh_builddeb -plibgtk-doc
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary

View File

@@ -1 +1,18 @@
Makefile
Makefile.in
*.html
*.info*
*.dvi
*.ps
*.pg
*.ky
*.cp
*.fn
*.tp
*.vr
*.log
*.aux
*.toc
*.cps
*.fns
*.vrs

View File

@@ -1,8 +1,31 @@
## Process this file with automake to produce Makefile.in
info_TEXINFOS = gdk.texi gtk.texi
info_TEXINFOS = gdk.texi gtk.texi glib.texi
EXTRA_DIST = texinfo.tex macros.texi
man_MANS = gtk-config.1
EXTRA_DIST = \
texinfo.tex \
macros.texi \
Makefile.sgml \
gtkdocs_fix \
gtkfaq.sgml \
gtk-config.txt \
gtk_tut.sgml \
gtk_tut_it.sgml \
gtk_tut_fr.sgml \
debugging.txt \
developers.txt \
refcounting.txt \
styles.txt \
text_widget.txt \
widget_system.txt \
gtk_tut_packbox1.gif \
gtk_tut_packbox2.gif \
gtk_tut_table.gif \
gtk-config.1
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \

387
docs/Makefile.in Normal file
View File

@@ -0,0 +1,387 @@
# Makefile.in generated automatically by automake 1.3 from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DISTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@
GTK_MICRO_VERSION = @GTK_MICRO_VERSION@
GTK_MINOR_VERSION = @GTK_MINOR_VERSION@
GTK_VERSION = @GTK_VERSION@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_RELEASE = @LT_RELEASE@
LT_REVISION = @LT_REVISION@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
x_cflags = @x_cflags@
x_includes = @x_includes@
x_ldflags = @x_ldflags@
x_libs = @x_libs@
xinput_progs = @xinput_progs@
info_TEXINFOS = gdk.texi gtk.texi glib.texi
man_MANS = gtk-config.1
EXTRA_DIST = \
texinfo.tex \
macros.texi \
Makefile.sgml \
gtkdocs_fix \
gtkfaq.sgml \
gtk-config.txt \
gtk_tut.sgml \
gtk_tut_it.sgml \
debugging.txt \
developers.txt \
refcounting.txt \
styles.txt \
text_widget.txt \
widget_system.txt \
gtk_tut_packbox1.gif \
gtk_tut_packbox2.gif \
gtk_tut_table.gif \
gtk-config.1
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
TEXINFO_TEX = $(srcdir)/texinfo.tex
INFO_DEPS = gdk.info gtk.info glib.info
DVIS = gdk.dvi gtk.dvi glib.dvi
TEXINFOS = gdk.texi gtk.texi glib.texi
man1dir = $(mandir)/man1
MANS = $(man_MANS)
NROFF = nroff
DIST_COMMON = Makefile.am Makefile.in texinfo.tex
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
all: Makefile $(INFO_DEPS) $(MANS)
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
gdk.info: gdk.texi
gdk.dvi: gdk.texi
gtk.info: gtk.texi
gtk.dvi: gtk.texi
glib.info: glib.texi
glib.dvi: glib.texi
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.dvi.ps:
$(DVIPS) $< -o $@
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@for file in $(INFO_DEPS); do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
for file in $(INFO_DEPS); do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
for file in $(INFO_DEPS); do \
test -z "$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
for file in $(INFO_DEPS); do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
for base in $(INFO_DEPS); do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f gdk.aux gdk.cp gdk.cps gdk.dvi gdk.fn gdk.fns gdk.ky gdk.kys \
gdk.ps gdk.log gdk.pg gdk.toc gdk.tp gdk.tps gdk.vr gdk.vrs \
gdk.op gdk.tr gdk.cv gdk.cn gtk.aux gtk.cp gtk.cps gtk.dvi \
gtk.fn gtk.fns gtk.ky gtk.kys gtk.ps gtk.log gtk.pg gtk.toc \
gtk.tp gtk.tps gtk.vr gtk.vrs gtk.op gtk.tr gtk.cv gtk.cn \
glib.aux glib.cp glib.cps glib.dvi glib.fn glib.fns glib.ky \
glib.kys glib.ps glib.log glib.pg glib.toc glib.tp glib.tps \
glib.vr glib.vrs glib.op glib.tr glib.cv glib.cn
clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
install-man1:
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
done
uninstall-man1:
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
rm -f $(DESTDIR)$(man1dir)/$$inst; \
done
install-man: $(MANS)
@$(NORMAL_INSTALL)
$(MAKE) install-man1
uninstall-man:
@$(NORMAL_UNINSTALL)
$(MAKE) uninstall-man1
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = docs
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu docs/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done
$(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info: $(INFO_DEPS)
dvi: $(DVIS)
check: all
$(MAKE)
installcheck:
install-exec:
@$(NORMAL_INSTALL)
install-data: install-info-am install-man
@$(NORMAL_INSTALL)
install: install-exec install-data all
@:
uninstall: uninstall-info uninstall-man
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(DISTCLEANFILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
mostlyclean: mostlyclean-aminfo mostlyclean-generic
clean: clean-aminfo clean-generic mostlyclean
distclean: distclean-aminfo distclean-generic clean
-rm -f config.status
-rm -f libtool
maintainer-clean: maintainer-clean-aminfo maintainer-clean-generic \
distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
uninstall-man1 install-man uninstall-man tags distdir info dvi \
installcheck install-exec install-data install uninstall all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

40
docs/Makefile.sgml Normal file
View File

@@ -0,0 +1,40 @@
#
# To use this makefile, do:
# make -f Makefile.gtkfaq
#
# This is not done by default because you might
# not have sgml2html installed... Perhaps we could
# detect that in the future and combine it in with
# the automake stuff...
#
all: html ps
html: faq tut italian_tut
perl gtkdocs_fix gtkfaq*.html gtk_tut*.html
txt:
sgml2txt gtkfaq.sgml
sgml2txt gtk_tut.sgml
sgml2txt gtk_tut_it.sgml
ps: dvi
dvips -o gtkfaq.ps gtkfaq.dvi
dvips -o gtk_tut.ps gtk_tut.dvi
dvips -o gtk_tut_it.ps gtk_tut_it.dvi
dvi:
sgml2latex gtkfaq.sgml
sgml2latex gtk_tut.sgml
sgml2latex gtk_tut_it.sgml
faq:
sgml2html gtkfaq.sgml
tut:
sgml2html gtk_tut.sgml
italian_tut:
sgml2html gtk_tut_it.sgml

97
docs/debugging.txt Normal file
View File

@@ -0,0 +1,97 @@
The GLIB, GDK, and GTK libraries have extensive support for
debugging the library and your programs.
The amount of debugging being done can be determined both
at run time and compile time.
COMPILE TIME OPTIONS
--------------------
At compile time, the amount of debugging support included is
determined by four macros:
G_ENABLE_DEBUG
If set, enable support for runtime checking.
G_DISABLE_ASSERT
If set, disable g_assert macros
G_DISABLE_CHECKS
If set, disable the g_return_if_fail and g_return_val_if_fail macros
GTK_NO_CHECK_CASTS
If set, don't check casts between different object types
Whether these macros are defined is controlled at configuration
time by the --enable-debug option.
--enable-debug=minimum [default]
Enable only inexpensive sanity checking
sets GTK_NO_CHECK_CASTS
--enable-debug=yes
Enable all debugging support
sets G_ENABLE_DEBUG
--enable-debug=no (or --disable-debug)
Disable all debugging support (fastest)
sets G_DISABLE_ASSERT, G_DISABLE_CHECKS, and GTK_NO_CHECK_CASTS
RUN TIME OPTIONS
----------------
At run time, if GTK+ was compiled with debugging enabled, different
types of debugging information can be printed out. This is controlled
by the:
GTK_DEBUG and GDK_DEBUG environment variables
--gtk-debug and --gdk-debug command line options
--gtk-no-debug and --gdk-no-debug command line options
First the environment variables are applied, then the command line
options are applied in the order given on the command line.
Each of these can either be the special value 'all', or a sequence of
':' separated options. (case is ignored). The environment variables
and the --gtk-debug and --gdk-debug options add debugging options and
the --gtk-no-debug and --gdk-no-debug options remove them.
As noted below, some of these are useful in application debugging, but
most are only interested to those debugging the libraries
For instance:
GDK_DEBUG_FLAGS=misc:dnd testgtk --gdk-no-debug dnd --gdk-debug events
runs testgtk with the 'misc' and 'events' debugging options.
GTK_DEBUG
---------
Application relevant options:
'objects' - Trace the creation and destruction of objects, print
out a summary at program termination
Options only interesting to library maintainers:
GDK_DEBUG
---------
Application relevant options:
'events' - Show all events received by GTK
Options only interesting to library maintainers:
'misc' - Miscellaneous information
'dnd' - Information about drag-and-drop
'color-context' - Information about the internal workings of
GdkColorContext
'xim' - Information about X Input Method support
- Owen Taylor <owt1@cornell.edu>
98/02/19

69
docs/developers.txt Normal file
View File

@@ -0,0 +1,69 @@
Things to care about when using/programing for GTK+
===================================================
This file is meant to collect some frequently triggered failures when
programming for/with Gtk, having the spirit of a developers FAQ.
It is also the correct place to list up things that programmers should
care about in general.
In the hope that this text might be usefull to someone,
- Tim Janik <timj@gimp.org>
1998/02/11
Automatic destruction of widgets on removal from parent
-------------------------------------------------------
This is a reference counting issue, you would want to refer
to refcounting.txt on it.
What are all the widget flags about?
------------------------------------
Refer to the file widget_system.txt which covers widget flags and the
resulting invariants in a detailed way.
GdkWindow pointers may be NULL in GdkEvents
-------------------------------------------
The notification nature of the signal mechanism might cause events to
be emitted that have their GdkWindow pointer set to NULL.
This is due to the fact that certain events need to be emitted after the
real GdkWindow of a widget is not any longer pertinent.
It's up to the signal handling function (application) to check for the
window field of the event structure to be != NULL, if it is going to
perform any operations through Gdk calls on it.
Events that a likely to trigger a missing check for the window pointer
currently are (and correspond to the trailing signals):
GDK_SELECTION_CLEAR GtkWidget::selection_clear_event
GDK_FOCUS_CHANGE GtkWidget::focus_in_event
GtkWidget::focus_out_event
Events that are asured to have a valid GdkEvent.any.window field are
GDK_EXPOSE GtkWidget::expose_event
gtk_widget_ref() vs. gtk_object_ref()
-------------------------------------
The widget referencing functions gtk_widget_ref() and gtk_widget_unref()
are currently just wrappers about the corresponding referencing functions
for objects. Still you should use the widget referencing functions if you
are sure the referenced object is of type GTK_WIDGET_TYPE.
Writing Gdk functions
---------------------
When writing Gdk functions that operate on GdkWindow structures in any
maeningfull sense, that is casting to a GdkWindowPrivate structure for
access to fields other then GdkWindow.user_data, the programmer is
recommended to check for the GdkWindowPrivate.destroyed field to be ==
FALSE, especially if the GdkWindowPrivate.xwindow field is used.
Silent abortion of the Gdk function is the correct behaviour if this
condition isn't met.

1086
docs/faq/gtkfaq.sgml Normal file

File diff suppressed because it is too large Load Diff

198
docs/gdk.sgml Normal file
View File

@@ -0,0 +1,198 @@
<!doctype linuxdoc system>
<article>
<!-- Title information -->
<title>The GTK+ Drawing Kit Programming Manual
<author>Shawn T. Amundson, Peter Mattis
<date>July 26, 1998
<abstract>
This document aims at teaching user how to effectively program in
GDK, the GTK+ Drawing Kit, and to serve as a reference guide to
more experienced GTK+ programmers. It is a work in progress.
<!-- Table of contents -->
<toc>
<!-- Begin the document -->
<!-- ***************************************************************** -->
<sect>Introduction
<p>
GDK is designed as a wrapper library that lies on top of Xlib. It
performs many common and desired operations for a programmer instead
of the programmer having to explicitly ask for such functionality from
Xlib directly. For example, GDK provides a common interface to both
regular and shared memory XImage types. By doing so, an application
can nearly transparently use the fastest image type available. GDK
also provides routines for determining the best available color depth
and the best available visual which is not always the default visual
for a screen.
GDK is distributed and developed with GTK+, and is licensed under the
GNU Library General Public Licence (LGPL).
<sect>Getting Started
<sect1>Initialization
<p>
Initialization of GDK is easy. Simply call gdk_init() passing
in the argc and argv parameters.
<tscreen><verb>
int main (int argc, char *argv[])
{
/* Initialize GDK. */
gdk_init (&amp;argc, &amp;argv);
/* Cleanup of GDK is done automatically when the program exits. */
return 0;
}
</verb></tscreen>
Generally, GDK initialization is done by gtk_init() in GTK+. This means
that when using GTK+, you do not need to directly call gdk_init().
<sect1>An Example using GDK with GTK+
<p>
This example demonstrates drawing a line using the foreground
color of the GtkDrawArea widget it is drawn inside. The example
will end when you click inside the window, which is filled by the
GtkDrawingArea widget.
The line is drawn during the expose event so that when the window
drawing is done whenever it is needed.
<tscreen><verb>
#include <gtk/gtk.h>
/* The expose callback does the drawing of the line */
int
expose_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
GdkGC *gc;
printf("expose...\n");
/* The GC is the Graphics Context. Here it is borrowed from the widget */
gc = widget->style->fg_gc[GTK_STATE_NORMAL];
gdk_draw_line (widget->window, /* GDK Window of GtkDrawingArea widget */
gc, /* Graphics Context */
0, /* x1, left */
0, /* y1, top */
200, /* x2, right */
200); /* y2, bottom */
}
/* This quits GTK+ */
void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *darea;
int events;
/* This initializes both GTK+ and GDK */
gtk_init (&amp;argc, &amp;argv);
/* Create a window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
/* Create a drawing area widget. This widget actually is just a
simple widget which provides us an GDK window to draw on and
takes care of all the toolkit integration, like providing the
ability to add it to the window with gtk_contianer_add() */
darea = gtk_drawing_area_new ();
gtk_container_add (GTK_CONTAINER (window), darea);
/* Set the width and height (arguments are in that order) */
gtk_drawing_area_size (GTK_DRAWING_AREA (darea), 200, 200);
/* Drawing in the expose event is important to keep the
draw line always on the GDK window */
gtk_signal_connect (GTK_OBJECT (darea), "expose_event",
GTK_SIGNAL_FUNC (expose_callback), NULL);
/* We get the events, then add in button press. If we did not
do this, we would not be notified of button press events in
the GtkDrawingArea widget */
events = gtk_widget_get_events (darea);
gtk_widget_set_events (darea, events | GDK_BUTTON_PRESS_MASK);
/* If we click on the darea, the application will exit */
gtk_signal_connect_object (GTK_OBJECT (darea), "button_press_event",
GTK_SIGNAL_FUNC (gtk_widget_destroy),
GTK_OBJECT (window));
gtk_widget_show (darea);
gtk_widget_show (window);
/* The GTK+ main idle loop */
gtk_main();
/* Cleanup of GDK is done automatically when the program exits. */
return 0;
}
</verb></tscreen>
<sect>The Graphics Context
<p>
The Graphics Context, or GC, defines how things should be drawn,
including color, font, fill, tile, stipple, clipping mask, line
width, line style, and join style.
<sect1>Color
<p>
Changing color is done by changing the forground or background color
of the GC.
<sect>Drawing Commands
<sect>Event Handling
<sect>Understanding and Using Visuals
<sect>Creating and Using New Windows
<sect>Pixmaps
<sect>Images
<sect>Fonts
<sect>
<sect>About this Document
<sect1>History
<P>
This document was originially written by Peter Mattis and entitled
"The General Drawing Kit". It was meant as a reference guide.
This version of the document has been renamed and is meant as a general
programming guide.
<sect1>Copying
<p>
Copyright (c) 1996 Peter Mattis
<p>
Copyright (c) 1998 Shawn T. Amundson
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Peter Mattis.
</article>

View File

@@ -324,3 +324,11 @@ handle_event ()
@summarycontents
@contents
@bye

455
docs/glib.texi Normal file
View File

@@ -0,0 +1,455 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename glib.info
@settitle GLIB
@setchapternewpage odd
@set edition 1.0
@set update-date 3 Feburary 1998
@set update-month Feburary 1998
@c %**end of header
@ifinfo
This file documents GLIB, A library of useful routines for C programming
Copyright (C) 1998 Gregory A McLean
Permission is granted to make and distributed verbatim copies of this
manual, provided the copyright notice and this permission notice are
preserved on all copies.
@ignore
Permission is granted to process this file throught TeX and print the
results, provided the printed document carries copying permission notice
identical to this one except for the removal of this paragraph (this
paragraph not being relevant to the printed manual).
@end ignore
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Gregory McLean.
@end ifinfo
@titlepage
@title GLIB, Useful routines for C programming
@subtitle Version 1.0
@subtitle @value{update-month}
@author by Gregory McLean
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1998 Gregory McLean
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by Gregory McLean.
@end titlepage
@dircategory Library of useful routines for 'C' programing
@direntry
* GLIB: (glib). useful routines for 'C' programming
@end direntry
@node Top, Copying, (dir), (dir)
@top useful routines for 'C' programming
@ifinfo
This is edition @value{edition} of the GLIB documentation,
@w{@value{update-date}}.
@end ifinfo
@menu
* Copying:: Your rights.
* Overview:: What is GLIB?
* Doubly linked lists:: Doubly linked lists
* Signly linked lists:: Singly linked lists
* List allocators:: List Allocators
* Hash tables:: Hash tables
* Caches:: Cache handling
* Trees:: Tree handling
* Memory:: Memory handling
* Timers:: Timer functions
* Output:: Output handling
* Utilities:: Utilitiy functions
* Errors:: Error handling
* String Chunks:: String Chunks
* Strings:: String handling
* Resizable arrays:: Resizeable arrays
* GScanner:: Flexible lexical scanner
* Miscellany:: Other stuff
* Function Index:: Index of functions
* Concept Index:: Index of concepts
@end menu
@node Copying, Overview, Top, Top
@comment node-name, next, previous, up
@chapter Copying
@node Overview, Doubly linked lists, Copying, Top
@comment node-name, next, previous, up
@chapter What is GLIB
@node Doubly linked lists, Signly linked lists, Overview, Top
@comment node-name, next, previous, up
@chapter Doubly linked lists
@subsection Functions
@deftypefun GList* g_list_alloc (void)
@end deftypefun
@deftypefun void g_list_free (GList *@var{list})
@end deftypefun
@deftypefun void g_list_free_1 (GList *@var{list})
@end deftypefun
@deftypefun GList* g_list_append (GList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GList* g_list_prepend (GList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GList* g_list_insert (GList *@var{list}, gpointer @var{data}, gint @var{position})
@end deftypefun
@deftypefun GList* g_list_insert_sorted (GList *@var{list}, gpointer @var{data}, GCompareFunc @var{func})
@end deftypefun
@deftypefun GList* g_list_concat (GList *@var{list1}, GList *@var{list2})
@end deftypefun
@deftypefun GList* g_list_remove (GList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GList* g_list_remove_link (GList *@var{list}, GList *@var{link})
@end deftypefun
@deftypefun GList* g_list_reverse (GList *@var{list})
@end deftypefun
@deftypefun GList* g_list_nth (GList *@var{list}, gint @var{n})
@end deftypefun
@deftypefun GList* g_list_find (GList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GList* g_list_last (GList *@var{list})
@end deftypefun
@deftypefun GList* g_list_first (GList *@var{list})
@end deftypefun
@deftypefun gint g_list_length (GList *@var{list})
@end deftypefun
@deftypefun void g_list_foreach (GList *@var{list}, GFunc @var{func}, gpointer @var{user_data})
@end deftypefun
@node Signly linked lists, List allocators, Doubly linked lists, Top
@comment node-name, next, previous, up
@chapter Signly linked lists
@subsection Functions
@deftypefun GSList* g_slist_alloc (void)
@end deftypefun
@deftypefun void g_slist_free (GSList *@var{list})
@end deftypefun
@deftypefun void g_slist_free_1 (GSList *@var{list})
@end deftypefun
@deftypefun GSList* g_slist_append (GSList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GSList* g_slist_prepend (GSList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GSList* g_slist_insert (GSList *@var{list}, gpointer @var{data}, gint @var{position})
@end deftypefun
@deftypefun GSList* g_slist_insert_sorted (GSList *@var{list}, gpointer @var{data}, GCompareFunc @var{func})
@end deftypefun
@deftypefun GSList* g_slist_concat (GSList *@var{list1}, GSList *@var{list2})
@end deftypefun
@deftypefun GSList* g_slist_remove (GSList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GSList* g_slist_remove_link (GSList *@var{list}, GSList *@var{link})
@end deftypefun
@deftypefun GSList* g_slist_reverse (GSList *@var{list})
@end deftypefun
@deftypefun GSList* g_slist_nth (GSList *@var{list}, gint @var{n})
@end deftypefun
@deftypefun GSList* g_slist_find (GSList *@var{list}, gpointer @var{data})
@end deftypefun
@deftypefun GSList* g_slist_last (GSList *@var{list})
@end deftypefun
@deftypefun gint g_slist_length (GSList *@var{list})
@end deftypefun
@deftypefun void g_slist_foreach (GSList *@var{list}, GFunc @var{func}, gpointer @var{user_data})
@end deftypefun
@node List allocators, Hash tables, Signly linked lists, Top
@comment node-name, next, previous, up
@chapter List allocators
@subsection Functions
@deftypefun GListAllocator* g_list_allocator_new (void)
@end deftypefun
@deftypefun void g_list_allocator_free (GListAllocator *@var{allocator})
@end deftypefun
@deftypefun GListAllocator* g_slist_set_allocator (GListAllocator *@var{allocator})
@end deftypefun
@deftypefun GListAllocator* g_list_set_allocator (GListAllocator *@var{allocator})
@end deftypefun
@node Hash tables, Caches, List allocators, Top
@comment node-name, next, previous, up
@chapter Hash tables
@subsection Functions
@deftypefun GHashTable* g_hash_table_new (GHashFunc @var{hash_func}, GCompareFunc @var{key_compare_func})
@end deftypefun
@deftypefun void g_hash_table_destroy (GHashTable *@var{hash_table})
@end deftypefun
@deftypefun void g_hash_table_insert (GHashTable *@var{hash_table}, gpointer @var{key}, gpointer @var{value})
@end deftypefun
@deftypefun void g_hash_table_remove (GHashTable *@var{hash_table}, gpointer @var{key})
@end deftypefun
@deftypefun gpointer g_hash_table_lookup (GHashTable *@var{hash_table}, gpointer @var{key})
@end deftypefun
@deftypefun void g_hash_table_freeze (GHashTable *@var{hash_table})
@end deftypefun
@deftypefun void g_hash_table_thaw (GHashTable *@var{hash_table})
@end deftypefun
@deftypefun void g_hash_table_foreach (GHashTable *@var{hash_table}, GHFunc @var{func}, gpointer @var{user_data})
@end deftypefun
@node Caches, Trees, Hash tables, Top
@comment node-name, next, previous, up
@chapter Cache handling
@subsection Functions
@deftypefun GCache* g_cache_new (GCacheNewFunc @var{value_new_func}, GCacheDestroyFunc @var{value_destroy_func}, GCacheDupFunc @var{key_dup_func}, GCacheDestroyFunc @var{key_destroy_func}, GHashFunc @var{hash_key_func}, GHashFunc @var{hash_value_func}, GCompareFunc @var{key_compare_func})
@end deftypefun
@deftypefun void g_cache_destroy (GCache *@var{cache})
@end deftypefun
@deftypefun gpointer g_cache_insert (GCache *@var{cache}, gpointer @var{key})
@end deftypefun
@deftypefun void g_cache_remove (GCache *@var{cache}, gpointer @var{key})
@end deftypefun
@deftypefun void g_cache_key_foreach (GCache *@var{cache}, GHFunc @var{func}, gpointer @var{user_data})
@end deftypefun
@deftypefun void g_cache_value_foreach (GCache *@var{cache}, GHFunc @var{func}, gpointer @var{user_data})
@end deftypefun
@node Trees, Memory, Caches, Top
@comment node-name, next, previous, up
@chapter Tree handling
@subsection Functions
@deftypefun GTree* g_tree_new (GCompareFunc @var{key_compare_func})
@end deftypefun
@deftypefun void g_tree_destroy (GTree *@var{tree})
@end deftypefun
@deftypefun void g_tree_remove (GTree *@var{tree}, gpointer @var{key}, gpointer @var{value})
@end deftypefun
@deftypefun gpointer g_tree_lookup (GTree *@var{tree}, gpointer @var{key})
@end deftypefun
@deftypefun void g_tree_traverse (GTree *@var{tree}, GTraverseFunc @var{traverse_func}, GTraverseType @var{traverse_type}, gpointer @var{data}
@end deftypefun
@deftypefun gpointer g_tree_search (GTree *@var{tree}, GSearchFunc @var{search_func}, gpointer @var{data})
@end deftypefun
@deftypefun gint g_tree_height (GTree *@var{tree})
@end deftypefun
@deftypefun gint g_tree_nnodes (GTree *@var{tree})
@end deftypefun
@node Memory, Timers, Trees, Top
@comment node-name, next, previous, up
@chapter Memory handling
@subsection Functions
@deftypefun gpointer g_malloc (gulong @var{size})
@end deftypefun
@deftypefun gpointer g_malloc0 (gulong @var{size})
@end deftypefun
@deftypefun gpointer g_realloc (gpointer @var{mem}, gulong @var{size})
@end deftypefun
@deftypefun void g_mem_profile (void)
@end deftypefun
@deftypefun void g_mem_check (gpointer @var{mem})
@end deftypefun
@deftypefun GMemChunk* g_mem_chunk_new (gchar *@var{name}, gint @var{atom_size}, gulong @var{area_size}, gint @var{type})
@end deftypefun
@deftypefun void g_mem_chunk_destroy (GMemChunk *@var{mem_chunk})
@end deftypefun
@deftypefun gpointer g_mem_chunk_alloc (GMemChunk *@var{mem_chunk})
@end deftypefun
@deftypefun void g_mem_chunk_free (GMemChunk *@var{mem_chunk}, gpointer @var{mem})
@end deftypefun
@deftypefun void g_mem_chunk_clean (GMemChunk *@var{mem_chunk})
@end deftypefun
@deftypefun void g_mem_chunk_reset (GMemChunk *@var{mem_chunk})
@end deftypefun
@deftypefun void g_mem_chunk_print (GMemChunk *@var{mem_chunk})
@end deftypefun
@deftypefun void g_mem_chunk_info (void)
@end deftypefun
@deftypefun void g_blow_chunks (void)
Not what you might be thinking, @code{g_blow_chunks()} simply compresses all
the chunks. This operation consists of freeing every memory area that should
be freed (but which we haven't gotten around to doing yet).
@end deftypefun
@node Timers, Output, Memory, Top
@comment node-name, next, previous, up
@chapter Timer functions
@subsection Functions
@deftypefun GTimer* g_timer_new (void)
@end deftypefun
@deftypefun void g_timer_destroy (GTimer *@var{timer})
@end deftypefun
@deftypefun void g_timer_start (GTimer *@var{timer})
@end deftypefun
@deftypefun void g_timer_stop (GTimer *@var{timer})
@end deftypefun
@deftypefun void g_timer_reset (GTimer *@var{timer})
@end deftypefun
@deftypefun gdouble g_timer_elapsed (GTimer *@var{timer}, gulong *@var{microseconds})
@end deftypefun
@node Output, Utilities, Timers, Top
@comment node-name, next, previous, up
@chapter Output functions
@subsection Functions
@deftypefun void g_error (gchar *@var{format}, @dots{})
@end deftypefun
@deftypefun void g_warning (gchar *@var{format}, @dots{})
@end deftypefun
@deftypefun void g_message (gchar *@var{format}, @dots{})
@end deftypefun
@deftypefun void g_print (gchar *@var{format}, @dots{})
@end deftypefun
@node Utilities, Errors, Output, Top
@comment node-name, next, previous, up
@chapter Utility functions
@node Errors, String Chunks, Utilities, Top
@comment node-name, next, previous, up
@chapter Error handling
@node String Chunks, Strings, Errors, Top
@comment node-name, next, previous, up
@chapter String chunks
@node Strings, Resizable arrays, String Chunks, Top
@comment node-name, next, previous, up
@chapter String handling
@node Resizable arrays, GScanner, Strings, Top
@comment node-name, next, previous, up
@chapter Resizable arrays
@node GScanner, Miscellany, Resizable arrays, Top
@comment node-name, next, previous, up
@chapter Flexible lexical scanner
@node Miscellany, Function Index, GScanner, Top
@comment node-name, next, previous, up
@chapter Other stuff
@node Function Index, Concept Index, Miscellany, Top
@comment node-name, next, previous, up
@unnumbered Function Index
@printindex fn
@node Concept Index, , Function Index, Top
@comment node-name, next, previous, up
@unnumbered Concept Index
@printindex cp
@summarycontents
@contents
@bye

49
docs/gtk-config.1 Normal file
View File

@@ -0,0 +1,49 @@
.TH GTK+ 1 "11 May 1998" Version 1.0.2
.SH NAME
gtk-config - script to get information about the installed version of GTK+
.SH SYNOPSIS
.B gtk-config
[\-\-prefix\fI[=DIR]\fP] [\-\-exec\-prefix\fI[=DIR]\fP] [\-\-version] [\-\-libs] [\-\-cflags]
.SH DESCRIPTION
.PP
\fIgtk-config\fP is a tool that is used to configure to determine
the compiler and linker flags that should be used to compile
and link programs that use \fIGTK+\fP. It is also used internally
to the .m4 macros for GNU autoconf that are included with \fIGTK+\fP.
.
.SH OPTIONS
.l
\fIgtk-config\fP accepts the following options:
.TP 8
.B \-\-version
Print the currently installed version of \fIGTK+\fP on the standard output.
.TP 8
.B \-\-libs
Print the linker flags that are necessary to link a \fIGTK+\fP program.
.TP 8
.B \-\-cflags
Print the compiler flags that are necessary to compile a \fIGTK+\fP program.
.TP 8
.B \-\-prefix=PREFIX
If specified, use PREFIX instead of the installation prefix that \fIGTK+\fP
was built with when computing the output for the \-\-cflags and
\-\-libs options. This option is also used for the exec prefix
if \-\-exec\-prefix was not specified. This option must be specified
before any \-\-libs or \-\-cflags options.
.TP 8
.B \-\-exec\-prefix=PREFIX
If specified, use PREFIX instead of the installation exec prefix that
\fIGTK+\fP was built with when computing the output for the \-\-cflags
and \-\-libs options. This option must be specified before any
\-\-libs or \-\-cflags options.
.SH SEE ALSO
.BR gimp (1),
.BR gimptool (1)
.SH COPYRIGHT
Copyright \(co 1998 Owen Taylor
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation.

228
docs/gtk-config.txt Normal file
View File

@@ -0,0 +1,228 @@
CONFIGURING PACKAGES TO WORK WITH GTK
-------------------------------------
Compiling a program succesfully against the GTK, GDK, and GLIB
libraries can require a large number of command line options
to your compiler and linker that are hard to guess correctly.
The additional libraries required may, for example, depend on the
manner which GTK was configured
Several tools are included in this package to make process
easier.
First, there is the shell script 'gtk-config' (installed in
$exec_prefix/bin):
Invoking gtk-config
-------------------
gtk-config takes the following flags:
--version
Prints out the version of GTK installed
--cflags
Prints '-I' flags pointing to the installed header files.
--libs
Prints out the linker flags necessary to link a program against GTK
--prefix[=PREFIX]
If PREFIX is specified, overrides the configured value of $prefix.
(And of exec-prefix, unless --exec-prefix is also specified)
Otherwise, prints out the configured value of $prefix
--exec-prefix[=PREFIX]
If PREFIX is specified, overrides the configured value of $exec_prefix.
Otherwise, prints out the configured value of $exec_prefix
Example of using gtk-config
---------------------------
Typically, gtk-config will be used within a configure script,
as described below. It, however, can also be used directly
from the command line to compile a simple program. For example:
cc -o simple `gtk-config --cflags` simple.c `gtk-config --libs`
This command line might expand to (for example):
cc -o simple -I/usr/local/lib/glib/include -I/usr/local/include \
-I/usr/X11R6/include simple.c -L/usr/local/lib -L/usr/X11R6/lib \
-lgtk -lgdk -lglib -lXi -lXext -lX11 -lm
Not only is the form using gtk-config easier to type, it will
work on any system, no matter how GTK was configured.
AM_PATH_GTK
-----------
For packages configured using GNU automake, GTK also provides
a macro to automate the process of running GTK.
AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
This macro:
* Determines the location of GTK using gtk-config, which is either
found in the user's path, or from the environment variable
GTK_CONFIG
* Tests the installed libraries to make sure that there version
is later than MINIMUM-VERSION. (A default version will be used
if not specified)
* If the required version was found, sets the GTK_CFLAGS variable to
the output of `gtk-config --cflags` and the GTK_LIBS variable to
the output of `gtk-config --libs`, and calls AC_SUBST() for these
variables so they can be used in generated makefiles, and then
executes ACTION-IF-FOUND.
* If the required version was not found, sets GTK_CFLAGS and GTK_LIBS
to empty strings, and executes ACTION-IF-NOT-FOUND.
This macro is in file 'gtk.m4' which is installed in $datadir/aclocal.
Note that if automake was installed with a different --prefix than
GTK, you will either have to manually move gtk.m4 to automake's
$datadir/aclocal, or give aclocal the -I option when running it.
Configuring a package that uses AM_PATH_GTK
-------------------------------------------
Simply make sure that gtk-config is in your path, and run
the configure script.
Notes:
* The directory where the GTK libraries are installed needs
to be found by your system's dynamic linker.
This is generally done by
editing /etc/ld.so.conf and running ldconfig
Or by:
setting the environment variable LD_LIBRARY_PATH,
or, as a last resort,
Giving a -R or -rpath flag (depending on your linker) when
running configure, for instance:
LDFLAGS=-R/usr/home/owen/lib ./configure
* You can also specify a gtk-config not in your path by
setting the GTK_CONFIG environment variable to the
name of the executable
* If you move the GTK package from its installed location,
you will need either need to modify gtk-config script
manually to point to the new location or rebuild GTK.
Advanced note:
* configure flags
--with-gtk-prefix=PREFIX
--with-gtk-exec-prefix=PREFIX
are provided to override the prefix and exec-prefix that were stored
in the gtk-config shell script by GTK's configure. You are generally
better off configuring GTK with the right path to begin with.
Example of a package using AM_PATH_GTK
--------------------------------------
The following shows how to build a simple package using automake
and the AM_PATH_GTK macro. The program used here is the testinput.c
You should first read the introductory portions of the automake
Manual, if you are not already familiar with it.
Two files are needed, 'configure.in', which is used to build the
configure script:
==configure.in===
dnl Process this file with autoconf to produce a configure script.
AC_INIT(testinput.c)
AM_INIT_AUTOMAKE(testinput.c, 1.0.0)
AC_PROG_CC
AM_PROG_CC_STDC
AC_PROG_INSTALL
AM_PATH_GTK(0.99.5,
[LIBS="$LIBS $GTK_LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"],
AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?))
AC_OUTPUT(Makefile)
=================
The only command in this which is not standard for automake
is the AM_PATH_GTK() macro.
That command does the following:
If a GTK version greater than 0.99.5 is found, adds $GTK_LIBS to
$LIBS and $GTK_CFLAGS to $CFLAGS. Otherwise, dies with the error
message "Cannot find GTK: Is gtk-config in path?"
And the 'Makefile.am', which will be used to build the Makefile.
== Makefile.am ==
bin_PROGRAMS = testinput
testinput_SOURCES = testinput.c
=================
This Makefile.am, says that we are building a single executable,
from a single sourcefile 'testinput.c'. Since every program
we are building uses GTK we simply added the GTK options
to $LIBS and $CFLAGS, but in other circumstances, we might
want to specify them on a per-program basis: for instance by
adding the lines:
testinput_LDADD = $(GTK_LIBS)
INCLUDES = $(GTK_CFLAGS)
to the Makefile.am.
To try this example out, create a new directory, add the two
files above two it, and copy the testinput.c file from
the gtk/ subdirectory to the new directory. Edit the line:
#include "gtk.h"
in testgtk.c, to read:
#include <gtk/gtk.h>
Now execute the following commands:
automake --add-missing
aclocal
autoconf
You now have a package that can be built in the normal fashion
./configure
make
make install
Notes:
* If you are converting a package that used a pre-1.0 version of
GTK, you should remove the autoconf tests for X. The results
of these tests are included in gtk-config and will be added
to GTK_LIBS and GTK_CFLAGS by the AM_PATH_GTK macro.
Owen Taylor
14 Mar 1997

File diff suppressed because it is too large Load Diff

14129
docs/gtk_tut.sgml Normal file

File diff suppressed because it is too large Load Diff

8600
docs/gtk_tut_fr.sgml Normal file

File diff suppressed because it is too large Load Diff

10090
docs/gtk_tut_it.sgml Normal file

File diff suppressed because it is too large Load Diff

BIN
docs/gtk_tut_packbox1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
docs/gtk_tut_packbox2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
docs/gtk_tut_table.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

11
docs/gtkdocs_fix Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/perl
# Stupid script to fix look of html files created with sgml2html...
foreach (@ARGV) {
print "Fixing... $_\n";
system("mv $_ $_.orig");
system("sed -e 's/<BODY>/<BODY BGCOLOR=\"#FFFFFF\">/g' -e 's/<HR>/<HR NOSHADE>/g' $_.orig > $_");
unlink("$_.orig");
}

1086
docs/gtkfaq.sgml Normal file

File diff suppressed because it is too large Load Diff

242
docs/man/gtk_button.pod Normal file
View File

@@ -0,0 +1,242 @@
=head1 NAME
gtk_button - GTK+ push button widget
=head1 SYNOPSIS
#include <gtk/gtkbutton.h>
GtkType gtk_button_get_type (void);
GtkWidget* gtk_button_new (void);
GtkWidget* gtk_button_new_with_label (const gchar *label);
void gtk_button_pressed (GtkButton *button);
void gtk_button_released (GtkButton *button);
void gtk_button_clicked (GtkButton *button);
void gtk_button_enter (GtkButton *button);
void gtk_button_leave (GtkButton *button);
void gtk_button_set_relief (GtkButton *button,
GtkReliefStyle style);
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
=head1 DESCRIPTION
This widget is a standard push button widget. Push button widgets
are generally used for allowing the user to click on them to initiate
a command.
This widget is a container widget which contains one child.
=head1 OBJECT HIERARCHY
gtk_object
gtk_widget
gtk_container
gtk_button
=head1 SIGNAL PROTOTYPES
"clicked" void user_function (GtkWidget *widget, gpointer data);
"pressed" void user_function (GtkWidget *widget, gpointer data);
"released" void user_function (GtkWidget *widget, gpointer data);
"enter" void user_function (GtkWidget *widget, gpointer data);
"leave" void user_function (GtkWidget *widget, gpointer data);
=head1 USAGE
=head2 Creation
The most common way to create a button is with a label in it, which
contains text for the user to read. The child of the button will then
be a L<gtk_label(3)> widget with the text you passwd in. You can
do this in one command:
GtkWidget *button;
button = gtk_button_new_with_label ("This is a button");
To create a gtk_button widget which does not already have a child,
use gtk_button_new():
GtkWidget *button;
button = gtk_button_new ();
After you have created a button you can then add a widget to the
button (such as a label or pixmap) using gtk_container_add(). See
L<gtk_container(3)> for more information on adding widgets to
containers.
=head2 Creating a pixmap in a button in a window
After we have an empty gtk_button, such as above, and we have a gtk_pixmap,
we can simply add the gtk_pixmap to the gtk_button with gtk_container_add().
The following code will open the file "gimp.xpm" and place it in a
button.
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *pixmap;
GtkStyle *style;
GdkPixmap *gdkpixmap;
GdkBitmap *mask;
char *filename = "gimp.xpm";
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
button = gtk_button_new ();
gtk_container_add (GTK_CONTAINER (window), button);
/* The button is realized now, which creates button->window
used below to create the pixmap. */
gtk_widget_realize (button);
style = gtk_widget_get_style (button);
gdkpixmap = gdk_pixmap_create_from_xpm (button->window, &mask,
&style->bg[GTK_STATE_NORMAL],
filename);
pixmap = gtk_pixmap_new (gdkpixmap, mask);
gtk_container_add (GTK_CONTAINER (button), pixmap);
gtk_widget_show (pixmap);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main ();
return 0;
}
=head2 Different reliefs
Reliefs affect how the shadowing of the button is drawn. The different
types of relief styles are:
GTK_RELIEF_NORMAL
GTK_RELIEF_HALF
GTK_RELIEF_NONE
When set to a normal relief, the widget looks and acts like a normal
button. When half or none relief is used, shadowing is only drawn when the
mouse cursor is over the widget.
To set the relief, use gtk_button_set_relief(), like:
gtk_button_set_relief (button, GTK_RELIEF_HALF);
To get the current relief of a button, use gtk_button_get_relief():
GtkReliefStyle relief;
relief = gtk_button_get_relief (GTK_BUTTON (button));
=head2 Executing a command when the button is pressed
To execute a function when a button is pressed, use
gtk_signal_connect() to connect to the "clicked" signal.
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (user_function),
NULL);
user_function is a user defined function, like the following:
void user_function (GtkWidget *button, gpointer data)
{
printf("clicked\n");
}
=head1 FUNCTIONS
GtkType gtk_button_get_type (void);
This function returns the GtkType which is assigned to the
object class for gtk_button.
GtkWidget* gtk_button_new (void);
This functions returns a new button widget which can then be
used as a container for another widget.
GtkWidget* gtk_button_new_with_label (const gchar *label);
This function returns a new button widget with a label widget
as a child. The label widget will have the text passed into
the commant.
void gtk_button_pressed (GtkButton *button);
This function sends a "pressed" signal to the button.
void gtk_button_released (GtkButton *button);
This function sends a "released" signal to the button.
void gtk_button_clicked (GtkButton *button);
This function sends a "clicked" signal to the button.
void gtk_button_enter (GtkButton *button);
This function sends a "enter" signal to the button.
void gtk_button_leave (GtkButton *button);
This function sends a "leave" signal to the button.
void gtk_button_set_relief (GtkButton *button, GtkReliefStyle style);
This function is sets the GtkReliefStyle of the button. The
relief style is one of: GTK_RELIEF_NORMAL, GTK_RELIEF_HALF,
or GTK_RELIEF_NONE. The relief determines when the shadow of
the button is drawn.
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
This function returns the current relief of the button.
=head1 SIGNALS
"clicked"
void user_function (GtkWidget *widget, gpointer data);
Gets emitted when the button is clicked. A click is
a press and release of the button when the cursor is
inside the button on release.
"pressed"
void user_function (GtkWidget *widget, gpointer data);
Gets emitted when the left mouse button is pressed.
"released"
void user_function (GtkWidget *widget, gpointer data);
Gets emitted when the left mouse button is released and
the widget was previously pressed.
"enter"
void user_function (GtkWidget *widget, gpointer data);
Emitted when the mouse cursor enters the button.
"leave"
void user_function (GtkWidget *widget, gpointer data);
Emitted when the mouse cursor leaves the button.
=head1 AUTHORS
The author of this man page is Shawn T. Amundson E<lt>amundson@gtk.orgE<gt>.
For the authors of GTK+, see the AUTHORS file in the GTK+ distribution.

315
docs/refcounting.txt Normal file
View File

@@ -0,0 +1,315 @@
The Reference Counting Scheme of GDK an GTK+
============================================
Each data structure that provides reference counting offers a bunch of
functions that follow these conventions:
*_new: Create a new structure with a reference count of 1.
*_ref: Increase ref count by one.
*_unref: Decrease ref count by one. If the count drops to zero,
run appropriate finalization code and free the memory.
For data structures with a _destroy function, it will be
invoked at this point, if the data structure is not
already in a destroyed state.
GtkObjects also provide the following functions:
*_destroy: Render an object `unusable', but as long as there are
references to it, it's allocated memory will not be freed.
*_sink: Clear a GtkObjects `floating' state and decrement the
reference count by 1.
GdkWindow
---------
A GdkWindow has to be explicitely destroyed with gdk_window_destroy.
This will send out a request to destroy this window and all its
children, and will decrement the ref_count of the GdkWindow by one.
Thus, it releases the inital reference created by gdk_window_new.
All GdkWindows are kept in a hash table to translate from their XId to
the actual structure and the pointer in the hash table is reflected in
the reference count. When a DestroyNotify event is received for a
particular GdkWindow, it is removed from the hash table and the
ref_count is updated accordingly.
You can call gdk_window_destroy more than once on a particular
GdkWindow, it will only be destroyed when it hasn't been yet. The
ref_count is *always* decremented, tho. Be careful.
Remark: When writing NO_WINDOW widgets, care should be taken about
proper referencing/unreferencing of the parent's GdkWindow
that is used by the widget.
GdkPixmap
---------
There is no gdk_pixmap_destroy function. The Pixmap is destroyed when
the last reference to it vanishes.
GdkPixmaps are kept in the same hash table as GdkWindows but the
pointer in the hash table is *not* reflected in the ref_count.
This works only when Pixmaps never get XEvents. I'm not sure if this
is the case.
GdkBitmap
---------
A GdkBitmap is only another name for a special use of GdkPixmap.
GdkVisual
---------
There are no *_new or *_destroy functions and the *_ref and *_unref
functions are noops. GdkVisuals are static structures and thus do not
need reference counting. The ref counting functions are only there
for extra defensive programming.
GdkColormap
-----------
Nothing special. There is no gdk_colormap_destroy function.
GdkFont / GdkFontSet
--------------------
GdkFont and GdkFontSet are equivalent as far as ref counting is
concerned. Use gdk_font_ref and gdk_font_unref for both.
There is no gdk_font_free or gdk_fontset_free function.
GtkAcceleratorTable
-------------------
There is no gtk_accelerator_table_destroy function.
GtkTooltips
-----------
There is no gtk_tooltips_destroy function.
GtkStyle
--------
There is no gtk_style_destroy function.
GtkObject
---------
GtkObjects follow the usual ref_counting strategy, but with a twist.
They are created with a ref_count of 1. GtkObjects are able to
run finalization code when the ref_count drops to zero but you cannot
register arbitrary signal handlers to run at finalization time.
There is also the old gtk_object_destroy function and the "destroy"
signal but they are somewhat independent from finalization. Just as
stated at the top of this text, gtk_object_destroy merely renders an
object unusable. When the object is a container widget for example,
it unrealizes that widget, removes all children and disconnects all
signal handlers. The finalization code is different, it would for
example free associated memory for text strings and release the
attached style.
This is the biggest change. Every widget must be revised to have a
proper "destroy" function, etc. Such a destroy function will only
be called once and is expected to leave the widget in a minimal but
consistent state. Widgets that have been "destroyed" but not yet
finalized are flagged with GTK_DESTROY. The "finalization" function
is new and should perform last-minute cleanup actions, in contrast
to the destroy function it will not be emitted as signal though.
It can assume that the "destroy" function has been called as the
last function on this widget.
Essentially, the old "destroy" function has been split into a
"finalize" plus a "destroy" function.
It is not possible to create GtkObjects with a ref_count of 0
because the first ref/unref pair will destroy it unintentionally.
To be mostly backward compatible with existing practice, a GtkObject
leads a more complicated life than the other reference counted structures.
When a GtkObject is created, it starts out in a special state called
"floating" (this is the twist). This means that it is alive and has a
reference to it, but the `owner' of this reference is not known.
There are certain `potential owners' that will adopt a floating
GtkObject. For GtkWidgets the most common adopters are the parent
widget.
When you want to adopt a possibly floating GtkObject, you call
gtk_object_sink on it. This clears the floating state of the
GtkObject and decrements the ref_count by one, if it has been floating
previously. Once the floating state has been cleared, it will never
be set again.
All widgets that are part of the display are linked into a
parent/child tree. The link from the parent to a child is reflected
in the ref_count of the child, but the link from the child to the
parent is not reflected in the ref_count of the parent.
Like a GtkObject, a GtkWidget is created with a ref_count of 1 and
initially flagged as `floating'. As soon as it is added as a child to
a parent, the `floating' flag is cleared and never will be set again.
Not even when it is later unparented. The act of clearing the
`floating' flag also decrements the ref_count of the widget by one.
When the widget is unparented, its underlying GdkWindow is destroyed
(when it has one), it loses its reference from the parent and
naturally the ref_count is decremented.
It is considered a bug if a widget still has a GdkWindow when it is
being freed.
Toplevel widgets, which don't have a `natural' parent, are adopted by
special registering functions. Because the of the reference count that
is set by the registering functions, toplevel widgets will have to be
explicitly destroyed, with the exception of GtkMenus. GtkMenus are a
special case of toplevel widgets in that they will be `attached' to and
`detached' from other widgets. The act of attaching a GtkMenu to a
widget will be reflected in its reference count. The act of detaching
a GtkMenu will revert that. Therefore GtkMenus naturally get destroyed
and finalized once they are detached from their reference holder.
So, the typical career of a GtkWindow a GtMenu attached to a
GtkOptionMenu looks like this:
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/* window is created with ref_count == 1. It is not flagged as
* `floating' because it has already been registered as a toplevel
* widget.
*/
option_menu = gtk_option_menu_new ();
/* option_menu->ref_count == 1 and it is flagged as `floating'.
*/
gtk_container_add (window, option_menu);
/* option_menu->ref_count still == 1, but it is no longer `floating'.
*/
menu = gtk_menu_new ();
/* menu->ref_count == 1 and it is flagged as `floating'.
*/
menu_item = gtk_menu_item_new_with_label ("Choose Me");
/* menu_item->ref_count == 1 and it is flagged as `floating'.
*/
gtk_menu_append (GTK_MENU (menu), menu_item);
/* menu_item->ref_count still == 1, but it is no longer `floating'.
*/
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
/* menu->ref_count still == 1, but it is no longer `floating'.
*/
gtk_widget_show (menu_item);
gtk_widget_show (option_menu);
gtk_widget_show (window);
/* The widgets get their GdkWindows, nothing significant happens to
* the ref_counts.
*/
Then, when the user wants to get rid of the window:
gtk_widget_destroy (window);
/* The GdkWindow of `window' and all its child GdkWindows are
* destroyed.
*
* window is unregistered from the loplevel list and its ref_count
* drops to zero. The destroy code of `window' destroyes `option_menu'.
*
* The destroy code of `option_menu' causes the `menu' to be detached
* from it and its reference count drops to zero.
*
* The destroy code of `menu' destroyes `menu_item'.
*
* The destruction of `menu_item' removes it from its parent, the
* menu_item->ref_count drops to zero and `menu_item' is finalized (freed).
*
* Now `menu', `option_menu' and `window' will be destroyed and finalized,
* in this order, since the reference count of each is zero.
*/
Taking care of proper referencing
---------------------------------
There are some cases where referencing of widgets from outside the toolkit
(on the application side is needed).
Once the application performes an operation on a widget that will cause
its reference count to drop, if it wants to take further actions on the
widget, it needs to hold a reference to it.
Example code sequences that require reference wraps:
/* gtk_container_remove() will unparent the child and therefore
* cause it's reference count to be decremented by one.
*/
gtk_widget_ref (widget);
gtk_container_remove (container, widget);
/* without the reference count, the widget would have been destroyed here.
*/
gtk_container_add (container, widget);
gtk_widget_unref (widget);
/* all items in item_list need to be referenced
* before gtk_list_remove_items() is invoked.
* this is somewhat tricky as gtk_list_append_items/gtk_list_prepend_items/
* gtk_list_insert_items will take over the lists nodes.
* we therefore have an extra GSList `*slist' for later unreferencing.
*/
slist = NULL;
for (list = item_list; list; list = list->next)
{
gtk_widget_ref (GTK_WIDGET (list->data));
slist = g_slist_prepend (slist, list->data);
}
gtk_list_remove_items (list, item_list);
gtk_list_append_items (other_list, item_list);
/* gtk_list_prepend_items (other_list, item_list); */
/* gtk_list_insert_items (other_list, item_list, 3); */
while (slist)
{
GSList *tmp;
tmp = slist;
slist = slist->next;
gtk_widget_unref (GTK_WIDGET (tmp->data));
g_slist_free_1 (tmp);
}
/* Alternatively to the removal above you could just use
* gtk_list_remove_items_no_unref() which will add the additional
* reference count to the widget.
*/
gtk_list_remove_items_no_unref (list, item_list);
gtk_list_prepend_items (other_list, item_list);
Now a (hopefully) complete list of functions that require
wrappers similar to the examples above:
void gtk_container_remove (GtkContainer *container,
GtkWidget *widget);
void gtk_list_remove_items (GtkList *list,
GList *items);
void gtk_tree_remove_items (GtkTree *tree,
GList *items);
void gtk_tree_item_remove_subtree (GtkTreeItem *tree_item);
void gtk_menu_item_remove_submenu (GtkMenuItem *menu_item);
void gtk_option_menu_remove_menu (GtkOptionMenu *option_menu);
Initial proposal:
- Marius Vollmer <mvo@zagadka.ping.de>
Some modifications/additions, "Taking care of proper referencing" and
reference counting solution for GtkMenus:
- Tim Janik <timj@gimp.org>

108
docs/styles.txt Normal file
View File

@@ -0,0 +1,108 @@
HANDLING WIDGET STYLES
======================
A widget gets created with a default style.
The global default style can be affected by gtk_widget_set_default_style()
and can be queried by gtk_widget_get_default_style().
The initial style that is assigned to a widget as default style upon
creation can be affected by wrapping the widget's creation as follows:
gtk_widget_push_style (my_style);
widget = gtk_type_new (gtk_button_get_type ());
gtk_widget_pop_style ();
There are certain functions to affect widget styles after a widget's
creation:
gtk_widget_set_style ()
Save the default style and set a user style.
This will override a previously set user style or
previously set rc styles.
gtk_widget_set_rc_style ()
Set GTK_RC_STYLE to indicate that an rc lookup has been performed.
If there is an rc style for a widget, set it and save the default style,
restore the default style otherwise.
This will override a previously set user style or rc style.
gtk_widget_reset_rc_styles ()
Descends through a widget heirarchy and sets the rc style
on all widgets that don't have a user style set.
gtk_widget_restore_default_style ()
Reset the widget's style to the default style, this is only usefull if
the widgets default style had been saved by previous calls to
gtk_widget_set_style() or gtk_widget_set_rc_style().
gtk_widget_ensure_style ()
Ensure that the widget either has a user style set, or an rc lookup
has been performed.
gtk_rc_get_style ()
Return an rc style for a widget if there is one.
gtk_widget_set_name ()
Change widget name, and perform a new rc lookup if no user style
is set.
gtk_widget_realize ()
Besides realizing the widget this function will:
- perform an rc lookup if neccessary,
- attach a widget's style.
gtk_widget_get_style ()
Return a widgets style, this function will perform an rc lookup
if neccessary.
gtk_widget_set_parent ()
This function will perform rc lookups recursively for all widgets
that do not have a user style set.
gtk_style_copy ()
This function can be used to copy a widget's style.
The style can subsequntly be changed (e.g., by modifications to the
red/green/blue values of a certain color) and then be applied to the
widget via gtk_widget_set_style().
GtkWidget::style_set
This signal will be emitted for a widget once its style changes with
an additional argument previous_style wich will hold the widget->style
avlue from a previous emission.
The initial emission of this signal is guaranteed to happen prior
to any GtkWidget::size_request emission, and will have the previous_style
argument set to NULL.
The GtkWidgetClass implements a default handler for this signal that
will set the widget's window's background of widgets that provide their
own windows according to the new style.
Derived widgets need to overide this default handler, if:
- their size requisition depends on the current style.
(e.g., on the style's fonts)
- they set the background of widget->window to something other than.
style->bg. (e.g., GtkListItem)
- the widget provides windows other than widget->window.
- the widget has any other stored dependencies on the style.
Flag indications:
!GTK_RC_STYLE && !GTK_USER_STYLE:
The widget has it's default style set, no rc lookup has been
performed, the widget has not been size requested yet and is
therefore not yet realized.
GTK_USER_STYLE:
GTK_RC_STYLE is not set.
The widget has a user style assigned, and it's default style has been
saved.
GTK_RC_STYLE:
GTK_USER_STYLE is not set.
If the widget has a saved default style, it has been assigned an
rc style. If the widget does not have a saved default style, it still
has its default style but an rc lookup has already been performed.
- Tim Janik <timj@gimp.org>
1998/02/27

487
docs/text_widget.txt Normal file
View File

@@ -0,0 +1,487 @@
Date: Sun, 14 Sep 1997 20:17:06 -0700 (PDT)
From: Josh MacDonald <jmacd@CS.Berkeley.EDU>
To: gnome@athena.nuclecu.unam.mx, gtk-list@redhat.com
Subject: [gtk-list] gtktext widget internal documentation
Pete convinced me to just write up the text widget and let someone else
finish it. I'm pretty busy and have other commitments now. Sorry. I think
I'm not the most qualified for some of the remaining work anyway, because I
don't really know Gtk and it's event model very well. Most of the work so
far was possible without knowing Gtk all that well, it was simply a data
structure exercise (though after reading this you might say it was a fairly
complicated data structure exercise). I'm happy to answer questions.
-josh
High level description:
There are several layers of data structure to the widget. They are
seperated from each other as much as possible. The first is a gapped
text segment similar to the data structure Emacs uses for representing
text. Then there is a property list, which stores text properties for
various ranges of text. There is no direct relation between the text
property list and the gapped text segment. Finally there is a drawn
line parameter cache to speed calculations when drawing and redrawing
lines on screen. In addition to these data structures, there are
structures to help iterate over text in the buffer.
The gapped text segment is quite simple. It's parameters are (all
parameters I mention here are in the structure GtkText):
guchar* text;
guint text_len;
guint gap_position;
guint gap_size;
guint text_end;
TEXT is the buffer, TEXT_LEN is its allocated length. TEXT_END is the
length of the text, including the gap. GAP_POSITION is the start of
the gap, and GAP_SIZE is the gap's length. Therefore, TEXT_END -
GAP_SIZE is the length of the text in the buffer. The macro
TEXT_LENGTH returns this value. To get the value of a character in
the buffer, use the macro TEXT_INDEX(TEXT,INDEX). This macro tests
whether the index is less than the GAP_POSITION and returns
TEXT[INDEX] or returns TEXT[GAP_SIZE+INDEX]. The function
MOVE_GAP_TO_POINT positions the gap to a particular index. The
function MAKE_FORWARD_SPACE lengthens the gap to provide room for a
certain number of characters.
The property list is a doubly linked list (GList) of text property
data for each contiguous set of characters with similar properties.
The data field of the GList points to a TextProperty structure, which
contains:
TextFont* font;
GdkColor* back_color;
GdkColor* fore_color;
guint length;
Currently, only font and color data are contained in the property
list, but it can be extended by modifying the INSERT_TEXT_PROPERTY,
TEXT_PROPERTIES_EQUAL, and a few other procedures. The text property
structure does not contain an absolute offset, only a length. As a
result, inserting a character into the buffer simply requires moving
the gap to the correct position, making room in the buffer, and either
inserting a new property or extending the old one. This logic is done
by INSERT_TEXT_PROPERTY. A similar procedure exists to delete from
the text property list, DELETE_TEXT_PROPERTY. Since the property
structure doesn't contain an offset, insertion into the list is an
O(1) operation. All such operations act on the insertion point, which
is the POINT field of the GtkText structure.
The GtkPropertyMark structure is used for keeping track of the mapping
between absolute buffer offsets and positions in the property list.
These will be referred to as property marks. Generally, there are
four property marks the system keeps track of. Two are trivial, the
beginning and the end of the buffer are easy to find. The other two
are the insertion point (POINT) and the cursor point (CURSOR_MARK).
All operations on the text buffer are done using a property mark as a
sort of cursor to keep track of the alignment of the property list and
the absolute buffer offset. The GtkPropertyMark structure contains:
GList* property;
guint offset;
guint index;
PROPERTY is a pointer at the current property list element. INDEX is
the absolute buffer index, and OFFSET is the offset of INDEX from the
beginning of PROPERTY. It is essential to keep property marks valid,
or else you will have the wrong text properties at each property mark
transition. An important point is that all property marks are invalid
after a buffer modification unless care is taken to keep them
accurate. That is the difficulty of the insert and delete operations,
because as the next section describes, line data is cached and by
neccesity contains text property marks. The functions for operating
and computing property marks are:
void advance_mark (GtkPropertyMark* mark);
void decrement_mark (GtkPropertyMark* mark);
void advance_mark_n (GtkPropertyMark* mark, gint n);
void decrement_mark_n (GtkPropertyMark* mark, gint n);
void move_mark_n (GtkPropertyMark* mark, gint n);
GtkPropertyMark find_mark (GtkText* text, guint mark_position);
GtkPropertyMark find_mark_near (GtkText* text, guint mark_position,
const GtkPropertyMark* near);
ADVANCE_MARK and DECREMENT_MARK modify the mark by plus or minus one
buffer index. ADVANCE_MARK_N and DECREMENT_MARK_N modify the mark by
plus or minus N indices. MOVE_MARK_N accepts a positive or negative
argument. FIND_MARK returns a mark at MARK_POSITION using a linear
search from the nearest known property mark (the beginning, the end,
the point, etc). FIND_MARK_NEAR also does a linear search, but
searches from the NEAR argument. A number of macros exist at the top
of the file for doing things like getting the current text property,
or some component of the current property. See the MARK_* macros.
Next there is a LineParams structure which contains all the
information neccesary to draw one line of text on screen. When I say
"line" here, I do not mean one line of text seperated by newlines,
rather I mean one row of text on screen. It is a matter of policy how
visible lines are chosen and there are currently two policies,
line-wrap and no-line-wrap. I suspect it would not be difficult to
implement new policies for doing such things as justification. The
LineParams structure includes the following fields:
guint font_ascent;
guint font_descent;
guint pixel_width;
guint displayable_chars;
guint wraps : 1;
PrevTabCont tab_cont;
PrevTabCont tab_cont_next;
GtkPropertyMark start;
GtkPropertyMark end;
FONT_ASCENT and FONT_DESCENT are the maximum ascent and descent of any
character in the line. PIXEL_WIDTH is the number of pixels wide the
drawn region is, though I don't think it's actually being used
currently. You may wish to remove this field, eventually, though I
suspect it will come in handy implementing horizontal scrolling.
DISPLAYABLE_CHARS is the number of characters in the line actually
drawn. This may be less than the number of characters in the line
when line wrapping is off (see below). The bitflag WRAPS tells
whether the next line is a continuation of this line. START and END
are the marks at the beginning and end of the line. Note that END is
the actual last character, not one past it, so the smallest line
(containing, for example, one newline) has START == END. TAB_CONT and
TAB_CONT_NEXT are for computation of tab positions. I will discuss
them later.
A point about the end of the buffer. You may be tempted to consider
working with the buffer as an array of length TEXT_LENGTH(TEXT), but
you have to be careful that the editor allows you to position your
cursor at the last index of the buffer, one past the last character.
The macro LAST_INDEX(TEXT, MARK) returns true if MARK is positioned at
this index. If you see or add a special case in the code for this
end-of-buffer case, make sure to use LAST_INDEX if you can. Very
often, the last index is treated as a newline.
[ One way the last index is special is that, although it is always
part of some property, it will never be part of a property of
length 1 unless there are no other characters in the text. That
is, its properties are always that of the preceding character,
if any.
There is a fair bit of special case code to mantain this condition -
which is needed so that user has control over the properties of
characters inserted at the last position. OWT 2/9/98 ]
Tab stops are variable width. A list of tab stops is contained in the
GtkText structure:
GList *tab_stops;
gint default_tab_width;
The elements of tab_stops are integers casted to gpointer. This is a
little bogus, but works. For example:
text->default_tab_width = 4;
text->tab_stops = NULL;
text->tab_stops = g_list_prepend (text->tab_stops, (void*)8);
text->tab_stops = g_list_prepend (text->tab_stops, (void*)8);
is how these fields are initialized, currently. This means that the
first two tabs occur at 8 and 16, and every 4 characters thereafter.
Tab stops are used in the computation of line geometry (to fill in a
LineParams structure), and the width of the space character in the
current font is used. The PrevTabCont structure, of which two are
stored per line, is used to compute the geometry of lines which may
have wrapped and carried part of a tab with them:
guint pixel_offset;
TabStopMark tab_start;
PIXEL_OFFSET is the number of pixels at which the line should start,
and tab_start is a tab stop mark, which is similar to a property mark,
only it keeps track of the mapping between line position (column) and
the next tab stop. A TabStopMark contains:
GList* tab_stops;
gint to_next_tab;
TAB_STOPS is a pointer into the TAB_STOPS field of the GtkText
structure. TO_NEXT_TAB is the number of characters before the next
tab. The functions ADVANCE_TAB_MARK and ADVANCE_TAB_MARK_N advance
these marks. The LineParams structure contains two PrevTabCont
structures, which each contain a tab stop. The first (TAB_CONT) is
for computing the beginning pixel offset, as mentioned above. The
second (TAB_CONT_NEXT) is used to initialize the TAB_CONT field of the
next line if it wraps.
Since computing the parameters of a line are fairly complicated, I
have one interface that should be all you ever need to figure out
something about a line. The function FIND_LINE_PARAMS computes the
parameters of a single line. The function LINE_PARAMS_ITERATE is used
for computing the properties of some number (> 0) of sequential lines.
void
line_params_iterate (GtkText* text,
const GtkPropertyMark* mark0,
const PrevTabCont* tab_mark0,
gboolean alloc,
gpointer data,
LineIteratorFunction iter);
where LineIteratorFunction is:
typedef gint (*LineIteratorFunction) (GtkText* text,
LineParams* lp,
gpointer data);
The arguments are a text widget (TEXT), the property mark at the
beginning of the first line (MARK0), the tab stop mark at the
beginning of that line (TAB_MARK0), whether to heap-allocate the
LineParams structure (ALLOC), some client data (DATA), and a function
to call with the parameters of each line. TAB_MARK0 may be NULL, but
if so MARK0 MUST BE A REAL LINE START (not a continued line start; it
is preceded by a newline). If TAB_MARK0 is not NULL, MARK0 may be any
line start (continued or not). See the code for examples. The
function ITER is called with each LineParams computed. If ALLOC was
true, LINE_PARAMS_ITERATE heap-allocates the LineParams and does not
free them. Otherwise, no storage is permanently allocated. ITER
should return TRUE when it wishes to continue no longer.
There are currently two uses of LINE_PARAMS_ITERATE:
* Compute the total buffer height for setting the parameters of the
scroll bars. This is done in SET_VERTICAL_SCROLL each time the
window is resized. When horizontal scrolling is added, depending on
the policy chosen, the max line width can be computed here as well.
* Computing geometry of some pixel height worth of lines. This is
done in FETCH_LINES, FETCH_LINES_BACKWARD, FETCH_LINES_FORWARD, etc.
The GtkText structure contains a cache of the LineParams data for all
visible lines:
GList *current_line;
GList *line_start_cache;
guint first_line_start_index;
guint first_cut_pixels;
guint first_onscreen_hor_pixel;
guint first_onscreen_ver_pixel;
LINE_START_CACHE is a doubly linked list of LineParams. CURRENT_LINE
is a transient piece of data which is set in varoius places such as
the mouse click code. Generally, it is the line on which the cursor
property mark CURSOR_MARK is on. LINE_START_CACHE points to the first
visible line and may contain PREV pointers if the cached data of
offscreen lines is kept around. I haven't come up with a policy. The
cache can keep more lines than are visible if desired, but the result
is that inserts and deletes will then become slower as the entire
cache has to be "corrected". Right now it doesn't delete from the
cache (it should). As a result, scrolling through the whole buffer
once will fill the cache with an entry for each line, and subsequent
modifications will be slower than they should
be. FIRST_LINE_START_INDEX is the index of the *REAL* line start of
the first line. That is, if the first visible line is a continued
line, this is the index of the real line start (preceded by a
newline). FIRST_CUT_PIXELS is the number of pixels which are not
drawn on the first visible line. If FIRST_CUT_PIXELS is zero, the
whole line is visible. FIRST_ONSCREEN_HOR_PIXEL is not used.
FIRST_ONSCREEN_VER_PIXEL is the absolute pixel which starts the
visible region. This is used for setting the vertical scroll bar.
Other miscellaneous things in the GtkText structure:
Gtk specific things:
GtkWidget widget;
GdkWindow *text_area;
GtkAdjustment *hadj;
GtkAdjustment *vadj;
GdkGC *gc;
GdkPixmap* line_wrap_bitmap;
GdkPixmap* line_arrow_bitmap;
These are pretty self explanatory, especially if you know Gtk.
LINE_WRAP_BITMAP and LINE_ARROW_BITMAP are two bitmaps used to
indicate that a line wraps and is continued offscreen, respectively.
Some flags:
guint has_cursor : 1;
guint is_editable : 1;
guint line_wrap : 1;
guint freeze : 1;
guint has_selection : 1;
guint own_selection : 1;
HAS_CURSOR is true iff the cursor is visible. IS_EDITABLE is true iff
the user is allowed to modify the buffer. If IS_EDITABLE is false,
HAS_CURSOR is guaranteed to be false. If IS_EDITABLE is true,
HAS_CURSOR starts out false and is set to true the first time the user
clicks in the window. LINE_WRAP is where the line-wrap policy is
set. True means wrap lines, false means continue lines offscreen,
horizontally.
The text properties list:
GList *text_properties;
GList *text_properties_end;
A scratch area used for constructing a contiguous piece of the buffer
which may otherwise span the gap. It is not strictly neccesary
but simplifies the drawing code because it does not need to deal with
the gap.
guchar* scratch_buffer;
guint scratch_buffer_len;
The last vertical scrollbar position. Currently this looks the same
as FIRST_ONSCREEN_VER_PIXEL. I can't remember why I have two values.
Perhaps someone should clean this up.
gint last_ver_value;
The cursor:
gint cursor_pos_x;
gint cursor_pos_y;
GtkPropertyMark cursor_mark;
gchar cursor_char;
gchar cursor_char_offset;
gint cursor_virtual_x;
gint cursor_drawn_level;
CURSOR_POS_X and CURSOR_POS_Y are the screen coordinates of the
cursor. CURSOR_MARK is the buffer position. CURSOR_CHAR is
TEXT_INDEX (TEXT, CURSOR_MARK.INDEX) if a drawable character, or 0 if
it is whitespace, which is treated specially. CURSOR_CHAR_OFFSET is
the pixel offset above the base of the line at which it should be
drawn. Note that the base of the line is not the "baseline" in the
traditional font metric sense. A line (LineParams) is
FONT_ASCENT+FONT_DESCENT high (use the macro LINE_HEIGHT). The
"baseline" is FONT_DESCENT below the base of the line. I think this
requires a drawing.
0 AAAAAAA
1 AAAAAAA
2 AAAAAAAAA
3 AAAAAAAAA
4 AAAAA AAAAA
5 AAAAA AAAAA
6 AAAAA AAAAA
7 AAAAA AAAAA
8 AAAAA AAAAA
9 AAAAAAAAAAAAAAAAA
10 AAAAAAAAAAAAAAAAA
11 AAAAA AAAAA
12 AAAAA AAAAA
13 AAAAAA AAAAAA
14______________AAAAA___________AAAAA__________________________________
15
16
17
18
19
20
This line is 20 pixels high, has FONT_ASCENT=14, FONT_DESCENT=6. It's
"base" is at y=20. Characters are drawn at y=14. The LINE_START
macro returns the pixel height. The LINE_CONTAINS macro is true if
the line contains a certain buffer index. The LINE_STARTS_AT macro is
true if the line starts at a certain buffer index. The
LINE_START_PIXEL is the pixel offset the line should be drawn at,
according the the tab continuation of the previous line.
Exposure and drawing:
Exposure is handled from the EXPOSE_TEXT function. It assumes that
the LINE_START_CACHE and all it's parameters are accurate and simply
exposes any line which is in the exposure region. It calls the
CLEAR_AREA function to clear the background and/or lay down a pixmap
background. The text widget has a scrollable pixmap background, which
is implemented in CLEAR_AREA. CLEAR_AREA does the math to figure out
how to tile the pixmap itself so that it can scroll the text with a
copy area call. If the CURSOR argument to EXPOSE_TEXT is true, it
also draws the cursor.
The function DRAW_LINE draws a single line, doing all the tab and
color computations neccesary. The function DRAW_LINE_WRAP draws the
line wrap bitmap at the end of the line if it wraps. TEXT_EXPOSE will
expand the cached line data list if it has to by calling
FETCH_LINES_FORWARD. The functions DRAW_CURSOR and UNDRAW_CURSOR draw
and undraw the cursor. They count the number of draws and undraws so
that the cursor may be undrawn even if the cursor is already undrawn
and the re-draw will not occur too early. This is useful in handling
scrolling.
Handling of the cursor is a little messed up, I should add. It has to
be undrawn and drawn at various places. Something better needs to be
done about this, because it currently doesn't do the right thing in
certain places. I can't remember where very well. Look for the calls
to DRAW_CURSOR and UNDRAW_CURSOR.
RECOMPUTE_GEOMETRY is called when the geometry of the window changes
or when it is first drawn. This is probably not done right. My
biggest weakness in writing this code is that I've never written a
widget before so I got most of the event handling stuff wrong as far
as Gtk is concerned. Fortunatly, most of the code is unrelated and
simply an exercise in data structure manipulation.
Scrolling:
Scrolling is fairly straighforward. It looks at the top line, and
advances it pixel by pixel until the FIRST_CUT_PIXELS equals the line
height and then advances the LINE_START_CACHE. When it runs out of
lines it fetches more. The function SCROLL_INT is used to scroll from
inside the code, it calls the appropriate functions and handles
updating the scroll bars. It dispatches a change event which causes
Gtk to call the correct scroll action, which then enters SCROLL_UP or
SCROLL_DOWN. Careful with the cursor during these changes.
Insertion, deletion:
There's some confusion right now over what to do with the cursor when
it's offscreen due to scrolling. This is a policy decision. I don't
know what's best. Spencer criticized me for forcing it to stay
onscreen. It shouldn't be hard to make stuff work with the cursor
offscreen.
Currently I've got functions to do insertion and deletion of a single
character. It's fairly complicated. In order to do efficient pasting
into the buffer, or write code that modifies the buffer while the
buffer is drawn, it needs to do multiple characters at at time. This
is the hardest part of what remains. Currently, gtk_text_insert does
not reexpose the modified lines. It needs to. Pete did this wrong at
one point and I disabled modification completely, I don't know what
the current state of things are. The functions
INSERT_CHAR_LINE_EXPOSE and DELETE_CHAR_LINE_EXPOSE do the work.
Here's pseudo code for insert. Delete is quite similar.
insert character into the buffer
update the text property list
move the point
undraw the cursor
correct all LineParams cache entries after the insertion point
compute the new height of the modified line
compare with the old height of the modified line
remove the old LineParams from the cache
insert the new LineParams into the cache
if the lines are of different height, do a copy area to move the
area below the insertion down
expose the current line
update the cursor mark
redraw the cursor
What needs to be done:
Horizintal scrolling, robustness, testing, selection handling. If you
want to work in the text widget pay attention to the debugging
facilities I've written at the end of gtktext.c. I'm sorry I waited
so long to try and pass this off. I'm super busy with school and
work, and when I have free time my highest priority is another version
of PRCS.
Feel free to ask me questions.

14129
docs/tutorial/gtk_tut.sgml Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

10090
docs/tutorial/gtk_tut_it.sgml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

492
docs/widget_system.txt Normal file
View File

@@ -0,0 +1,492 @@
Notes about the inner workings of the widget system of GTK+
===========================================================
This file contains some notes as to how the widget system does
and should work. It consists of three parts:
I) A description of the meaning of the various flags
II) A list of invariants about the states of the widgets.
(Throughout this document, we refer to the states of the
widgets by referring to the flags for GtkWidget)
III) Some notes about the ways that a widget changes states
IV) A list of responsibilities of various widget signals when
the states change.
Any action necessary to maintain the invariants in II which is not
explicitly mentioned in IV), is the responsibility of the core GTK
code, which is roughly defined as:
gtkobject.c
gtkwidget.c
gtkcontainer.c
gtkmain.c
gtksignal.c
Section II is mostly of interest to those maintaining GTK, the
other sections may also be interesting to people writing
new widgets.
Main outline:
- Owen Taylor <owt1@cornell.edu>
1998/02/03
Flag descriptions:
- Tim Janik <timj@gimp.org>
1998/02/04
I. Flags
--------
GtkObject:
GTK_DESTROYED:
This flagged is set for a GtkObject right before its
destruction code is executed. Its main use is the
prevention of multiple destruction invokations.
GTK_FLOATING:
This flag reflects the fact that the holder of the
initial reference count is unknown. Refer to refcounting.txt
for further details.
GTK_RESERVED_1:
GTK_RESERVED_2:
Reserved flags.
GtkWidget, public flags:
GTK_TOPLEVEL:
Widgets without a real parent, as there are GtkWindows and
GtkMenus have this flag set throughout their lifetime.
Toplevel widgets always contain their own GdkWindow.
GTK_NO_WINDOW:
This flag is indicative for a widget that does not provide
its own GdkWindow. Visible action (e.g. drawing) is performed
on the parent's GdkWindow.
GTK_REALIZED:
Set by gtk_widget_realize, unset by gtk_widget_unrealize.
Relies on ((widget->parent && widget->parent->window)
|| GTK_WIDGET_TOPLEVEL (widget));
Means: widget has an associated GdkWindow (XWindow).
GTK_MAPPED:
Set by gtk_widget_map, unset by gtk_widget_unmap.
May only be set if GTK_WIDGET_REALIZED (widget).
Means: gdk_window_show() has been called on the widgets window(s).
GTK_VISIBLE:
Set by gtk_widget_show.
Implies that a widget will be flagged GTK_MAPPED as soon as its
parent is mapped.
!GTK_VISIBLE:
Set by gtk_widget_hide.
Implies that a widget is not onscreen, therefore !GTK_MAPPED.
GTK_SENSITIVE:
Set and unset by gtk_widget_set_sensitive.
The sensitivity of a widget determines whether it will receive
certain events (e.g. button or key presses). One premise for
the widgets sensitivity is to have GTK_SENSITIVE set.
GTK_PARENT_SENSITIVE:
Set and unset by gtk_widget_set_sensitive operations on the
parents of the widget.
This is the second premise for the widgets sensitivity. Once
it has GTK_SENSITIVE and GTK_PARENT_SENSITIVE set, its state is
effectively sensitive. This is expressed (and can be examined) by
the GTK_WIDGET_IS_SENSITIVE macro.
GTK_CAN_FOCUS:
There are no directly corresponding functions for setting/unsetting
this flag, but it can be affected by the GtkWidget::has_focus argument
via gtk_widget_set_arg.
This flag determines whether a widget is able to handle focus grabs.
GTK_HAS_FOCUS:
This flag will be set by gtk_widget_grab_focus for widgets that also
have GTK_CAN_FOCUS set. The flag will be unset once another widget
grabs the focus.
GTK_CAN_DEFAULT:
GTK_HAS_DEFAULT:
These two flags are mostly equal in functionality to their *_FOCUS
counterparts, but for the default widget.
GTK_HAS_GRAB:
Set by gtk_grab_add, unset by gtk_grab_remove.
Means: widget is in the grab_widgets stack, and will be the preferred
one for receiving events other than ones of cosmetic value.
GTK_BASIC:
The GTK_BASIC flag is an attempt at making a distinction
between widgets that handle user input e.g. key/button presses
and those that don't. Subsequent parent<->child relation ships
of non `basic' widgets should be avoided. The checking for
this is currently not properly enforced in the code. For
example GtkButton is a non `basic' widget, that will therefore
disallow to act as a container for another GtkButton. Now the
gnit is, one can add a GtkHBox (which is a `basic' widget) to
the first button, and put the second into the box.
GTK_RESERVED_3:
GTK_RC_STYLE:
This flag indicates that its style has been looked up through
the rc mechanism. It does not imply that the widget actually
had a style defined through the rc mechanism.
GtkWidget, private flags:
GTK_USER_STYLE:
A widget is flagged to have a user style, once gtk_widget_set_style
has been invoked for it. The use of this flag is to tell widgets
wich share a global user style from the ones which got a certain
style assign from outside the toolkit.
GTK_REDRAW_PENDING:
Relies on GTK_WIDGET_MAPPED (widget).
[FIXME: this is not really enforced throughout the code, but should
be. it only requires a few checks for GTK_WIDGET_MAPPED and
minor changes to gtk_widget_unmap, we can then remove the check
in gtk_widget_real_destroy]
Means: there is an idle handler waiting for the widget, that
will cause a full redraw (gtk_widget_draw (widget, NULL)).
GTK_RESIZE_PENDING:
First, this is only valid for GtkContainers.
[some of the code should move to gtkcontainer.c therefore]
Relies on GTK_WIDGET_REALIZED(widget)
[this is not really enforced throughout the code, but should
be. it only requires a few checks for GTK_WIDGET_RELIZED and
minor changes to gtk_widget_unrealize, we can then remove the check
in gtk_widget_real_destroy]
Means: there is an idle handler waiting for the container to
resize it.
GTK_RESIZE_NEEDED:
Relies on GTK_WIDGET_REALIZED(widget)
[this is not really enforced throughout the code, but should
be. once this is done special checking in gtk_widget_real_destroy
can be avoided]
Means: a widget has been added to the resize_widgets list of
its _toplevel_ container (keep this in mind for GtkViewport).
Remark: this flag is also used internaly by gtkwindow.c during
the evaluation of resizing worthy widgets.
GTK_LEAVE_PENDING:
A widget is flagged as such if there is a leave_notify event
pending for it. It will receive this event regardless of a grab
through another widget or its current sensitivity.
[this should be made relying on GTK_REALIZED]
GTK_HAS_SHAPE_MASK:
Set by gtk_widget_shape_combine_mask if a widget got a shape mask
assigned (making use of the X11 shaped window extension).
GTK_IN_REPARENT:
During the act of reparentation widgets which are already
realized and will be added to an already realized parent need
to have this flag set to prevent natural unrealization on the
process of getting unparented.
Related Macros:
GTK_WIDGET_DRAWABLE:
This macro examines whether a widget is flagged as GTK_WIDGET_VISIBLE
and GTK_WIDGET_MAPPED.
Means: it _makes sense_ to draw in a widgets window.
GTK_WIDGET_IS_SENSITIVE:
This macro tells the real sensitivity state of a widget. It returns
whether both the widget and all its parents are in sensitive state.
II. Invariants:
---------------
This section describes various constraints on the states of
the widget:
In the following
A => B means if A is true, than B is true
A <=> B means A is true, if and only if B is true
(equivalent to A => B and A <= B)
1) GTK_WIDGET_DESTROYED (widget) => !GTK_WIDGET_REALIZED (widget)
=> !GTK_WIDGET_VISIBLE (widget)
[ The latter is not currently in place, but it should be ]
2) GTK_WIDGET_MAPPED (widget) => GTK_WIDGET_REALIZED (widget)
3) if GTK_WIDGET_TOPLEVEL (widget):
GTK_WIDGET_VISIBLE (widget) <=> GTK_WIDGET_MAPPED (widget)
4) if !GTK_WIDGET_TOPLEVEL (widget):
widget->parent && GTK_WIDGET_REALIZED (widget->parent) <=>
GTK_WIDGET_REALIZED (widget)
5) if !GTK_WIDGET_TOPLEVEL (widget):
GTK_WIDGET_MAPPED (widget) => GTK_WIDGET_VISIBLE (widget)
=> GTK_WIDGET_REALIZED (widget)
widget->parent && GTK_WIDGET_MAPPED (widget->parent) &&
GTK_WIDGET_VISIBLE (widget) => GTK_WIDGET_MAPPED (widget)
Note:, the definition
[ GTK_WIDGET_DRAWABLE = GTK_WIDGET_VISIBLE && GTK_WIDGET_MAPPED
is made in gtkwidget.c, but by 3) and 5),
GTK_WIDGET_MAPPED => GTK_WIDGET_VISIBLE
]
6) GTK_REDRAW_PENDING => GTK_WIDGET_REALIZED
GTK_RESIZE_PENDING => "
GTK_LEAVE_PENDING => "
GTK_RESIZE_NEEDED => "
III. How states are changed:
----------------------------
How can the user control the state of a widget:
-----------------------------------------------
(In the following, set flag means set the flag, do appropriate
actions, and enforce above invariants)
gtk_widget_show:
if !GTK_DESTROYED sets GTK_VISIBLE
gtk_widget_hide:
if !GTK_VISIBLE for widget
gtk_widget_destroy:
sets GTK_DESTROYED
For a top-level widget
gtk_widget_realize:
if !GTK_DESTROYED sets GTK_REALIZED
- Calling gtk_widget_realize when the widget is not a descendent
of a toplevel is an ERROR.
gtk_container_add (container, widget) [ and container-specific variants ]
Sets widget->parent
gtk_container_remove (container, widget)
unsets widget->parent
gtk_widget_reparent (widget, new_parent)
Equivalent to removing widget from old parent and adding it to
the new parent, except that the widget will not be temporarily
unrealized if both the old parent and the new parent are realized.
gtk_widget_unrealize
gtk_widget_map
gtk_widget_unmap
These functions are not meant to be used by applications - they
are used only by GTK and widgets to enforce invariants on the
state.
When The X window corresponding to a GTK window is destroyed:
-------------------------------------------------------------
gtk_widget_destroy is called (as above).
IV. Responsibilities of widgets
--------------------------------
Adding to a container
---------------------
When a widget is added to a container, the container:
1) calls gtk_widget_set_parent (widget, container)
2) calls gtk_widget_set_parent_window (widget, window) if
the widget is being added to something other than container->window
3) if container is realized, and not widget, realizes widget
4) if container is mapped, and not widget and widget is GTK_VISIBLE,
maps widget
5) Queues a resize if the widget is mapped
Note: It would be nice to remove 3) and 4) out of widget specific code
since they are of the invariant-enforcing nature, but it is
a bit hard, since they can't be done until after 2)
Removing from a container
-------------------------
When a widget is removed to a container, the container:
1) Calls gtk_widget_unparent (widget)
2) Queues a resize.
Notes:
gtk_widget_unparent unrealizes the widget except in the
special case GTK_IN_REPARENT is set.
At widget creation
------------------
Widgets are created in an unrealized state.
1) The widget should allocate and initialize needed data structures
The Realize signal
------------------
When a widget recieves the "realize" signal it should:
NO_WINDOW widgets: (probably OK to use default handler)
1) set the realized flag
2) set widget->window
widget->window = gtk_widget_get_parent_window (widget);
gdk_window_ref (widget->window);
3) attach the widget's style
widget->style = gtk_style_attach (widget->style, widget->window);
widget with window(s)
1) set the REALIZED flag
2) create windows with the parent obtained from
gtk_widget_get_parent_window (widget);
3) attach the widget's style
4) set the background color for the new window based on the style
The Map signal
--------------
1) Set the MAPPED flag
2) If the widget has any windows, gdk_window_show those windows
3) call gtk_widget_map for all child widgets that are
VISIBLE and !MAPPED.
3) Do any other functions related to putting the widget onscreen.
(for instance, showing extra popup windows...)
The Unmap signal
----------------
When a widget receives the unmap signal, it must:
1) If the widget has a window, gdk_window_hide that window,
2) If the widget does not have a window, unmap all child widgets
3) Do any other functions related to taking the widget offscreen
(for instance, removing popup windows...)
4) Unset GTK_MAPPED
The Unrealize signal
--------------------
When a widget receives the unrealize signal, it must
1) For any windows other than widget->window do:
gdk_window_set_user_data (window, NULL);
gdk_window_destroy (window);
2) Call the parent's unrealize handler
The Widget class unrealize handler will take care of unrealizing
all children if necessary. [should this be made consistent with
unmap???]
The Destroy Signal
------------------
Commentary:
The destroy signal probably shouldn't exist at all. A widget
should merely be unrealized and removed from its parent
when the user calls gtk_widget_destroy or a GDK_DESTROY event
is received. However, a large body of code depends on
getting a definitive signal when a widget goes away.
That could be put in the finalization step, but, especially
with language bindings, the cleanup step may need to refer
back to the widget. (To use gtk_widget_get_data, for instance)
If it does so via a pointer in a closure (natural for
Scheme, or Perl), then the finalization procedure will never
be called.
Also, if we made that the finalization step, we would have
to propagate the GDK_DESTROY event in any case, since it is
at that point at which user-visible actions need to be taken.
When a widget receives the destroy signal, it must:
1) If the widget "owns" any widgets other than its child
widgets, (for instance popup windows) it should
call gtk_widget_destroy () for them.
2) Call the parent class's destroy handler.
The "destroy" signal will only be received once. A widget
will never receive any other signals after the destroy
signal (but see the sectionalize on "Finalize" below)
The widget must handle calls to all publically accessible
functions in an innocuous manner even after a "destroy"
signal. (A widget can assume that it will not be realized
after a "destroy" signal is received, which may simplify
handling this requirement)
The Finalize Pseudo-signal
--------------------------
The finalize pseudo-signal is received after all references
to the widget have been removed. The finalize callback
cannot make any GTK calls with the widget as a parameter.
1) Free any memory allocated by the widget. (But _not_
the widget structure itself.
2) Call the parent class's finalize signal
A note on chaining "destroy" signals and finalize signals:
---------------------------------------------------------
This is done by code like:
if (GTK_OBJECT_CLASS (parent_class)->destroy)
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
It may not be completely obvious why this works. Note
that parent_class is a static variable on a per-class
basis. So say: we have
GtkFoo <- GtkBar <- GtkWidget <-GtkObject
And that Foo, Widget, and Object all have destructors, but
not Bar.
Then gtk_foo_destroy will call gtk_widget_destroy (because
it was not overridden in the Bar class structure) and
gtk_widget_destroy will call gtk_object_destroy because
the parent_class variable referenced by gtk_foo_destroy is the
static variable in gtkwidget.c: GtkObjectClass.

41
examples/README.1ST Normal file
View File

@@ -0,0 +1,41 @@
GTK Example Code - Tony Gale <gale@gtk.org> 980623
--------------------------------------------------
I have written an awk script to automatically extract the code
examples from the GTK Tutorial (in sgml), so they only have to be
changed in one place.
It's called 'extract.awk', and there is a shell wrapper to invoke
it called 'extract.sh'
It takes the following switches:
-c : Just do checking rather than output files
-f <filename> : Extract a specific file
-d : Extract file(s) to current directory
Without the -d switch, the code will be placed in the appropriate
sub-directory. Those sub-directories will be created if they do not
exist.
Without the -f switch, all code examples will be extracted.
The shell wrapper assumes that the GTK Tutorial is in the
file "../docs/gtk_tut.sgml"
It works by looking for sections of text in the tutorial surrounded
by, for example:
/* example-start helloworld helloworld.c */
and
/* example-end */
Where "helloworld" is the directory into which the file will be
placed (which can also be a directory spec like hello/hello1), and
"helloworld.c" is the file name for the code.
So, the code between these lines would be extracted to the file
helloworld/helloworld.c
It also handles replacing the sgml tag '&amp;' with '&'

View File

@@ -0,0 +1,8 @@
CC = gcc
aspectframe: aspectframe.c
$(CC) `gtk-config --cflags` `gtk-config --libs` aspectframe.c -o aspectframe
clean:
rm -f *.o aspectframe

View File

@@ -0,0 +1,43 @@
/* aspectframe.c */
#include <gtk/gtk.h>
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *aspect_frame;
GtkWidget *drawing_area;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Aspect Frame");
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
gtk_container_border_width (GTK_CONTAINER (window), 10);
/* Create an aspect_frame and add it to our toplevel window */
aspect_frame = gtk_aspect_frame_new ("2x1", /* label */
0.5, /* center x */
0.5, /* center y */
2, /* xsize/ysize = 2 */
FALSE /* ignore child's aspect */);
gtk_container_add (GTK_CONTAINER(window), aspect_frame);
gtk_widget_show (aspect_frame);
/* Now add a child widget to the aspect frame */
drawing_area = gtk_drawing_area_new ();
/* Ask for a 200x200 window, but the AspectFrame will give us a 200x100
* window since we are forcing a 2x1 aspect ratio */
gtk_widget_set_usize (drawing_area, 200, 200);
gtk_container_add (GTK_CONTAINER(aspect_frame), drawing_area);
gtk_widget_show (drawing_area);
gtk_widget_show (window);
gtk_main ();
return 0;
}

View File

@@ -0,0 +1,8 @@
CC = gcc
buttons: buttons.c
$(CC) `gtk-config --cflags` `gtk-config --libs` buttons.c -o buttons
clean:
rm -f *.o buttons

106
examples/buttons/buttons.c Normal file
View File

@@ -0,0 +1,106 @@
/* This file extracted from the GTK tutorial. */
/* buttons.c */
#include <gtk/gtk.h>
/* create a new hbox with an image and a label packed into it
* and return the box.. */
GtkWidget *xpm_label_box (GtkWidget *parent, gchar *xpm_filename, gchar *label_text)
{
GtkWidget *box1;
GtkWidget *label;
GtkWidget *pixmapwid;
GdkPixmap *pixmap;
GdkBitmap *mask;
GtkStyle *style;
/* create box for xpm and label */
box1 = gtk_hbox_new (FALSE, 0);
gtk_container_border_width (GTK_CONTAINER (box1), 2);
/* get style of button.. I assume it's to get the background color.
* if someone knows the real reason, please enlighten me. */
style = gtk_widget_get_style(parent);
/* now on to the xpm stuff.. load xpm */
pixmap = gdk_pixmap_create_from_xpm (parent->window, &mask,
&style->bg[GTK_STATE_NORMAL],
xpm_filename);
pixmapwid = gtk_pixmap_new (pixmap, mask);
/* create label for button */
label = gtk_label_new (label_text);
/* pack the pixmap and label into the box */
gtk_box_pack_start (GTK_BOX (box1),
pixmapwid, FALSE, FALSE, 3);
gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 3);
gtk_widget_show(pixmapwid);
gtk_widget_show(label);
return (box1);
}
/* our usual callback function */
void callback (GtkWidget *widget, gpointer data)
{
g_print ("Hello again - %s was pressed\n", (char *) data);
}
int main (int argc, char *argv[])
{
/* GtkWidget is the storage type for widgets */
GtkWidget *window;
GtkWidget *button;
GtkWidget *box1;
gtk_init (&argc, &argv);
/* create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Pixmap'd Buttons!");
/* It's a good idea to do this for all windows. */
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_exit), NULL);
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (gtk_exit), NULL);
/* sets the border width of the window. */
gtk_container_border_width (GTK_CONTAINER (window), 10);
gtk_widget_realize(window);
/* create a new button */
button = gtk_button_new ();
/* You should be getting used to seeing most of these functions by now */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback), (gpointer) "cool button");
/* this calls our box creating function */
box1 = xpm_label_box(window, "info.xpm", "cool button");
/* pack and show all our widgets */
gtk_widget_show(box1);
gtk_container_add (GTK_CONTAINER (button), box1);
gtk_widget_show(button);
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (window);
/* rest in gtk_main and wait for the fun to begin! */
gtk_main ();
return 0;
}

92
examples/buttons/info.xpm Normal file
View File

@@ -0,0 +1,92 @@
/* XPM */
static char *openfile[] = {
/* width height num_colors chars_per_pixel */
" 20 19 66 2",
/* colors */
".. c None",
".# c #000000",
".a c #dfdfdf",
".b c #7f7f7f",
".c c #006f6f",
".d c #00efef",
".e c #009f9f",
".f c #004040",
".g c #00bfbf",
".h c #ff0000",
".i c #ffffff",
".j c #7f0000",
".k c #007070",
".l c #00ffff",
".m c #00a0a0",
".n c #004f4f",
".o c #00cfcf",
".p c #8f8f8f",
".q c #6f6f6f",
".r c #a0a0a0",
".s c #7f7f00",
".t c #007f7f",
".u c #5f5f5f",
".v c #707070",
".w c #00f0f0",
".x c #009090",
".y c #ffff00",
".z c #0000ff",
".A c #00afaf",
".B c #00d0d0",
".C c #00dfdf",
".D c #005f5f",
".E c #00b0b0",
".F c #001010",
".G c #00c0c0",
".H c #000f0f",
".I c #00007f",
".J c #005050",
".K c #002f2f",
".L c #dfcfcf",
".M c #dfd0d0",
".N c #006060",
".O c #00e0e0",
".P c #00ff00",
".Q c #002020",
".R c #dfc0c0",
".S c #008080",
".T c #001f1f",
".U c #003f3f",
".V c #007f00",
".W c #00000f",
".X c #000010",
".Y c #00001f",
".Z c #000020",
".0 c #00002f",
".1 c #000030",
".2 c #00003f",
".3 c #000040",
".4 c #00004f",
".5 c #000050",
".6 c #00005f",
".7 c #000060",
".8 c #00006f",
".9 c #000070",
"#. c #7f7f80",
"## c #9f9f9f",
/* pixels */
"........................................",
"........................................",
"........................................",
".......................#.#.#............",
".....................#.......#...#......",
"...............................#.#......",
".......#.#.#.................#.#.#......",
".....#.y.i.y.#.#.#.#.#.#.#..............",
".....#.i.y.i.y.i.y.i.y.i.#..............",
".....#.y.i.y.i.y.i.y.i.y.#..............",
".....#.i.y.i.y.#.#.#.#.#.#.#.#.#.#.#....",
".....#.y.i.y.#.s.s.s.s.s.s.s.s.s.#......",
".....#.i.y.#.s.s.s.s.s.s.s.s.s.#........",
".....#.y.#.s.s.s.s.s.s.s.s.s.#..........",
".....#.#.s.s.s.s.s.s.s.s.s.#............",
".....#.#.#.#.#.#.#.#.#.#.#..............",
"........................................",
"........................................",
"........................................"
};

8
examples/clist/Makefile Normal file
View File

@@ -0,0 +1,8 @@
CC = gcc
clist: clist.c
$(CC) `gtk-config --cflags` `gtk-config --libs` clist.c -o clist
clean:
rm -f *.o clist

173
examples/clist/clist.c Normal file
View File

@@ -0,0 +1,173 @@
/* example-start clist clist.c */
#include <gtk/gtk.h>
#include <glib.h>
/* These are just the prototypes of the various callbacks */
void button_add_clicked( GtkWidget *button, gpointer data);
void button_clear_clicked( GtkWidget *button, gpointer data);
void button_hide_show_clicked( GtkWidget *button, gpointer data);
void selection_made( GtkWidget *clist, gint row, gint column,
GdkEventButton *event, gpointer data);
gint main (int argc, gchar *argv[])
{
GtkWidget *window;
GtkWidget *vbox, *hbox;
GtkWidget *clist;
GtkWidget *button_add, *button_clear, *button_hide_show;
gchar *titles[2] = {"Ingredients","Amount"};
gtk_init(&argc, &argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(GTK_WIDGET(window), 300, 150);
gtk_window_set_title(GTK_WINDOW(window), "GtkCList Example");
gtk_signal_connect(GTK_OBJECT(window),
"destroy",
GTK_SIGNAL_FUNC(gtk_main_quit),
NULL);
vbox=gtk_vbox_new(FALSE, 5);
gtk_container_border_width(GTK_CONTAINER(vbox), 5);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show(vbox);
/* Create the GtkCList. For this example we use 2 columns */
clist = gtk_clist_new_with_titles( 2, titles);
/* When a selection is made, we want to know about it. The callback
* used is selection_made, and it's code can be found further down */
gtk_signal_connect(GTK_OBJECT(clist), "select_row",
GTK_SIGNAL_FUNC(selection_made),
NULL);
/* It isn't necessary to shadow the border, but it looks nice :) */
gtk_clist_set_border(GTK_CLIST(clist), GTK_SHADOW_OUT);
/* What however is important, is that we set the column widths as
* they will never be right otherwise. Note that the columns are
* numbered from 0 and up (to 1 in this case).
*/
gtk_clist_set_column_width (GTK_CLIST(clist), 0, 150);
/* Scollbars _only when needed_ */
gtk_clist_set_policy(GTK_CLIST(clist), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
/* Add the GtkCList widget to the vertical box and show it. */
gtk_box_pack_start(GTK_BOX(vbox), clist, TRUE, TRUE, 0);
gtk_widget_show(clist);
/* Create the buttons and add them to the window. See the button
* tutorial for more examples and comments on this.
*/
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
gtk_widget_show(hbox);
button_add = gtk_button_new_with_label("Add List");
button_clear = gtk_button_new_with_label("Clear List");
button_hide_show = gtk_button_new_with_label("Hide/Show titles");
gtk_box_pack_start(GTK_BOX(hbox), button_add, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), button_clear, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), button_hide_show, TRUE, TRUE, 0);
/* Connect our callbacks to the three buttons */
gtk_signal_connect_object(GTK_OBJECT(button_add), "clicked",
GTK_SIGNAL_FUNC(button_add_clicked),
(gpointer) clist);
gtk_signal_connect_object(GTK_OBJECT(button_clear), "clicked",
GTK_SIGNAL_FUNC(button_clear_clicked),
(gpointer) clist);
gtk_signal_connect_object(GTK_OBJECT(button_hide_show), "clicked",
GTK_SIGNAL_FUNC(button_hide_show_clicked),
(gpointer) clist);
gtk_widget_show(button_add);
gtk_widget_show(button_clear);
gtk_widget_show(button_hide_show);
/* The interface is completely set up so we show the window and
* enter the gtk_main loop.
*/
gtk_widget_show(window);
gtk_main();
return 0;
}
/* User clicked the "Add List" button. */
void button_add_clicked( GtkWidget *button, gpointer data)
{
int indx;
/* Something silly to add to the list. 4 rows of 2 columns each */
gchar *drink[4][2] = {{"Milk", "3 Oz"},
{"Water", "6 l"},
{"Carrots", "2"},
{"Snakes", "55"}};
/* Here we do the actual adding of the text. It's done once for
* each row.
*/
for( indx=0; indx < 4; indx++)
gtk_clist_append( (GtkCList*) data, drink[indx]);
return;
}
/* User clicked the "Clear List" button. */
void button_clear_clicked( GtkWidget *button, gpointer data)
{
/* Clear the list using gtk_clist_clear. This is much faster than
* calling gtk_clist_remove once for each row.
*/
gtk_clist_clear((GtkCList*) data);
return;
}
/* The user clicked the "Hide/Show titles" button. */
void button_hide_show_clicked( GtkWidget *button, gpointer data)
{
/* Just a flag to remember the status. 0 = currently visible */
static short int flag = 0;
if (flag == 0)
{
/* Hide the titles and set the flag to 1 */
gtk_clist_column_titles_hide((GtkCList*) data);
flag++;
}
else
{
/* Show the titles and reset flag to 0 */
gtk_clist_column_titles_show((GtkCList*) data);
flag--;
}
return;
}
/* If we come here, then the user has selected a row in the list. */
void selection_made( GtkWidget *clist, gint row, gint column,
GdkEventButton *event, gpointer data)
{
gchar *text;
/* Get the text that is stored in the selected row and column
* which was clicked in. We will receive it as a pointer in the
* argument text.
*/
gtk_clist_get_text(GTK_CLIST(clist), row, column, &text);
/* Just prints some information about the selected row */
g_print("You selected row %d. More specifically you clicked in column %d, and the text in this cell is %s\n\n", row, column, text);
return;
}
/* example-end */

8
examples/entry/Makefile Normal file
View File

@@ -0,0 +1,8 @@
CC = gcc
entry: entry.c
$(CC) `gtk-config --cflags` `gtk-config --libs` entry.c -o entry
clean:
rm -f *.o entry

92
examples/entry/entry.c Normal file
View File

@@ -0,0 +1,92 @@
/* This file extracted from the GTK tutorial. */
/* entry.c */
#include <gtk/gtk.h>
void enter_callback(GtkWidget *widget, GtkWidget *entry)
{
gchar *entry_text;
entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
printf("Entry contents: %s\n", entry_text);
}
void entry_toggle_editable (GtkWidget *checkbutton,
GtkWidget *entry)
{
gtk_entry_set_editable(GTK_ENTRY(entry),
GTK_TOGGLE_BUTTON(checkbutton)->active);
}
void entry_toggle_visibility (GtkWidget *checkbutton,
GtkWidget *entry)
{
gtk_entry_set_visibility(GTK_ENTRY(entry),
GTK_TOGGLE_BUTTON(checkbutton)->active);
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *vbox, *hbox;
GtkWidget *entry;
GtkWidget *button;
GtkWidget *check;
gtk_init (&argc, &argv);
/* create a new window */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize( GTK_WIDGET (window), 200, 100);
gtk_window_set_title(GTK_WINDOW (window), "GTK Entry");
gtk_signal_connect(GTK_OBJECT (window), "delete_event",
(GtkSignalFunc) gtk_exit, NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (vbox);
entry = gtk_entry_new_with_max_length (50);
gtk_signal_connect(GTK_OBJECT(entry), "activate",
GTK_SIGNAL_FUNC(enter_callback),
entry);
gtk_entry_set_text (GTK_ENTRY (entry), "hello");
gtk_entry_append_text (GTK_ENTRY (entry), " world");
gtk_entry_select_region (GTK_ENTRY (entry),
0, GTK_ENTRY(entry)->text_length);
gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
gtk_widget_show (entry);
hbox = gtk_hbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (vbox), hbox);
gtk_widget_show (hbox);
check = gtk_check_button_new_with_label("Editable");
gtk_box_pack_start (GTK_BOX (hbox), check, TRUE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT(check), "toggled",
GTK_SIGNAL_FUNC(entry_toggle_editable), entry);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(check), TRUE);
gtk_widget_show (check);
check = gtk_check_button_new_with_label("Visible");
gtk_box_pack_start (GTK_BOX (hbox), check, TRUE, TRUE, 0);
gtk_signal_connect (GTK_OBJECT(check), "toggled",
GTK_SIGNAL_FUNC(entry_toggle_visibility), entry);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(check), TRUE);
gtk_widget_show (check);
button = gtk_button_new_with_label ("Close");
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC(gtk_exit),
GTK_OBJECT (window));
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_widget_grab_default (button);
gtk_widget_show (button);
gtk_widget_show(window);
gtk_main();
return(0);
}

View File

@@ -0,0 +1,8 @@
CC = gcc
eventbox: eventbox.c
$(CC) `gtk-config --cflags` `gtk-config --libs` eventbox.c -o eventbox
clean:
rm -f *.o eventbox

View File

@@ -0,0 +1,55 @@
/* This file extracted from the GTK tutorial. */
/* eventbox.c */
#include <gtk/gtk.h>
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *event_box;
GtkWidget *label;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Event Box");
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_exit), NULL);
gtk_container_border_width (GTK_CONTAINER (window), 10);
/* Create an EventBox and add it to our toplevel window */
event_box = gtk_event_box_new ();
gtk_container_add (GTK_CONTAINER(window), event_box);
gtk_widget_show (event_box);
/* Create a long label */
label = gtk_label_new ("Click here to quit, quit, quit, quit, quit");
gtk_container_add (GTK_CONTAINER (event_box), label);
gtk_widget_show (label);
/* Clip it short. */
gtk_widget_set_usize (label, 110, 20);
/* And bind an action to it */
gtk_widget_set_events (event_box, GDK_BUTTON_PRESS_MASK);
gtk_signal_connect (GTK_OBJECT(event_box), "button_press_event",
GTK_SIGNAL_FUNC (gtk_exit), NULL);
/* Yet one more thing you need an X window for ... */
gtk_widget_realize (event_box);
gdk_window_set_cursor (event_box->window, gdk_cursor_new (GDK_HAND1));
gtk_widget_show (window);
gtk_main ();
return 0;
}

57
examples/extract.awk Normal file
View File

@@ -0,0 +1,57 @@
# extract - extract C source files from GTK Tutorial
# Copyright (C) Tony Gale 1998
# Contact: gale@gtk.org
#
# Command Switches:
# -c : Just do checking rather than output files
# -f <filename> : Extract a specific file
# -d : Extract files to current directory
BEGIN {in_example=0; check=0; spec_example=""; do_output=0; flatten=0
for (i=0 ; i < ARGC ; i++) {
if ( ARGV[i] == "-c" ) {
check = 1;
ARGV[i]="";
} else if ( ARGV[i] == "-f" ) {
spec_example=ARGV[i+1];
ARGV[i]="";
ARGV[i+1]="";
if ( length(spec_example) == 0 ) {
print "usage: -f <filename>";
exit;
}
} else if ( ARGV[i] == "-d" ) {
flatten = 1;
ARGV[i]="";
}
}
}
$2 == "example-start" && in_example == 1 { printf("\nERROR: nested example at line %d\n", NR) > "/dev/stderr";
exit}
$2 == "example-start" { in_example=1 }
$2 == "example-start" && check == 0 \
{ if ( (spec_example == "") || (spec_example == $4) ) {
if ( flatten == 0 ) {
file_name = sprintf("%s/%s",$3, $4);
command = sprintf("mkdir -p %s", $3);
system(command);
} else {
file_name = $4;
}
do_output=1;
}
}
in_example==1 && check==0 && do_output==1 { gsub(/&amp;/, "\\&", $0);
print $0 >file_name }
$2 == "example-end" && in_example == 0 { printf("\nERROR: multiple ends at line %d\n", NR) > "/dev/stderr";
exit}
$2 == "example-end" { in_example=0; do_output=0 }
END {}

2
examples/extract.sh Executable file
View File

@@ -0,0 +1,2 @@
#! /bin/sh
awk -f extract.awk ../docs/gtk_tut.sgml $1 $2 $3 $4 $5

View File

@@ -0,0 +1,8 @@
CC = gcc
filesel: filesel.c
$(CC) `gtk-config --cflags` `gtk-config --libs` filesel.c -o filesel
clean:
rm -f *.o filesel

View File

@@ -0,0 +1,46 @@
/* This file extracted from the GTK tutorial. */
/* filesel.c */
#include <gtk/gtk.h>
/* Get the selected filename and print it to the console */
void file_ok_sel (GtkWidget *w, GtkFileSelection *fs)
{
g_print ("%s\n", gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
}
void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
GtkWidget *filew;
gtk_init (&argc, &argv);
/* Create a new file selection widget */
filew = gtk_file_selection_new ("File selection");
gtk_signal_connect (GTK_OBJECT (filew), "destroy",
(GtkSignalFunc) destroy, &filew);
/* Connect the ok_button to file_ok_sel function */
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", (GtkSignalFunc) file_ok_sel, filew );
/* Connect the cancel_button to destroy the widget */
gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", (GtkSignalFunc) gtk_widget_destroy,
GTK_OBJECT (filew));
/* Lets set the filename, as if this were a save dialog, and we are giving
a default filename */
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"penguin.png");
gtk_widget_show(filew);
gtk_main ();
return 0;
}

4
examples/find-examples.sh Executable file
View File

@@ -0,0 +1,4 @@
find . -name CVS -prune -o \
-not \( -type d -o -name Makefile.am -o -name find-examples.sh \) -print |
sed 's%\./\(.*\)% examples/\1 \\%'
echo " examples/find-examples.sh"

14
examples/gtkdial/Makefile Normal file
View File

@@ -0,0 +1,14 @@
CC = gcc
dial_test: gtkdial.o dial_test.o
$(CC) `gtk-config --libs` dial_test.o gtkdial.o -o dial_test
dial_test.o: dial_test.c gtkdial.h
$(CC) `gtk-config --cflags` -c dial_test.c -o dial_test.o
gtkdial.o: gtkdial.c gtkdial.h
$(CC) `gtk-config --cflags` -c gtkdial.c -o gtkdial.o
clean:
rm -f *.o dial_test

View File

@@ -0,0 +1,64 @@
#include <gtk/gtk.h>
#include "gtkdial.h"
void
value_changed (GtkAdjustment *adjustment, GtkWidget *label)
{
char buffer[16];
sprintf(buffer,"%4.2f",adjustment->value);
gtk_label_set (GTK_LABEL (label), buffer);
}
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkAdjustment *adjustment;
GtkWidget *dial;
GtkWidget *frame;
GtkWidget *vbox;
GtkWidget *label;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Dial");
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_exit), NULL);
gtk_container_border_width (GTK_CONTAINER (window), 10);
vbox = gtk_vbox_new (FALSE, 5);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show(vbox);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start (GTK_BOX(vbox), frame, TRUE, TRUE, 0);
gtk_widget_show (frame);
adjustment = GTK_ADJUSTMENT(gtk_adjustment_new (0, -1.0, 1.0, 0.01, 0.1, 0));
dial = gtk_dial_new(adjustment);
gtk_dial_set_update_policy (GTK_DIAL(dial), GTK_UPDATE_DELAYED);
/* gtk_widget_set_usize (dial, 100, 100); */
gtk_container_add (GTK_CONTAINER (frame), dial);
gtk_widget_show (dial);
label = gtk_label_new("0.00");
gtk_box_pack_start (GTK_BOX(vbox), label, TRUE, TRUE, 0);
gtk_widget_show (label);
gtk_signal_connect (GTK_OBJECT(adjustment), "value_changed",
GTK_SIGNAL_FUNC (value_changed), label);
gtk_widget_show (window);
gtk_main ();
return 0;
}

591
examples/gtkdial/gtkdial.c Normal file
View File

@@ -0,0 +1,591 @@
/* GTK - The GIMP Toolkit
* 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.
*/
#include <math.h>
#include <stdio.h>
#include <gtk/gtkmain.h>
#include <gtk/gtksignal.h>
#include "gtkdial.h"
#define SCROLL_DELAY_LENGTH 300
#define DIAL_DEFAULT_SIZE 100
/* Forward declararations */
static void gtk_dial_class_init (GtkDialClass *klass);
static void gtk_dial_init (GtkDial *dial);
static void gtk_dial_destroy (GtkObject *object);
static void gtk_dial_realize (GtkWidget *widget);
static void gtk_dial_size_request (GtkWidget *widget,
GtkRequisition *requisition);
static void gtk_dial_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gint gtk_dial_expose (GtkWidget *widget,
GdkEventExpose *event);
static gint gtk_dial_button_press (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_dial_button_release (GtkWidget *widget,
GdkEventButton *event);
static gint gtk_dial_motion_notify (GtkWidget *widget,
GdkEventMotion *event);
static gint gtk_dial_timer (GtkDial *dial);
static void gtk_dial_update_mouse (GtkDial *dial, gint x, gint y);
static void gtk_dial_update (GtkDial *dial);
static void gtk_dial_adjustment_changed (GtkAdjustment *adjustment,
gpointer data);
static void gtk_dial_adjustment_value_changed (GtkAdjustment *adjustment,
gpointer data);
/* Local data */
static GtkWidgetClass *parent_class = NULL;
guint
gtk_dial_get_type ()
{
static guint dial_type = 0;
if (!dial_type)
{
GtkTypeInfo dial_info =
{
"GtkDial",
sizeof (GtkDial),
sizeof (GtkDialClass),
(GtkClassInitFunc) gtk_dial_class_init,
(GtkObjectInitFunc) gtk_dial_init,
(GtkArgSetFunc) NULL,
(GtkArgGetFunc) NULL,
};
dial_type = gtk_type_unique (gtk_widget_get_type (), &dial_info);
}
return dial_type;
}
static void
gtk_dial_class_init (GtkDialClass *class)
{
GtkObjectClass *object_class;
GtkWidgetClass *widget_class;
object_class = (GtkObjectClass*) class;
widget_class = (GtkWidgetClass*) class;
parent_class = gtk_type_class (gtk_widget_get_type ());
object_class->destroy = gtk_dial_destroy;
widget_class->realize = gtk_dial_realize;
widget_class->expose_event = gtk_dial_expose;
widget_class->size_request = gtk_dial_size_request;
widget_class->size_allocate = gtk_dial_size_allocate;
widget_class->button_press_event = gtk_dial_button_press;
widget_class->button_release_event = gtk_dial_button_release;
widget_class->motion_notify_event = gtk_dial_motion_notify;
}
static void
gtk_dial_init (GtkDial *dial)
{
dial->button = 0;
dial->policy = GTK_UPDATE_CONTINUOUS;
dial->timer = 0;
dial->radius = 0;
dial->pointer_width = 0;
dial->angle = 0.0;
dial->old_value = 0.0;
dial->old_lower = 0.0;
dial->old_upper = 0.0;
dial->adjustment = NULL;
}
GtkWidget*
gtk_dial_new (GtkAdjustment *adjustment)
{
GtkDial *dial;
dial = gtk_type_new (gtk_dial_get_type ());
if (!adjustment)
adjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
gtk_dial_set_adjustment (dial, adjustment);
return GTK_WIDGET (dial);
}
static void
gtk_dial_destroy (GtkObject *object)
{
GtkDial *dial;
g_return_if_fail (object != NULL);
g_return_if_fail (GTK_IS_DIAL (object));
dial = GTK_DIAL (object);
if (dial->adjustment)
gtk_object_unref (GTK_OBJECT (dial->adjustment));
if (GTK_OBJECT_CLASS (parent_class)->destroy)
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}
GtkAdjustment*
gtk_dial_get_adjustment (GtkDial *dial)
{
g_return_val_if_fail (dial != NULL, NULL);
g_return_val_if_fail (GTK_IS_DIAL (dial), NULL);
return dial->adjustment;
}
void
gtk_dial_set_update_policy (GtkDial *dial,
GtkUpdateType policy)
{
g_return_if_fail (dial != NULL);
g_return_if_fail (GTK_IS_DIAL (dial));
dial->policy = policy;
}
void
gtk_dial_set_adjustment (GtkDial *dial,
GtkAdjustment *adjustment)
{
g_return_if_fail (dial != NULL);
g_return_if_fail (GTK_IS_DIAL (dial));
if (dial->adjustment)
{
gtk_signal_disconnect_by_data (GTK_OBJECT (dial->adjustment), (gpointer) dial);
gtk_object_unref (GTK_OBJECT (dial->adjustment));
}
dial->adjustment = adjustment;
gtk_object_ref (GTK_OBJECT (dial->adjustment));
gtk_signal_connect (GTK_OBJECT (adjustment), "changed",
(GtkSignalFunc) gtk_dial_adjustment_changed,
(gpointer) dial);
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
(GtkSignalFunc) gtk_dial_adjustment_value_changed,
(gpointer) dial);
dial->old_value = adjustment->value;
dial->old_lower = adjustment->lower;
dial->old_upper = adjustment->upper;
gtk_dial_update (dial);
}
static void
gtk_dial_realize (GtkWidget *widget)
{
GtkDial *dial;
GdkWindowAttr attributes;
gint attributes_mask;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_DIAL (widget));
GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
dial = GTK_DIAL (widget);
attributes.x = widget->allocation.x;
attributes.y = widget->allocation.y;
attributes.width = widget->allocation.width;
attributes.height = widget->allocation.height;
attributes.wclass = GDK_INPUT_OUTPUT;
attributes.window_type = GDK_WINDOW_CHILD;
attributes.event_mask = gtk_widget_get_events (widget) |
GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK;
attributes.visual = gtk_widget_get_visual (widget);
attributes.colormap = gtk_widget_get_colormap (widget);
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask);
widget->style = gtk_style_attach (widget->style, widget->window);
gdk_window_set_user_data (widget->window, widget);
gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE);
}
static void
gtk_dial_size_request (GtkWidget *widget,
GtkRequisition *requisition)
{
requisition->width = DIAL_DEFAULT_SIZE;
requisition->height = DIAL_DEFAULT_SIZE;
}
static void
gtk_dial_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
GtkDial *dial;
g_return_if_fail (widget != NULL);
g_return_if_fail (GTK_IS_DIAL (widget));
g_return_if_fail (allocation != NULL);
widget->allocation = *allocation;
dial = GTK_DIAL (widget);
if (GTK_WIDGET_REALIZED (widget))
{
gdk_window_move_resize (widget->window,
allocation->x, allocation->y,
allocation->width, allocation->height);
}
dial->radius = MIN(allocation->width,allocation->height) * 0.45;
dial->pointer_width = dial->radius / 5;
}
static gint
gtk_dial_expose (GtkWidget *widget,
GdkEventExpose *event)
{
GtkDial *dial;
GdkPoint points[3];
gdouble s,c;
gdouble theta;
gint xc, yc;
gint tick_length;
gint i;
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_DIAL (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
if (event->count > 0)
return FALSE;
dial = GTK_DIAL (widget);
gdk_window_clear_area (widget->window,
0, 0,
widget->allocation.width,
widget->allocation.height);
xc = widget->allocation.width/2;
yc = widget->allocation.height/2;
/* Draw ticks */
for (i=0; i<25; i++)
{
theta = (i*M_PI/18. - M_PI/6.);
s = sin(theta);
c = cos(theta);
tick_length = (i%6 == 0) ? dial->pointer_width : dial->pointer_width/2;
gdk_draw_line (widget->window,
widget->style->fg_gc[widget->state],
xc + c*(dial->radius - tick_length),
yc - s*(dial->radius - tick_length),
xc + c*dial->radius,
yc - s*dial->radius);
}
/* Draw pointer */
s = sin(dial->angle);
c = cos(dial->angle);
points[0].x = xc + s*dial->pointer_width/2;
points[0].y = yc + c*dial->pointer_width/2;
points[1].x = xc + c*dial->radius;
points[1].y = yc - s*dial->radius;
points[2].x = xc - s*dial->pointer_width/2;
points[2].y = yc - c*dial->pointer_width/2;
gtk_draw_polygon (widget->style,
widget->window,
GTK_STATE_NORMAL,
GTK_SHADOW_OUT,
points, 3,
TRUE);
return FALSE;
}
static gint
gtk_dial_button_press (GtkWidget *widget,
GdkEventButton *event)
{
GtkDial *dial;
gint dx, dy;
double s, c;
double d_parallel;
double d_perpendicular;
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_DIAL (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
dial = GTK_DIAL (widget);
/* Determine if button press was within pointer region - we
do this by computing the parallel and perpendicular distance of
the point where the mouse was pressed from the line passing through
the pointer */
dx = event->x - widget->allocation.width / 2;
dy = widget->allocation.height / 2 - event->y;
s = sin(dial->angle);
c = cos(dial->angle);
d_parallel = s*dy + c*dx;
d_perpendicular = fabs(s*dx - c*dy);
if (!dial->button &&
(d_perpendicular < dial->pointer_width/2) &&
(d_parallel > - dial->pointer_width))
{
gtk_grab_add (widget);
dial->button = event->button;
gtk_dial_update_mouse (dial, event->x, event->y);
}
return FALSE;
}
static gint
gtk_dial_button_release (GtkWidget *widget,
GdkEventButton *event)
{
GtkDial *dial;
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_DIAL (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
dial = GTK_DIAL (widget);
if (dial->button == event->button)
{
gtk_grab_remove (widget);
dial->button = 0;
if (dial->policy == GTK_UPDATE_DELAYED)
gtk_timeout_remove (dial->timer);
if ((dial->policy != GTK_UPDATE_CONTINUOUS) &&
(dial->old_value != dial->adjustment->value))
gtk_signal_emit_by_name (GTK_OBJECT (dial->adjustment), "value_changed");
}
return FALSE;
}
static gint
gtk_dial_motion_notify (GtkWidget *widget,
GdkEventMotion *event)
{
GtkDial *dial;
GdkModifierType mods;
gint x, y, mask;
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_DIAL (widget), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
dial = GTK_DIAL (widget);
if (dial->button != 0)
{
x = event->x;
y = event->y;
if (event->is_hint || (event->window != widget->window))
gdk_window_get_pointer (widget->window, &x, &y, &mods);
switch (dial->button)
{
case 1:
mask = GDK_BUTTON1_MASK;
break;
case 2:
mask = GDK_BUTTON2_MASK;
break;
case 3:
mask = GDK_BUTTON3_MASK;
break;
default:
mask = 0;
break;
}
if (mods & mask)
gtk_dial_update_mouse (dial, x,y);
}
return FALSE;
}
static gint
gtk_dial_timer (GtkDial *dial)
{
g_return_val_if_fail (dial != NULL, FALSE);
g_return_val_if_fail (GTK_IS_DIAL (dial), FALSE);
if (dial->policy == GTK_UPDATE_DELAYED)
gtk_signal_emit_by_name (GTK_OBJECT (dial->adjustment), "value_changed");
return FALSE;
}
static void
gtk_dial_update_mouse (GtkDial *dial, gint x, gint y)
{
gint xc, yc;
gfloat old_value;
g_return_if_fail (dial != NULL);
g_return_if_fail (GTK_IS_DIAL (dial));
xc = GTK_WIDGET(dial)->allocation.width / 2;
yc = GTK_WIDGET(dial)->allocation.height / 2;
old_value = dial->adjustment->value;
dial->angle = atan2(yc-y, x-xc);
if (dial->angle < -M_PI/2.)
dial->angle += 2*M_PI;
if (dial->angle < -M_PI/6)
dial->angle = -M_PI/6;
if (dial->angle > 7.*M_PI/6.)
dial->angle = 7.*M_PI/6.;
dial->adjustment->value = dial->adjustment->lower + (7.*M_PI/6 - dial->angle) *
(dial->adjustment->upper - dial->adjustment->lower) / (4.*M_PI/3.);
if (dial->adjustment->value != old_value)
{
if (dial->policy == GTK_UPDATE_CONTINUOUS)
{
gtk_signal_emit_by_name (GTK_OBJECT (dial->adjustment), "value_changed");
}
else
{
gtk_widget_draw (GTK_WIDGET(dial), NULL);
if (dial->policy == GTK_UPDATE_DELAYED)
{
if (dial->timer)
gtk_timeout_remove (dial->timer);
dial->timer = gtk_timeout_add (SCROLL_DELAY_LENGTH,
(GtkFunction) gtk_dial_timer,
(gpointer) dial);
}
}
}
}
static void
gtk_dial_update (GtkDial *dial)
{
gfloat new_value;
g_return_if_fail (dial != NULL);
g_return_if_fail (GTK_IS_DIAL (dial));
new_value = dial->adjustment->value;
if (new_value < dial->adjustment->lower)
new_value = dial->adjustment->lower;
if (new_value > dial->adjustment->upper)
new_value = dial->adjustment->upper;
if (new_value != dial->adjustment->value)
{
dial->adjustment->value = new_value;
gtk_signal_emit_by_name (GTK_OBJECT (dial->adjustment), "value_changed");
}
dial->angle = 7.*M_PI/6. - (new_value - dial->adjustment->lower) * 4.*M_PI/3. /
(dial->adjustment->upper - dial->adjustment->lower);
gtk_widget_draw (GTK_WIDGET(dial), NULL);
}
static void
gtk_dial_adjustment_changed (GtkAdjustment *adjustment,
gpointer data)
{
GtkDial *dial;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
dial = GTK_DIAL (data);
if ((dial->old_value != adjustment->value) ||
(dial->old_lower != adjustment->lower) ||
(dial->old_upper != adjustment->upper))
{
gtk_dial_update (dial);
dial->old_value = adjustment->value;
dial->old_lower = adjustment->lower;
dial->old_upper = adjustment->upper;
}
}
static void
gtk_dial_adjustment_value_changed (GtkAdjustment *adjustment,
gpointer data)
{
GtkDial *dial;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
dial = GTK_DIAL (data);
if (dial->old_value != adjustment->value)
{
gtk_dial_update (dial);
dial->old_value = adjustment->value;
}
}

View File

@@ -0,0 +1,89 @@
/* GTK - The GIMP Toolkit
* 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.
*/
#ifndef __GTK_DIAL_H__
#define __GTK_DIAL_H__
#include <gdk/gdk.h>
#include <gtk/gtkadjustment.h>
#include <gtk/gtkwidget.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define GTK_DIAL(obj) GTK_CHECK_CAST (obj, gtk_dial_get_type (), GtkDial)
#define GTK_DIAL_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_dial_get_type (), GtkDialClass)
#define GTK_IS_DIAL(obj) GTK_CHECK_TYPE (obj, gtk_dial_get_type ())
typedef struct _GtkDial GtkDial;
typedef struct _GtkDialClass GtkDialClass;
struct _GtkDial
{
GtkWidget widget;
/* update policy (GTK_UPDATE_[CONTINUOUS/DELAYED/DISCONTINUOUS]) */
guint policy : 2;
/* Button currently pressed or 0 if none */
guint8 button;
/* Dimensions of dial components */
gint radius;
gint pointer_width;
/* ID of update timer, or 0 if none */
guint32 timer;
/* Current angle */
gfloat angle;
/* Old values from adjustment stored so we know when something changes */
gfloat old_value;
gfloat old_lower;
gfloat old_upper;
/* The adjustment object that stores the data for this dial */
GtkAdjustment *adjustment;
};
struct _GtkDialClass
{
GtkWidgetClass parent_class;
};
GtkWidget* gtk_dial_new (GtkAdjustment *adjustment);
guint gtk_dial_get_type (void);
GtkAdjustment* gtk_dial_get_adjustment (GtkDial *dial);
void gtk_dial_set_update_policy (GtkDial *dial,
GtkUpdateType policy);
void gtk_dial_set_adjustment (GtkDial *dial,
GtkAdjustment *adjustment);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GTK_DIAL_H__ */

View File

@@ -0,0 +1,8 @@
CC = gcc
helloworld: helloworld.c
$(CC) `gtk-config --cflags` `gtk-config --libs` helloworld.c -o helloworld
clean:
rm -f helloworld

View File

@@ -0,0 +1,97 @@
/* This file extracted from the GTK tutorial. */
/* helloworld.c */
#include <gtk/gtk.h>
/* this is a callback function. the data arguments are ignored in this example.
* More on callbacks below. */
void hello (GtkWidget *widget, gpointer data)
{
g_print ("Hello World\n");
}
gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
{
g_print ("delete event occured\n");
/* if you return FALSE in the "delete_event" signal handler,
* GTK will emit the "destroy" signal. Returning TRUE means
* you don't want the window to be destroyed.
* This is useful for popping up 'are you sure you want to quit ?'
* type dialogs. */
/* Change TRUE to FALSE and the main window will be destroyed with
* a "delete_event". */
return (TRUE);
}
/* another callback */
void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
/* GtkWidget is the storage type for widgets */
GtkWidget *window;
GtkWidget *button;
/* this is called in all GTK applications. arguments are parsed from
* the command line and are returned to the application. */
gtk_init (&argc, &argv);
/* create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/* when the window is given the "delete_event" signal (this is given
* by the window manager (usually the 'close' option, or on the
* titlebar), we ask it to call the delete_event () function
* as defined above. The data passed to the callback
* function is NULL and is ignored in the callback. */
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (delete_event), NULL);
/* here we connect the "destroy" event to a signal handler.
* This event occurs when we call gtk_widget_destroy() on the window,
* or if we return 'FALSE' in the "delete_event" callback. */
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
/* sets the border width of the window. */
gtk_container_border_width (GTK_CONTAINER (window), 10);
/* creates a new button with the label "Hello World". */
button = gtk_button_new_with_label ("Hello World");
/* When the button receives the "clicked" signal, it will call the
* function hello() passing it NULL as it's argument. The hello()
* function is defined above. */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (hello), NULL);
/* This will cause the window to be destroyed by calling
* gtk_widget_destroy(window) when "clicked". Again, the destroy
* signal could come from here, or the window manager. */
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (gtk_widget_destroy),
GTK_OBJECT (window));
/* this packs the button into the window (a gtk container). */
gtk_container_add (GTK_CONTAINER (window), button);
/* the final step is to display this newly created widget... */
gtk_widget_show (button);
/* and the window */
gtk_widget_show (window);
/* all GTK applications must have a gtk_main(). Control ends here
* and waits for an event to occur (like a key press or mouse event). */
gtk_main ();
return 0;
}

View File

@@ -0,0 +1,8 @@
CC = gcc
helloworld2: helloworld2.c
$(CC) `gtk-config --cflags` `gtk-config --libs` helloworld2.c -o helloworld2
clean:
rm -f helloworld2

View File

@@ -0,0 +1,94 @@
/* This file extracted from the GTK tutorial. */
/* helloworld2.c */
#include <gtk/gtk.h>
/* Our new improved callback. The data passed to this function is printed
* to stdout. */
void callback (GtkWidget *widget, gpointer data)
{
g_print ("Hello again - %s was pressed\n", (char *) data);
}
/* another callback */
void delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
/* GtkWidget is the storage type for widgets */
GtkWidget *window;
GtkWidget *button;
GtkWidget *box1;
/* this is called in all GTK applications. arguments are parsed from
* the command line and are returned to the application. */
gtk_init (&argc, &argv);
/* create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/* this is a new call, this just sets the title of our
* new window to "Hello Buttons!" */
gtk_window_set_title (GTK_WINDOW (window), "Hello Buttons!");
/* Here we just set a handler for delete_event that immediately
* exits GTK. */
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (delete_event), NULL);
/* sets the border width of the window. */
gtk_container_border_width (GTK_CONTAINER (window), 10);
/* we create a box to pack widgets into. this is described in detail
* in the "packing" section below. The box is not really visible, it
* is just used as a tool to arrange widgets. */
box1 = gtk_hbox_new(FALSE, 0);
/* put the box into the main window. */
gtk_container_add (GTK_CONTAINER (window), box1);
/* creates a new button with the label "Button 1". */
button = gtk_button_new_with_label ("Button 1");
/* Now when the button is clicked, we call the "callback" function
* with a pointer to "button 1" as it's argument */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback), (gpointer) "button 1");
/* instead of gtk_container_add, we pack this button into the invisible
* box, which has been packed into the window. */
gtk_box_pack_start(GTK_BOX(box1), button, TRUE, TRUE, 0);
/* always remember this step, this tells GTK that our preparation for
* this button is complete, and it can be displayed now. */
gtk_widget_show(button);
/* do these same steps again to create a second button */
button = gtk_button_new_with_label ("Button 2");
/* call the same callback function with a different argument,
* passing a pointer to "button 2" instead. */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback), (gpointer) "button 2");
gtk_box_pack_start(GTK_BOX(box1), button, TRUE, TRUE, 0);
/* The order in which we show the buttons is not really important, but I
* recommend showing the window last, so it all pops up at once. */
gtk_widget_show(button);
gtk_widget_show(box1);
gtk_widget_show (window);
/* rest in gtk_main and wait for the fun to begin! */
gtk_main ();
return 0;
}

8
examples/list/Makefile Normal file
View File

@@ -0,0 +1,8 @@
CC = gcc
list: list.c
$(CC) `gtk-config --cflags` `gtk-config --libs` list.c -o list
clean:
rm -f *.o list

284
examples/list/list.c Normal file
View File

@@ -0,0 +1,284 @@
/* This file extracted from the GTK tutorial. */
/* list.c */
/* include the gtk+ header files
* include stdio.h, we need that for the printf() function
*/
#include <gtk/gtk.h>
#include <stdio.h>
/* this is our data identification string to store
* data in list items
*/
const gchar *list_item_data_key="list_item_data";
/* prototypes for signal handler that we are going to connect
* to the GtkList widget
*/
static void sigh_print_selection (GtkWidget *gtklist,
gpointer func_data);
static void sigh_button_event (GtkWidget *gtklist,
GdkEventButton *event,
GtkWidget *frame);
/* main function to set up the user interface */
gint main (int argc, gchar *argv[])
{
GtkWidget *separator;
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *scrolled_window;
GtkWidget *frame;
GtkWidget *gtklist;
GtkWidget *button;
GtkWidget *list_item;
GList *dlist;
guint i;
gchar buffer[64];
/* initialize gtk+ (and subsequently gdk) */
gtk_init(&argc, &argv);
/* create a window to put all the widgets in
* connect gtk_main_quit() to the "destroy" event of
* the window to handle window manager close-window-events
*/
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "GtkList Example");
gtk_signal_connect(GTK_OBJECT(window),
"destroy",
GTK_SIGNAL_FUNC(gtk_main_quit),
NULL);
/* inside the window we need a box to arrange the widgets
* vertically */
vbox=gtk_vbox_new(FALSE, 5);
gtk_container_border_width(GTK_CONTAINER(vbox), 5);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show(vbox);
/* this is the scolled window to put the GtkList widget inside */
scrolled_window=gtk_scrolled_window_new(NULL, NULL);
gtk_widget_set_usize(scrolled_window, 250, 150);
gtk_container_add(GTK_CONTAINER(vbox), scrolled_window);
gtk_widget_show(scrolled_window);
/* create the GtkList widget
* connect the sigh_print_selection() signal handler
* function to the "selection_changed" signal of the GtkList
* to print out the selected items each time the selection
* has changed */
gtklist=gtk_list_new();
gtk_container_add(GTK_CONTAINER(scrolled_window), gtklist);
gtk_widget_show(gtklist);
gtk_signal_connect(GTK_OBJECT(gtklist),
"selection_changed",
GTK_SIGNAL_FUNC(sigh_print_selection),
NULL);
/* we create a "Prison" to put a list item in ;)
*/
frame=gtk_frame_new("Prison");
gtk_widget_set_usize(frame, 200, 50);
gtk_container_border_width(GTK_CONTAINER(frame), 5);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT);
gtk_container_add(GTK_CONTAINER(vbox), frame);
gtk_widget_show(frame);
/* connect the sigh_button_event() signal handler to the GtkList
* wich will handle the "arresting" of list items
*/
gtk_signal_connect(GTK_OBJECT(gtklist),
"button_release_event",
GTK_SIGNAL_FUNC(sigh_button_event),
frame);
/* create a separator
*/
separator=gtk_hseparator_new();
gtk_container_add(GTK_CONTAINER(vbox), separator);
gtk_widget_show(separator);
/* finaly create a button and connect it´s "clicked" signal
* to the destroyment of the window
*/
button=gtk_button_new_with_label("Close");
gtk_container_add(GTK_CONTAINER(vbox), button);
gtk_widget_show(button);
gtk_signal_connect_object(GTK_OBJECT(button),
"clicked",
GTK_SIGNAL_FUNC(gtk_widget_destroy),
GTK_OBJECT(window));
/* now we create 5 list items, each having it´s own
* label and add them to the GtkList using gtk_container_add()
* also we query the text string from the label and
* associate it with the list_item_data_key for each list item
*/
for (i=0; i<5; i++) {
GtkWidget *label;
gchar *string;
sprintf(buffer, "ListItemContainer with Label #%d", i);
label=gtk_label_new(buffer);
list_item=gtk_list_item_new();
gtk_container_add(GTK_CONTAINER(list_item), label);
gtk_widget_show(label);
gtk_container_add(GTK_CONTAINER(gtklist), list_item);
gtk_widget_show(list_item);
gtk_label_get(GTK_LABEL(label), &string);
gtk_object_set_data(GTK_OBJECT(list_item),
list_item_data_key,
string);
}
/* here, we are creating another 5 labels, this time
* we use gtk_list_item_new_with_label() for the creation
* we can´t query the text string from the label because
* we don´t have the labels pointer and therefore
* we just associate the list_item_data_key of each
* list item with the same text string
* for adding of the list items we put them all into a doubly
* linked list (GList), and then add them by a single call to
* gtk_list_append_items()
* because we use g_list_prepend() to put the items into the
* doubly linked list, their order will be descending (instead
* of ascending when using g_list_append())
*/
dlist=NULL;
for (; i<10; i++) {
sprintf(buffer, "List Item with Label %d", i);
list_item=gtk_list_item_new_with_label(buffer);
dlist=g_list_prepend(dlist, list_item);
gtk_widget_show(list_item);
gtk_object_set_data(GTK_OBJECT(list_item),
list_item_data_key,
"ListItem with integrated Label");
}
gtk_list_append_items(GTK_LIST(gtklist), dlist);
/* finaly we want to see the window, don´t we? ;)
*/
gtk_widget_show(window);
/* fire up the main event loop of gtk
*/
gtk_main();
/* we get here after gtk_main_quit() has been called which
* happens if the main window gets destroyed
*/
return 0;
}
/* this is the signal handler that got connected to button
* press/release events of the GtkList
*/
void
sigh_button_event (GtkWidget *gtklist,
GdkEventButton *event,
GtkWidget *frame)
{
/* we only do something if the third (rightmost mouse button
* was released
*/
if (event->type==GDK_BUTTON_RELEASE &&
event->button==3) {
GList *dlist, *free_list;
GtkWidget *new_prisoner;
/* fetch the currently selected list item which
* will be our next prisoner ;)
*/
dlist=GTK_LIST(gtklist)->selection;
if (dlist)
new_prisoner=GTK_WIDGET(dlist->data);
else
new_prisoner=NULL;
/* look for already prisoned list items, we
* will put them back into the list
* remember to free the doubly linked list that
* gtk_container_children() returns
*/
dlist=gtk_container_children(GTK_CONTAINER(frame));
free_list=dlist;
while (dlist) {
GtkWidget *list_item;
list_item=dlist->data;
gtk_widget_reparent(list_item, gtklist);
dlist=dlist->next;
}
g_list_free(free_list);
/* if we have a new prisoner, remove him from the
* GtkList and put him into the frame "Prison"
* we need to unselect the item before
*/
if (new_prisoner) {
GList static_dlist;
static_dlist.data=new_prisoner;
static_dlist.next=NULL;
static_dlist.prev=NULL;
gtk_list_unselect_child(GTK_LIST(gtklist),
new_prisoner);
gtk_widget_reparent(new_prisoner, frame);
}
}
}
/* this is the signal handler that gets called if GtkList
* emits the "selection_changed" signal
*/
void
sigh_print_selection (GtkWidget *gtklist,
gpointer func_data)
{
GList *dlist;
/* fetch the doubly linked list of selected items
* of the GtkList, remember to treat this as read-only!
*/
dlist=GTK_LIST(gtklist)->selection;
/* if there are no selected items there is nothing more
* to do than just telling the user so
*/
if (!dlist) {
g_print("Selection cleared\n");
return;
}
/* ok, we got a selection and so we print it
*/
g_print("The selection is a ");
/* get the list item from the doubly linked list
* and then query the data associated with list_item_data_key
* we then just print it
*/
while (dlist) {
GtkObject *list_item;
gchar *item_data_string;
list_item=GTK_OBJECT(dlist->data);
item_data_string=gtk_object_get_data(list_item,
list_item_data_key);
g_print("%s ", item_data_string);
dlist=dlist->next;
}
g_print("\n");
}

19
examples/menu/Makefile Normal file
View File

@@ -0,0 +1,19 @@
CC = gcc
all: menu menufactory
menu: menu.c
$(CC) `gtk-config --cflags` `gtk-config --libs` menu.c -o menu
menufactory: menufactory.o mfmain.o
$(CC) `gtk-config --libs` menufactory.o mfmain.o -o menufactory
menufactory.o: menufactory.c mfmain.h
$(CC) `gtk-config --cflags` -c menufactory.c -o menufactory.o
mfmain.o: mfmain.c mfmain.h menufactory.h
$(CC) `gtk-config --cflags` -c mfmain.c -o mfmain.o
clean:
rm -f *.o menu menufactory

134
examples/menu/menu.c Normal file
View File

@@ -0,0 +1,134 @@
/* This file extracted from the GTK tutorial. */
/* menu.c */
#include <gtk/gtk.h>
static gint button_press (GtkWidget *, GdkEvent *);
static void menuitem_response (gchar *);
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *menu;
GtkWidget *menu_bar;
GtkWidget *root_menu;
GtkWidget *menu_items;
GtkWidget *vbox;
GtkWidget *button;
char buf[128];
int i;
gtk_init (&argc, &argv);
/* create a new window */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize( GTK_WIDGET (window), 200, 100);
gtk_window_set_title(GTK_WINDOW (window), "GTK Menu Test");
gtk_signal_connect(GTK_OBJECT (window), "delete_event",
(GtkSignalFunc) gtk_exit, NULL);
/* Init the menu-widget, and remember -- never
* gtk_show_widget() the menu widget!!
* This is the menu that holds the menu items, the one that
* will pop up when you click on the "Root Menu" in the app */
menu = gtk_menu_new();
/* Next we make a little loop that makes three menu-entries for "test-menu".
* Notice the call to gtk_menu_append. Here we are adding a list of
* menu items to our menu. Normally, we'd also catch the "clicked"
* signal on each of the menu items and setup a callback for it,
* but it's omitted here to save space. */
for(i = 0; i < 3; i++)
{
/* Copy the names to the buf. */
sprintf(buf, "Test-undermenu - %d", i);
/* Create a new menu-item with a name... */
menu_items = gtk_menu_item_new_with_label(buf);
/* ...and add it to the menu. */
gtk_menu_append(GTK_MENU (menu), menu_items);
/* Do something interesting when the menuitem is selected */
gtk_signal_connect_object(GTK_OBJECT(menu_items), "activate",
GTK_SIGNAL_FUNC(menuitem_response), (gpointer) g_strdup(buf));
/* Show the widget */
gtk_widget_show(menu_items);
}
/* This is the root menu, and will be the label
* displayed on the menu bar. There won't be a signal handler attached,
* as it only pops up the rest of the menu when pressed. */
root_menu = gtk_menu_item_new_with_label("Root Menu");
gtk_widget_show(root_menu);
/* Now we specify that we want our newly created "menu" to be the menu
* for the "root menu" */
gtk_menu_item_set_submenu(GTK_MENU_ITEM (root_menu), menu);
/* A vbox to put a menu and a button in: */
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show(vbox);
/* Create a menu-bar to hold the menus and add it to our main window */
menu_bar = gtk_menu_bar_new();
gtk_box_pack_start(GTK_BOX(vbox), menu_bar, FALSE, FALSE, 2);
gtk_widget_show(menu_bar);
/* Create a button to which to attach menu as a popup */
button = gtk_button_new_with_label("press me");
gtk_signal_connect_object(GTK_OBJECT(button), "event",
GTK_SIGNAL_FUNC (button_press), GTK_OBJECT(menu));
gtk_box_pack_end(GTK_BOX(vbox), button, TRUE, TRUE, 2);
gtk_widget_show(button);
/* And finally we append the menu-item to the menu-bar -- this is the
* "root" menu-item I have been raving about =) */
gtk_menu_bar_append(GTK_MENU_BAR (menu_bar), root_menu);
/* always display the window as the last step so it all splashes on
* the screen at once. */
gtk_widget_show(window);
gtk_main ();
return 0;
}
/* Respond to a button-press by posting a menu passed in as widget.
*
* Note that the "widget" argument is the menu being posted, NOT
* the button that was pressed.
*/
static gint button_press (GtkWidget *widget, GdkEvent *event)
{
if (event->type == GDK_BUTTON_PRESS) {
GdkEventButton *bevent = (GdkEventButton *) event;
gtk_menu_popup (GTK_MENU(widget), NULL, NULL, NULL, NULL,
bevent->button, bevent->time);
/* Tell calling code that we have handled this event; the buck
* stops here. */
return TRUE;
}
/* Tell calling code that we have not handled this event; pass it on. */
return FALSE;
}
/* Print a string when a menu item is selected */
static void menuitem_response (gchar *string)
{
printf("%s\n", string);
}

View File

@@ -0,0 +1,54 @@
/* example-start menu menufactory.c */
#include <gtk/gtk.h>
#include <strings.h>
#include "mfmain.h"
static void print_hello(GtkWidget *widget, gpointer data);
/* this is the GtkMenuEntry structure used to create new menus. The
* first member is the menu definition string. The second, the
* default accelerator key used to access this menu function with
* the keyboard. The third is the callback function to call when
* this menu item is selected (by the accelerator key, or with the
* mouse.) The last member is the data to pass to your callback function.
*/
static GtkMenuEntry menu_items[] =
{
{"<Main>/File/New", "<control>N", print_hello, NULL},
{"<Main>/File/Open", "<control>O", print_hello, NULL},
{"<Main>/File/Save", "<control>S", print_hello, NULL},
{"<Main>/File/Save as", NULL, NULL, NULL},
{"<Main>/File/<separator>", NULL, NULL, NULL},
{"<Main>/File/Quit", "<control>Q", file_quit_cmd_callback, "OK, I'll quit"},
{"<Main>/Options/Test", NULL, NULL, NULL}
};
static void
print_hello(GtkWidget *widget, gpointer data)
{
printf("hello!\n");
}
void get_main_menu(GtkWidget *window, GtkWidget ** menubar)
{
int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
GtkMenuFactory *factory;
GtkMenuFactory *subfactory;
factory = gtk_menu_factory_new(GTK_MENU_FACTORY_MENU_BAR);
subfactory = gtk_menu_factory_new(GTK_MENU_FACTORY_MENU_BAR);
gtk_menu_factory_add_subfactory(factory, subfactory, "<Main>");
gtk_menu_factory_add_entries(factory, menu_items, nmenu_items);
gtk_window_add_accelerator_table(GTK_WINDOW(window), subfactory->table);
if (menubar)
*menubar = subfactory->widget;
}
/* example-end */

View File

@@ -0,0 +1,18 @@
/* example-start menu menufactory.h */
#ifndef __MENUFACTORY_H__
#define __MENUFACTORY_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
void get_main_menu (GtkWidget *, GtkWidget **menubar);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __MENUFACTORY_H__ */
/* example-end */

48
examples/menu/mfmain.c Normal file
View File

@@ -0,0 +1,48 @@
/* example-start menu mfmain.c */
#include <gtk/gtk.h>
#include "mfmain.h"
#include "menufactory.h"
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *main_vbox;
GtkWidget *menubar;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC(file_quit_cmd_callback),
"WM destroy");
gtk_window_set_title(GTK_WINDOW(window), "Menu Factory");
gtk_widget_set_usize(GTK_WIDGET(window), 300, 200);
main_vbox = gtk_vbox_new(FALSE, 1);
gtk_container_border_width(GTK_CONTAINER(main_vbox), 1);
gtk_container_add(GTK_CONTAINER(window), main_vbox);
gtk_widget_show(main_vbox);
get_main_menu(window, &menubar);
gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, TRUE, 0);
gtk_widget_show(menubar);
gtk_widget_show(window);
gtk_main();
return(0);
}
/* This is just to demonstrate how callbacks work when using the
* menufactory. Often, people put all the callbacks from the menus
* in a separate file, and then have them call the appropriate functions
* from there. Keeps it more organized. */
void file_quit_cmd_callback (GtkWidget *widget, gpointer data)
{
g_print ("%s\n", (char *) data);
gtk_exit(0);
}
/* example-end */

Some files were not shown because too many files have changed in this diff Show More