Commit Graph

581 Commits

Author SHA1 Message Date
Havoc Pennington
9ae724bf4d Remove all references to offscreen flag which was no longer used.
Thu Jun  1 23:05:13 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c: Remove all references to
	offscreen flag which was no longer used.

	* gtk/gtkprivate.h (enum): Remove unused flags and compress.

	* gtk/gtkframe.c (gtk_frame_set_label_widget): Check
	for non-null label_widget->parent.

	* gtk/gtkentry.c: Get rid of code to deal with PangoAttribute
	which no longer was used.

	* gdk/gdkpango.c (gdk_pango_context_get_info): make static.

	* gdk/gdkpango.c (gdk_draw_layout[_line]): Add checks
	for null arguments.

	* gdk/x11/gdkgeometry-x11.c (gdk_window_scroll): add
	check for destroyed windows.

Thu Jun  1 13:48:45 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimmulticontext.c: Add a finalize method and unref
	the slave context there.

	* gtk/gtkinvisible.[ch]: Make reference counting behavior
	identical to GtkWindow.

Thu Jun  1 01:54:11 2000  Owen Taylor  <otaylor@redhat.com>

	* Makefile.am gdk/gdkpango.c: Copy the layout render function from
	pangox to here, so we can write them independent of rendering
	system, using GDK primitives.

	* gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkwindow.c
	gdk/x11/gdkdrawable-x11.c: Remove draw_layout() from the vtable,
	since we have a rendering-system independent implementation in
	terms of draw_glyphs().

	* gdk/gdkpango.c gdkdrawable.h (gdk_draw_layout_line): New
	function to render a single line.

	* gdk/x11/gdkpango.c: Move the guts of this file mostly
	into ../gdkpango.c, which simplifies things, since we
	don't have to deal with raw X gc's.

Fri May 19 04:28:16 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.[ch]: Add get_log_attrs() function to
	get the logical attributes for a given GtkTextLine.

Tue May 30 16:05:39 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Track
	g_locale_get_codeset() to g_get_codeset() change.

Tue May 30 15:03:19 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testcalendar.c (calendar_font_selection_ok): Use font
	descriptions.

	* gtk/gtkentry.c (gtk_entry_draw_text): Center text within
	the entry.

	* gtk/gtkfontsel.c (gtk_font_selection_dialog_init): Start of
	redoing (vastly simplifying) for Pango. Still needs quite
	a bit of work. (Size selection is currently poor. List of
	predefined sizes is not a good idea, since all of these
	sizes won't necessarily be distinct.)

Tue May 30 13:50:19 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Handle
	CODESET results for LANG=C.

Mon May 29 15:49:10 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.[ch]: Add a 'font_name' declaration to RC
	which takes a stringized pango font description;
	ignore the older 'font' and 'fontset' declarations.

	* gtk/gtkstyle.c gtk/gtkrc.c: Fill in the style->font
	field with a GdkFont derived via gdk_font_from_description(),
	for compatibility. (Should we just remove it entirely?
	Probably too much compatibility breakage, but people
	should be migrating to the new Pango stuff as quickly
	as possible.)

Mon May 29 15:47:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c gtk/gtkclist.c: s/pango_font_unref/g_object_unref/.

Mon May 29 15:44:46 2000  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkcalender.c: Roughly pango-ized. Really needs
	redoing; there are some bugs in size allocation right
	now, the semi-existant distinction between header / day
	fonts was removed, but, with Pango, could actually
	be made functional in a nice way.

	* gtk/testcalender: Move calender from examples into this
	directory as a test program. (We really need to restrcture
	testgtk into a whole directory full of tests for every
	widget or functionality group, separated into multiple .c
	files.)

Mon May 29 15:19:56 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (file_exists): Fix stupid typo that
	was keeping RC file from being loaded.

	* gtk/testgtkrc gtk/testgtkrc2: Test new pango-ized
	RC file font code.

Mon May 29 14:31:27 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkfont.h gdk/x11/gdkfont-x11.c (gdk_font_from_description):
	Add function to load a GdkFont from a PangoFontDescription.

Fri May 26 17:16:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/frame.[ch] gtkaspectframe.c: Make frame widgets able
	to have any widget for the label, use a GtkLabel widget
	to display the text. (Based partially on a patch from
	Anders Carlson.)

	(Quite a bit of code reorganization - strip 90% of the
	guts out of gtkaspectframe and add a single virtual
	func to GtkFrameClass - compute_child_allocation.)

Fri May 26 12:00:02 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkctree.c gtk/gtkclist.[ch]: Pangoized.
	(Removed clist->row_center_offset field because caching
	it wasn't saving time or code, added private function
	_gtk_clist_create_cell_layout()).

Wed May 24 15:59:37 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkaccellabel.c: Pangoized.

	* gtk/[hv]ruler.c: Pangoized

Mon May 22 19:23:59 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (gtk_file_selection_init):
	Use gtk_clist_set_column_auto_resize() to remove need
	need for manual column width computations.

Mon May 22 18:50:26 2000  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktooltips.[ch]: Replace custom drawing with a GtkLabel,
	ensuring Pango correctness, and considerably simplifying the
	code.

	* gtk/gtklabel.c gtk[hv]scale.c: 1000 => PANGO_SCALE.

	* gtk/gtklabel.c (gtk_label_size_request): Fixed incorrect
	getting of numbers of lines.

	* gtk/gtklabel.c (gtk_label_size_request): Set the requisition
	to the actual requested width of the lable, not to the wrap
	width we set.

	* gtk/gtktextchild.h: Remove extraneous include of gtk/gtk.h.

	* gtk/gtktextbtree.c gtk/gtktextbuffer.c gtk/gtktextlayout.c
	  gtk/gtktextview.c gtk/gtktextview.[ch]: Fix up includes.

	* gtk/gtktextview.c: Fix structure inheritance.

	* gtk/gtkprogressbar.c: Pangoize.

Mon May 22 15:47:30 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextview.c (gtk_text_view_get_first_para_iter): Encapsulate
	in a function.

	* gtk/gtktextlayout.c (find_display_line_above): Fixed
	bug with computing line tops.

	* gtk/gtktextview.c (changed_handler): Fix < , <= confusion.

Thu May 18 18:53:31 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix up the x_offset
	and y_offset coordinates to do what we need now. (The offset between
	buffer and layout coordinates has been reintroduced, but is a
	bit different than before.)

	* gtk/gtktextview.[ch]: No longer inherit from GtkLayout; instead
	handle the adjustments ourselves, and scroll as necessary using
	the new gdk_window_scroll().

	The advantage of this is that when we are incrementally revalidating,
	we are essentially rearranging things around the visible portion
	of the screen. With the old setup, the visible portion of the
	screen was moved around in the layout, so scrolling and redrawing
	to track that caused jumping of the display. Since we now
	control the scrolling ourselves, we can suppress this and
	only redraw when things actually change.

Thu May 18 18:47:25 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextbtree.c (redisplay_mark): We need to invalidate
	the region not just redisplay it after-all, since we store the
	cursors in the LineDisplay. (Ugly interactions here between
	GtkLayout and GtkTextBTree here.)

	* gtk/gtktextbtree.c (redisplay_region): Fixed reversed comparison.

Thu May 18 18:43:21 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.h gdk/x11/gdkgeometry-x11.c (gdk_window_scroll):
	Added function to scroll contents of a window while keeping the
	window constant. Works by XCopyArea or guffaw-scrolling depending
	on the details of how the window is set up. (guffaw-scrolling
	still needs to be filled in.)

Wed May 17 22:36:53 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextiter.c gtk/gtkmain.c: Add a debug key for the text widget,
	move the debugging that was tied to a global variable
	to that.

	* gtk/gtkmarshal.list: Add NONE:INT,INT,INT

	* gtk/gtktextbtree.[ch] gtk/gtktextlayout.c: Keep a separate
	validated flag, in line data instead of setting height/width to
	-1. This allows us to perform operations with partially invalid
	buffer (using the old size for invalid lines) and thus to do
	incremental vaidation. Keep height/width aggregates up to date
	when deleting text and rebalancing the tree.

	* gtk/gtktextbtree.[ch]: Add functions validate a line
	(gtk_text_btree_validate_line), and to validate up
	to a number of pixels (gtk_text_btree_validate).

	* gtk/gtktextlayout.[ch]: Add an ::invalidated signal
	that indicates that something is changed and a revalidation
	pass is needed. Change ::need_repaint to ::changed, and
	make it take old and new yranges instead of a rectangle.

	* gtk/gtktextbtree.[ch] gtk/gtktextlayout.[ch]: Move
	the line_data_destroy() function from
	gtk_text_btree_add_view() to a virtual function in
	GtkTextLayout

	* gtk/gtktextbtree.[ch]: Remove gtk_text_btree_get_damage_range(),
	since we are handling partial repaints in a different fashion
	now.

	* gtk/gtktextbtree.[ch]: Only repaint the changed portion
	of the selection instead of queueing a repaint on the
	entire widget.

	* gtk/gtktextbuffer.[ch] gtk/gtktextbtree.[ch]: Move
	get_selection_bounds() down to btree, make the function
	in buffer a wrapper around the btree function.

	* gtk/gtktextlayout.[ch]: Add functions to check if the
	layout is valid and to recompute either a range of pixels
	aroudn a line or a certain total number of pixels.

	* gtk/gtktextlayout.[ch]: Cache a single line display;
	now that we only redraw the needed portions, the hit rate
	for this cache is quite high.

	* gtk/gtktextview.[ch]: Keep track of the first paragraph
	on the screen so that when re-laying-out the buffer, we can
	keep the same place. This requires connecting to ::value_changed
	on the adjustments

	* gtk/gtktextview.[ch]: Add idle functions to revalidate
	the buffer after we receive an ::invalidated signal.

Wed May 17 22:10:47 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_size_allocate): Set upper
	to max of allocation and layout size, not just to the
	layout size.

	* gtk/gtk[hv]scrollbar.c (gtk_[hv]scrollbar_calc_slider_size):
	Invalidate window so it gets redrawn properly.

	* gdk/gdkwindow.c (gdk_window_invalidate_rect): Allow rect == NULL
	to mean the entire window.

	* gdk/gdkevents.h: Move definition for GDK_PRIORITY_REDRAW
	into public header.

Mon May 15 14:51:31 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextmark.c (gtk_text_mark_get_name): Add function
	to get the name of a mark.

	* gtk/gtktextlayout.c (gtk_text_layout_get_line_at_y): Add a function
	to find the paragraph from a y position.

Thu May 11 12:57:20 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_btree_node_invalidate_upward): Valid
	nodes have width/height >= 0, not > 0.

Tue May  9 21:29:06 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c (gtk_text_layout_get_line_display):
	Add a size_only flag, so when we only need the size, we don't create
	useless appearance attributes.

	* gtk/gtktextview.c (gtk_text_view_ensure_layout): Remove
	duplicate setting of font description.

	* gtk/gtkscale.c: Use PANGO_SCALE instead of 1000

Wed Apr 26 01:53:23 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (EXTRA_DIST): Add OLD_STAMP into
	EXTRA_DIST. It does not work well when the file that
	everything depends on is not in the tarball.

Wed Apr 26 00:56:14 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c: Some hacks and fixes so that it basically
	works when not sitting in the GTK+ build tree.

2000-05-03  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_line_next_could_contain_tag):
	Properly determine the ordering of the tag root and the current
	line within the tree. Previous algorithm only worked if the tag
	root's immediate parent was the common root of both the current
	line and the tag root.

Wed Apr 26 00:43:00 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c (set_para_values): Fix some bugs in
	alignment.

	* gtk/gtktextview.c (gtk_text_view_ensure_layout): Track
	the widget text directional dynamically.

	* gtk/gtktextview.[ch]: Added functions to get and set default
	wrap mode.

Tue Apr 25 23:47:38 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c (gtk_text_layout_get_iter_location): Fix bug
	in cursor location computation.

Tue Apr 25 23:22:59 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_set_size): Clamp hadjustment/
	vadjusment values properly when layout gets smaller.

	* gtk/gtktextview.c (need_repaint_handler): Areas being
	passed in are far completely inaccurate, and sometimes
	too small, so, for now, just queue a redraw on the
	whole visible region.

2000-04-25  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (summary_destroy): new function to
	destroy tag summary nodes
	(gtk_text_line_next_could_contain_tag): this function was
	totally broken if the line passed in wasn't below the tag
	root. Fix it.
	(gtk_text_btree_first_could_contain_tag): In the tag == NULL
	"wildcard" case, we have to do a linear scan. Blah.
	(gtk_text_btree_last_could_contain_tag): In tag == NULL case,
	we have to do the linear scan
	(tag_removed_cb): When a tag is removed from the tag table,
	remove the GtkTextTagInfo node from the btree.
	(gtk_text_btree_spew): Implement the spew function, for
	our debugging pleasure.

Tue Apr 25 19:40:18 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextlayout.c (gtk_text_layout_set_buffer): Fix
	a problem with referring to the wrong buffer.

	* gtk/gtkentry.c: Fix focus-in/focus-out confusion.

	* gtk/gtkrc.c gtk/gtkstyle.c: Moving setting default
	font description to gtk_style_new() - otherwise things
	don't work without a .gtkrc file.

	* gtk/gtktextbuffer.c (gtk_text_buffer_new): Sink the
	tags table if we create it ourself, too.

	* gdk/gdktypes.h (enum): Move GDK_RELEASE_MASK, since
	it was conflicting with XKB modifiers.

	* gtk/gtktextview.[ch]: Add simple support for
	GtkIMContext.

Mon Apr 24 19:34:18 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_move_cursor_visually): Fix problem
	with deletion from last commit.

Mon Apr 24 19:29:40 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_create_pango_context): Set the language
	in the context from the current locale.

	* gtk/gtkentry.c (gtk_entry_size_request): Use language from the
	context, not hardcoded value.

	* gtk/gtkentry.c (gtk_entry_move_cursor): Make character movement visual,
	not logical.

Sun Apr 23 23:39:18 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c gtk/gtktextdisplay.c: Don't handle selections as
	attributes - that doesn't handle partial-glyph selection
	properly. Instead use new pango_layout_line_get_x_ranges()
	functionality to draw the selection.

	* gtk/gtkentry.c: Simplify code since pango_layout_line_index_to_x()
	now properly handles out-of-range coordinates.

	* gtk/gtktextbuffer.c: Emit "mark_set" when the cursor is moved.

	* gtk/gtktextiter.h gtk/gtktextiterprivate.h: Make gtk_text_iter_get_line_byte()
	public.

	* gtk/gtktextlayout.[ch]: Properly set the direction in the PangoContext
	for paragraphs opposite to the base direction of the widget.

	* gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c: Fixes for alignment.

	* gtk/gtktextlayout.c: Don't split segments on marks, since that
	causes Arabic words to reshape as you cursor through.

	* gtk/gtktextlayout.[ch] gtk/gtktextview.[ch]: Implement virtual
	cursor position when moving vertically with the arrow keys and
	scrolling with page-up/page-down. (Arrow keys save only the X,
	scrolling saves both X and Y.)

	This means you can line-up / line-down or page-up / page-down
	without losing your place, and also that moving vertically
	with the cursor keys keeps the same X position, not the same
	character count:

	* gtk/gtktextlayout.[ch] gtk/gtktextview.[ch]: Make vertical
	arrow keys move by display lines, not paragraphs.

Tue Apr 18 14:16:50 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c: Make sure that the bin window is at least
	as big as the allocation. (Should we also make sure that the
	bin window is big enough to completely cover widget->window?)

	* gtk/gtktextview.c (gtk_text_view_get_visible_rect): Add
	function to get the onscreen rectangle.

	* gdk/x11/gdkwindow-x11.c (gdk_window_get_pointer): Correctly account
	for offsets in window coordinates.

Sun Apr 16 16:13:27 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_get_cursor_locations): Fix index/offset
	confusion.

	* gtk/gtktextview.c (gtk_text_view_ensure_layout): Set the default direction
	from the widget direction.

	* gtk/gtktexttag.c gtk/gtktexttagprivate.h (gtk_text_tag_set_arg):
	Add a "direction" attribute.

	* gtk/gtktextview.c: global s/tkxt/text_view/.

	* gtk/testtext.c: Added long block of text in Arabic, to test out
	the direction attributes. (Some problems with the shaping system
	for arabic become obvious - like the fact the cursor splits words
	into unjoined pieces.)

Fri Apr 14 12:54:34 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktextdisplay.c (render_layout): Add overstrike handling.

	* gtk/gtktextlayout.c: Fix up alignment.

	* gtk/testtext.c: Add some tests for centering, wrapping.

Fri Apr 14 09:26:22 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkwindow.c gdk/x11/gdkdrawable-x11.c:
	Add a draw_glyphs() operation to the drawable vtable and gdk_draw_glyphs().
	If we wrote GTK+-specific layout-render function this could just replace
	the draw_layout() operation in the vtable.

	* gtk/gtkentry.c: Move guts of gtk_entry_get_cursor_locations to
	pango_layout_get_cursor_pos() and use that function.

	* gtk/gtktextchild.[ch]: add gtk_ onto pixmap_segment_new(), since it
	is a non-static symbol.

	* gtk/gtktextbtree.[ch]: Replace gtk_text_btree_find_line_data_by_y()
	with gtk_text_btree_find_line_by_y()

	* gtk/gtktextdisplay.c: Rewrote for Pango - uses a custom layout
	renderer that handles GtkTextAppearance attributes.

	* gtk/gtktexttag.[ch] gtk/gtktexttagprivate.h:

	  - Move the values in the style that don't affect geometry into a
	    GtkTextAppearance structure.
	  - Change underline to take a PangoUnderline and "font" a string
	    representation of a font description
	  - Add a "font_desc" attribute which takes a FontDescription structure.

	* gtk/gtktextlayout.[ch]:

	  - Get rid of the display-line list per each line. Instead, we
	    generate, on demand, a GtkTextLineDisplay structure which]
	    contains a PangoLayout * and other necesary information
	    (offsets, cursor locations) for displaying a paragraph.
	  - Get rid of the code to wrap lines, create display chunks,
	    etc. Instead, we just go through a paragraph and convert
	    it into the necessary inputs to a PangoLayout.
	  - Implement a new attribute type, GtkTextAttrAppearance. This
	    holds a GtkTextAppearance, and is used to pass colors,
	    stipple, etc, through from the layout to the display without
	    having to use lots and lots of individual attributes.
	  - Reimplement gtk_layout_get_iter_at_pixel() gtk_layout_get_iter_pos()
	    in terms of PangoLayout functions.

	* gtk/gtktextview.c:

	  - Handle passing the necessary PangoContext to the layout
	  - Some fixups in painting to deal with the automatic backing store
	    and offsetting of GTK+-1.4
	  - Add a style_set handler so that the default style reacts
	    properly to theme changes.

	* gtk/gtktext?*.[ch]: Random code-style fixes.

	* gtk/testtext.c: Substitute in languages that Pango handles now for Thai

Mon Apr 10 10:33:45 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext?*.[ch]: Check in Havoc's port of the Tk text widget,
	in original form preparatory to Pango-ization and gdkimcontext-ization.

Thu Apr  6 19:25:39 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimcontext.c: Move default implementations to real_* vfuncs,
	so that we can derive from gtkimcontext in language bindings properly.

Thu Apr  6 16:02:52 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimcontextsimple.[ch]: Use gdk_keyval_to_unicode to gdk_unicode_to_keyval.
	Add a compose table including (almost) all the compose combinations
	from X. This is 6k of static, shared data as opposed to 50k or so of dynamic
	data in the XIM implementation.

	* gdk/gdk.h gdk/gdkkeyuni.c gdk/win32/gdkevents-win32.c (gdk_keyval_to_unicode, gdk_unicode_to_keyval):
	Moved functions to convert keyvalues from and to unicode here from
	the win32 port and made them public.

Wed Apr  5 16:37:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkeditable.c (gtk_editable_insert_text): Allow new_text_length == -1.

Wed Apr  5 16:27:45 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimcontext.[ch]: Base class for new input context system

	* gtk/gtkimmulticontext.[ch]: Proxy input context that allows
	the real input context implementation to be loaded from modules
	and switched on the fly.

	* gtk/gtkcontextsimple.[ch]: Simple implementation of an input
	context that just does direct keysymbol => unicode translation.

	* gtk/gtkentry.[ch]: Start switching editing over to using
	GtkInputContext. (No handling of preedit yet.)

Wed Apr  5 15:48:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktypeutils.h (GTK_CHECK_GET_CLASS): Fix problem with one too
	many substitutions. (klass should not be subsituted.)

Wed Apr  5 00:18:14 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in: Add checks for Pango

	* configure.in docs/Makefile.am: Add test for sgml2html
	and allow 'make dist' without building html, but print out
	warnings in that case. (For making snapshots)

	* gdk/Makefile.am gdk/x11/Makefile.am gtk/Makefile.am:
	Add Pango libraries and C flags

	* gdk/gdkdraw.c gdk/gdkdrawable.h gdkwindow.c gdk/x11/gdkdrawable-x11.c:
	Add function (gdk_draw_layout) to draw a pango layout.

	* gdk/gdkpango.h gdk/x11/gdkpango-x11.c: New file with functions
	for getting Pango contexts for GDK.

	* gtk/gtkeditable.c: Get rid of dead code gtk_editable_parent_set()

	* gtk/gtkentry.[ch]: Complete rewrite to use Pango, add bidirectional
	editing.

	* gtk/gtkentry.c: Hack in simple Hebrew input with direct
	keysym => unicode translations. More languages can be added
	here, but real input-method support is needed.

	* docs/Changes-1.4.txt: Added note about entry behavior.

	* gtk/gtkenums.h gtk/gtkwidget.[ch] testgtk.c gtkprivate.h: Add functions
	to set the reading direction for a widget and the global direction.
	Add test which allows toggling the global direction. Two private
	flags are used to store the direction. (GTK_DIRECTION_SET + GTK_DIRECTION_LTR)

	* gtk/gtkcheckbutton.c gtk/gtkframe.c gtk/gtkhbbox.c gtk/gtkhbox.c
	  gtk/gtkradiobutton.c gtk/gtkspinbutton.c gtk/gtktable.c

	* gtk/gtk[hv]scale.c gtk/gtkscale.[ch]: Draw numbers using Pango

	* gtk/gtklabel.[ch]: Moved to Pango and considerably rewritten. Line breaking,
	underlining now handled by Pango.

	* gtk/gtkstyle.[ch] gtk/gtkrc.[ch]: Add a PangoFontDescription
	to RCStyle and Style. (Having both this and the old font name and GdkFont
	is temporary.)

	* gtk/gtkwidget.[ch] (gtk_widget_create_pango_{context,layout}): Added
	convenience functions for creating contexts and layouts for widgets.

	* gtk/testgtk.c: Enhance label tests with multilingual labels.
2000-06-02 03:14:07 +00:00
Owen Taylor
b9d4205044 Patch from David Santiago <mrcooger@cyberverse.com> to change things so
Wed May 17 10:52:12 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c: Patch from David Santiago
	<mrcooger@cyberverse.com> to change things so that the
	indicator of the active palette entry is done independently,
	not via the focus, since it should always be visible.
2000-05-17 14:56:11 +00:00
Owen Taylor
386ae20970 A bit of editing.
Fri May 12 18:46:51 2000  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-1.4.txt: A bit of editing.

	* gdk/gdkwindow.c (_gdk_window_clear_update_area)
	* gdk/x11/gdkwindow-x11.c (gdk_window_hide): Add a function
	to clear the update area for the window, and clear it
	when hiding a window.

	* gdk/gdkwindow.c (gdk_window_begin_paint_region): Ignore
	if window destroyed.

	* gdk/gdkwindow.c (gdk_window_end_paint): Likewise.

	* gdk/gdkwindow.c gdk/x11/gdkwindow-x11.c gdk/gdkinternals.h: Move
	gdk_window_destroy() to the generic code, since there was a lot of
	window-system-independent logic it in. Add a function:

	 _gdk_window_destroy()

	to the internal API to destroy a window without unreferencing it.
	Add a function:

	 _gdk_windowing_window_destroy()

	That does the windowing-system-dependent part of destroying
	the window.

Fri May 12 11:07:41 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c: Fix various memory leaks of pixmaps.

Fri May 12 11:06:10 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c docs/Changes-1.4.txt (gtk_widget_shape_combine_mask):
	Make gtk_widget_shape_combine_mask() keep a reference count on
	the pixmap since it keeps it around.

Fri May 12 10:53:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkwindow.c (gdk_window_process_updates_internal): Fix refcount
	leak.

	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Fix refcount
	leak with event filters.

Thu May 11 14:29:44 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_dest_set_internal): Remove the
	signal handlers with the right data arguments. (Fixes
	some warnings when a widget was repeatedly set as a drag
	destination.)

	* gdk/x11/gdkdnd-x11.c (gdk_window_register_dnd): Set data on the
	window so we can avoid avoid setting the DND properties on the
	toplevel window repeatedly.
2000-05-15 16:09:53 +00:00
Tim Janik
9595c55184 documented necessary changes for 1.4 transition.
Fri May 12 17:13:32 2000  Tim Janik  <timj@gtk.org>

	* docs/Changes-1.4.txt: documented necessary changes for 1.4 transition.

	* gtk/gtktext.c: made the adjustments no-construct args, simply
	provide default adjustments.
	(gtk_text_destroy): release adjustments.

	* gtk/gtkprogressbar.c (gtk_progress_bar_class_init): made the
	adjustment argument non-construct.

	* gtk/gtkprogress.c (gtk_progress_destroy): release adjustment here,
	instead of in finalize.
	(gtk_progress_get_text_from_value):
	(gtk_progress_get_current_text):
	(gtk_progress_set_value):
	(gtk_progress_get_percentage_from_value):
	(gtk_progress_get_current_percentage):
	(gtk_progress_set_percentage):
	(gtk_progress_configure): ensure an adjustment is present.

Thu May 11 01:24:08 2000  Tim Janik  <timj@gtk.org>

	* gtk/gtkcolorsel.[hc]:
	* gtk/gtkcolorseldialog.[hc]:
	* gtk/gtkhsv.[hc]: major code cleanups, destroy handlers need to chain
	their parent implementation, use bit fields for boolean values, don't
	create unused widgets, usage of glib types, braces go on their own
	lines, function argument alignment, #include directives etc. etc. etc..

	* gtk/Makefile.am (gtk_public_h_sources): install gtkhsv.h.

Wed May 10 23:29:52 2000  Tim Janik  <timj@gtk.org>

	* gtk/gtktoolbar.c (gtk_toolbar_destroy): don't unref a NULL tooltips.

	* gtk/gtkfilesel.c (gtk_file_selection_destroy): don't free a cmpl_state
	of NULL.

	* gtk/gtkcombo.c (gtk_combo_item_destroy): don#t keep references
	to freed data.
	(gtk_combo_destroy): don't keep a pointer to a destroyed window.

	* gtk/gtkmenu.c (gtk_menu_init): reset the menu's toplevel pointer
	to NULL when the toplevel is getting destroyed.
	(gtk_menu_set_tearoff_state): same here for the tearoff_window.
	(gtk_menu_destroy):
	(gtk_menu_init): store the information of whether we have to
	readd the initial child ref_count during destruction in a new
	GtkMenu field needs_destruction_ref_count.

	* gtk/gtkviewport.c: SHAME! ok this one is tricky, so i note it
	here, those reading: learn from my mistake! ;)
	in order for set_?adjustment to support a default adjustemnt if
	invoked with an adjustment pointer of NULL, the code read (pseudo):
	if (v->adjustment) unref (v->adjustment);
	if (!adjustment) adjustment = adjustment_new ();
	if (v->adjustment != adjustment) v->adjustment = ref (adjustment);
	now imagine the first unref to actually free the old adjustment and
	adjustment_new() creating a new adjustment from the very same memory
	portion. here, the latter comparision will unintendedly fail, and
	all hell breaks loose.
	(gtk_viewport_set_hadjustment):
	(gtk_viewport_set_vadjustment): reset viewport->?adjustment to NULL
	after unreferencing it.

	* gtk/gtkcontainer.[hc]: removed toplevel registration
	functions: gtk_container_register_toplevel(),
	gtk_container_unregister_toplevel() and
	gtk_container_get_toplevels() which had wrong semantics
	anyways: it didn't reference and copy the list.

	* gtk/gtkwindow.c: we take over the container toplevel registration
	bussiness now. windows are registered across multiple destructions,
	untill they are finalized. the initial implicit reference count
	users are holding on windows is removed with the first destruction
	though.
	(gtk_window_init): ref & sink and set has_user_ref_count, got
	rid of gtk_container_register_toplevel() call. add window to
	toplevel_list.
	(gtk_window_destroy): unref the window if has_user_ref_count
	is still set, got rid of call to
	gtk_container_unregister_toplevel().
	(gtk_window_finalize): remove window from toplevel list.
	(gtk_window_list_toplevels): new function to return a newly
	created list with referenced toplevels.
	(gtk_window_read_rcfiles): use gtk_window_list_toplevels().

	* gtk/gtkhscale.c (gtk_hscale_class_init): made the GtkRange
	adjustment a non-construct arg.
	* gtk/gtkvscale.c (gtk_vscale_class_init): likewise.
	* gtk/gtkhscrollbar.c (gtk_vscrollbar_class_init): likewise.
	* gtk/gtkvscrollbar.c (gtk_vscrollbar_class_init): likewise.

	* gtk/gtkrange.c: added some realized checks.
	(gtk_range_destroy): get rid of the h/v adjustments in the
	destroy handler instead of finalize. remove timer.
	(gtk_range_get_adjustment): demand create adjustment.

	* gtk/gtkviewport.c: made h/v adjustment non-construct args.
	we simply create them on demand now and get rid of them in
	the destroy handler.
	(gtk_viewport_destroy): get rid of the h/v adjustments in the
	destroy handler instead of finalize.
	(gtk_viewport_get_hadjustment):
	(gtk_viewport_get_vadjustment):
	(gtk_viewport_size_allocate): demand create h/v adjustment
	if required.

	* gtk/gtkwidget.c (gtk_widget_finalize): duplicate part of the
	gtk_widget_real_destroy () functionality.
	(gtk_widget_real_destroy): reinitialize with a new style, instead
	of setting widget->style to NULL.

Fri May  5 13:02:09 2000  Tim Janik  <timj@gtk.org>

	* gtk/gtkcalendar.c:
	* gtk/gtkbutton.c: ported _get_type() implementation over to
	GType, either to preserve memchunks allocation facilities,
	or because Gtk+ 1.0 GtkTypeInfo was still being used.

	* gtk/gtkobject.[hc]: derive from GObject. ported various functions
	over. prepare for ::destroy to be emitted multiple times.
	removed reference tracer magic. chain into GObjectClass.shutdown()
	to emit ::destroy signal.

	* gtk/gtksignal.c: removed assumptions about GTK_TYPE_OBJECT being
	fundamental.

	* gtk/gtkmain.c: removed gtk_object_post_arg_parsing_init()
	cludge.

	* gtk/gtksocket.c:
	* gtk/gtkplug.c:
	* gtk/gtklayout.c:
	* gtk/gtklabel.c:
	* gtk/gtkargcollector.c:
	* gtk/gtkarg.c: various fixups to work with GTK_TYPE_OBJECT
	not being a fundamental anymore, and to work with the new
	type system (nuked fundamental type varargs clutter).

	* gtk/*.c: install finalize handlers in the GObjectClass
	part of the class structure.
	changed direct GTK_OBJECT()->klass accesses to
	GTK_*_GET_CLASS().
	changed direct object_class->type accesses to GTK_CLASS_TYPE().

	* gtktypeutils.[hc]: use the reserved fundamental ids provided by
	GType. made most of the GTK_*() type macros and Gtk* typedefs
	simple wrappers around macros and types provided by GType.
	most notably, a significant portion of the old API vanished:
	GTK_TYPE_MAKE(),
	GTK_TYPE_SEQNO(),
	GTK_TYPE_FLAT_FIRST, GTK_TYPE_FLAT_LAST,
	GTK_TYPE_STRUCTURED_FIRST, GTK_TYPE_STRUCTURED_LAST,
	GTK_TYPE_ARGS,
	GTK_TYPE_CALLBACK,
	GTK_TYPE_C_CALLBACK,
	GTK_TYPE_FOREIGN,
	GtkTypeQuery,
	gtk_type_query(),
	gtk_type_set_varargs_type(),
	gtk_type_get_varargs_type(),
	gtk_type_check_object_cast(),
	gtk_type_check_class_cast(),
	gtk_type_describe_tree(),
	gtk_type_describe_heritage(),
	gtk_type_free(),
	gtk_type_children_types(),
	gtk_type_set_chunk_alloc(),
	gtk_type_register_enum(),
	gtk_type_register_flags(),
	gtk_type_parent_class().
	replacements, where available are described in ../docs/Changes-1.4.txt.
	implemented compatibility functions for the remaining API.

	* configure.in: depend on glib 1.3.1, use gobject module.
2000-05-12 15:25:50 +00:00
Owen Taylor
88286d32af Color selection dialog rewrite.
Wed May 10 16:38:17 2000  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am docs/Changes-1.4.txt gtk/gtkcolorsel.[ch]
	gtk/gtkhsv.[ch]: Color selection dialog rewrite.

	(Original triangle color selector from Simon Budig
	<Simon.Budig@unix-ag.org>, Cleaned up and rewritten for GTK+ by
	from Jonathan, Havoc, and Federico. Merge into GTK+ done by David
	Santiago <mrcooger@cyberverse.com>)

	* gtk/gtkcolorseldialog.[ch]: Split color selection dialog
	out into a separate widget.

	* gtk/testgtk.c: Add some checkbuttons for toggling palette
	and opacity controls.

Wed May 10 16:08:09 2000  Owen Taylor  <otaylor@redhat.com>

	* configure.in (GTK_LIBS_EXTRA): Remove references to gobject that
	snuck in prematurely.
2000-05-10 21:39:03 +00:00
Owen Taylor
10ba4fd066 Merges from gtk-1-2 2000-03-14 19:57:25 +00:00
Tor Lillqvist
ec1e8f1f5d Internal GDK error reporting changes: (gdk_win32_gdi_failed) New function
2000-03-07  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkmain-win32.c: Internal GDK error reporting changes:
(gdk_win32_gdi_failed) New function for reporting errors from GDI,
for which it is no use to call GetLastError on Win9x.
(gdk_other_api_failed) New function, for
general error reporting without calling GetLastError.
(gdk_win32_api_failed) OTOH, this function always calls
GetLastError. (gdk_win32_last_error_string) Remove this function,
GLib has the equivalent now.

* gdk/win32/gdkprivate-win32.h: Declare the above, and macros to
call them with function name, file name and line number in the
arguments.

* gdk/win32/*.c: Use the new macros for reporting errors from GDI
functions.

* gtk/gtk.def: Add some missing entry points.

* gtk/gtkcompat.h.in: Define gtk_paned_gutter_size and
gtk_paned_set_gutter_size, which don't exist any longer, as void.

Fixes by Hans Breuer:

* gdk/makefile.msc: Update for debugging.

* gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_dashes): Fake
implementation, just use the PS_DASH, PS_DOT, PS_DASHDOT or
PS_DASHDOTDOT or PS_DASH styles depending on the number of entries
in the dash_list.

* gdk/win32/gdkwin32.h (GDK_FONT_XFONT): New macro, similar as in
the x11 backend.

* gdk/win32/gdkprivate-win32.h (IS_WIN_NT): New macro.

* gtk/testgtk.c: Include config.h, guard inclusion of unistd.h.
2000-03-08 06:18:41 +00:00
GMT 2000 Tony Gale
6ab2659931 Spelling/grammar fixes from Martin Buchholz <martin@xemacs.org>
Tue Feb 29 13:10:00 GMT 2000  Tony Gale <gale@gtk.org>

        * gdk/gdkwindow.h gdk/x11/gxid.c gtk/gtkclist.c gtk/gtkclist.h
          gtk/gtkctree.c gtk/gtkmenu.h gtk/gtkwidget.c gtk/testgtk.c
          docs/styles.txt docs/refcounting.txt docs/gtkfaq.sgml
          docs/gtk_tut.sgml docs/gtk.texi TODO:
          Spelling/grammar fixes from Martin Buchholz <martin@xemacs.org>
2000-02-29 13:15:10 +00:00
Owen Taylor
c8a2382b65 Remove OwnerGrabButtonMask from button entries for GDK_BUTTON_PRESS /
Fri Feb 18 14:37:29 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkwindow-x11.c (gdk_event_mask_table): Remove
	OwnerGrabButtonMask from button entries for
	GDK_BUTTON_PRESS / GDK_BUTTON_RELEASE.

	* gtk/gtklayout.c (gtk_layout_realize): Always add GDK_SCROLL
	to the event mask (which will result in button/press release
	being added to the event mask on Unix) so scrolling works
	for layouts in scroll windows.

	* gdk/gdkevents.h (enum): Fix up GDK_ALL_EVENTS_MASK.

	Patch from Anders Carlsson  <andersca@picard.andersnet> to add
	a scroll event.

 	* gtk/testgtk.c (scroll_test_scroll): Added an example of mouse wheel
 	scrolling to the "Test Scrolling" part of testgtk.

 	* gtk/gtkwidget.h (struct _GtkWidgetClass): Added scroll_event signal.

 	* gtk/gtkwidget.c: Added "scroll_event" GTK+ signal and matched
 	it against GDK_SCROLL.

 	* gtk/gtkrange.c (gtk_range_scroll_event): Updated to use the new
 	way of mouse wheel scrolling.

 	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_scroll_event): Likewise.

 	* gtk/gtkspinbutton.c (gtk_spin_button_scroll): Likewise.

 	* gtk/gtkmain.c: Removed previous mouse wheel hack.

 	* gdk/x11/gdkwindow-x11.c (gdk_event_mask_table): Added entry in
 	gdk_event_mask_table.

 	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Added
 	GdkEventScroll handler.

 	* gdk/gdkevents.h: Added GdkEventScroll structure.
2000-02-18 20:02:24 +00:00
Havoc Pennington
4d48b106f0 use gdk_cursor_unref instead of destroy
2000-01-30  Havoc Pennington  <hp@pobox.com>

	* gtk/testgtk.c (set_cursor): use gdk_cursor_unref instead of
		destroy

			* gdk/gdkimage.c (gdk_image_ref): image wasn't being returned

				* gdk/gdkprivate.h: declare
_gdk_cursor_destroy which is then
	implemented in platform-specific code

		* gdk/Makefile.am (gdk_c_sources): add gdkcursor.c

			* gdk/x11/gdkcursor-x11.c (gdk_cursor_destroy):
rename with an
	underscore in front

		* gdk/win32/gdkcursor-win32.c (gdk_cursor_destroy):
			put an underscore in front

				* gdk/gdkcursor.c: new file, implements
					gdk_cursor_ref/gdk_cursor_unref

						* gdk/gdkcursor.h: Refcount GdkCursor

							* gdk/gdkcompat.h
(gdk_cursor_destroy): compat
2000-01-29 22:26:41 +00:00
Tor Lillqvist
9c00803e19 Must mark also gdk_error_warnings and gdk_error_code as GDKVAR, as they
1999-12-11  Tor Lillqvist  <tml@iki.fi>

* gdk/gdkprivate.h: Must mark also gdk_error_warnings and
gdk_error_code as GDKVAR, as they are referred outside GDK.

* gdk/win32/gdkinput-win32.c: Remove debugging leftover.

* gdk/win32/gdkwindow-win32.c (gdk_window_new): Assure title is
non-NULL.

* gtk/gtkdnd.c
* gtk/gtklayout.c
* gtk/gtkplug.c
* gtk/gtkselection.c
* gtk/gtksocket.c
* gtk/gtkwindow.c: Include x11/gdkx.h *or* win32/gdkwin32.c as
appropriate. There must be a cleaner way to handle this?

* gtk/gtkrc.c: Must include windows.h on Win32.

* gtk/testgtk.c: No need to include gdkx.h.

* gtk/makefile.cygwin: Correct invokation of genmarshal.pl.
1999-12-11 23:04:55 +00:00
Raja R Harinath
33da844e70 Adapt cast macros to standard.
Fri Nov 19 10:34:41 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkgamma.h: Adapt cast macros to standard.

[ Merges from 1.2 ]

Tue Nov 16 10:15:54 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkitemfactory.c (gtk_item_factory_parse_path):
	If translation does not include a '/', use entire
	translation instead of crashing.

Sun Oct 31 22:21:11 1999  Tim Janik  <timj@gtk.org>

	* docs/gtk_tut.sgml:
	s/gtk_accel_group_attach/gtk_window_add_accel_group/.

Sat Oct 30 09:09:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_remove): Use
	g_list_remove_link, not g_list_remove.

	[ From Geert Bevin <gbevin@thunderstorms.org> ]

Sun Oct 24 07:41:40 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkclist.c (real_undo_selection): commented out g_print()
	statement upon unselection (how the heck did that slip in?).

Sat Oct 23 03:03:08 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtktext.c (gtk_text_freeze):
	(gtk_text_thaw): undraw/draw cursor here to avoid unnecessary scrolling
	in frozen state (and aparently crashes). patch provided by Anders
	Melchiorsen <and@kampsax.dtu.dk>.

Sat Oct 23 02:53:20 1999  Tim Janik  <timj@gtk.org>

	* fix insensitive default/focus widget activation,
	reported by Matt Goodall <mgg@isotek.co.uk>.

	* gtk/gtkwindow.c (gtk_window_key_press_event):
	(gtk_window_activate_default):
	(gtk_window_activate_focus):
	return handled=FALSE for actiavtion of insensitive default
	widgets. return handled=TRUE for activation of insensitive
	focus widgets. don't activate in either case.

Tue Oct 19 09:55:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk-config.in (lib_gtk): Switch order of @x_cflags@
	and $glib_cflags to match library order and in the
	theory that an old version of GLib is more likely to
	be in the include directory for X then vice-versa.
	(Bug #2776)

Tue Oct 19 09:46:49 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_init): Always use LC_CTYPE
	to determine the locale for fontsets, not LC_MESSAGES;
	the user may want English messages with a handling
	for non-English languages. (LC_CTYPE=ru_RU LC_MESSAGES=fr_FR
	will still be broken) (Bug #2891)

Tue Oct 19 20:36:42 1999  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* gtk/gtkrc.ko: Fixed the wrong number of "*"'s.

Tue Oct 19 12:15:13 1999  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>

	* gtk/gtkrc.ko: Changed the Korean default fontset.

Fri Oct  8 02:32:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklayout.c (gtk_layout_adjustment_changed): Fix bug
	where when scrolling to the left or top double exposes
	were done, causing major slowdowns.

Thu Oct  7 18:31:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_init): Always normalize codeset
	names to lowercase and alphanumeric, before looking
	them up.

	* gtk/Makefile.am: Install codeset variant gtkrc files
	with normalized names.

Thu Oct  7 22:52:42 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even
	popup menus when the menu is already visible, but its parent
	is still hidden, (happens after tornoff window got hidden).

Thu Oct  7 11:09:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (install-data-local): Fix
	a typo where gtkrc.vi_VN.tcvn5712 wasn't getting
	deleted, causing error messages on install.

Thu Oct  7 11:03:06 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtk[hv]paned.c (gtk_{h,v}paned_draw): Redraw
	the handle as well, since we now sometimes ignore
	exposes on the handle while resizing.

Wed Oct  6 18:02:31 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_append_default_pixmap_path): Fix stupid
	extra g_free introduced in one of the last one or two
	commits.

Wed Oct  6 16:38:36 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am gtk/gtkrc*: Make naming of gtkrc files
	consistent, put each style that a gtkrc.* file creates
	in a unique namespace, remove old files before installing.

Wed Oct  6 14:31:16 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_init): Avoid leaking memory when
	gtk_rc_init is called multiple times. (Yes, people who
	do that have bugs in their code.)

Tue Oct  5 11:36:57 PDT 1999 Manish Singh <yosh@gimp.org>

	* gtk/Makefile.am: listing gtkrc in gtkconf_DATA seems to barf.
	Remove it since it's generated by the Makefile anyway

Tue Oct  5 02:43:41 1999  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkinputcommon.h (gdk_input_device_new): Free
	device->info.axes for core pointer.

Thu Sep 30 13:55:25 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (destroy_idle_test): Rename idle to
	idle_id, to deal with obsolete, broken C libraries.

Mon Sep 27 02:50:15 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkvscale.c (gtk_vscale_draw): Don't add in
	allocation->x/y twice!

	* gtk/gtkhscale.c: Make usage of gtk_hscale_pos_trough()
	consistent with gtk_vscale_pos_trough().

Sun Sep 26 19:44:34 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcontainer.c (gtk_container_queue_resize): We may
	be queueing a resize on a toplevel container between
	the time we show it and when we map it. So, we need
	to test GTK_WIDGET_VISIBLE() for toplevels, and only
	use GTK_WIDGET_DRAWABLE() for child windows.

Thu Sep 23 16:41:03 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am (LDADDS): Add GDK_WLIBS to LDADDS
	(fixes bug #2144)

Fri Sep 24 00:51:45 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkcontainer.c (gtk_container_queue_resize): check for
	container DRAWABLE (instead of VISIBLE), so we don't queue
	resizes on non-toplevel containers.

Sun Sep 19 18:13:31 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.[ch]: Make the data argument
	const guchar *.

Sat Sep 18 21:27:40 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c: Try to behave sensibly if
	the focus widget is the window itself. (Should
	we allow this at all?)

Fri Sep 17 09:57:15 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_set_sensitive):
	* gtk/gtknotebook.c (gtk_notebook_set_scrollable):
	* gtk/gtknotebook.c (gtk_notebook_set_show_border):
	* gtk/gtkclist.c (gtk_notebook_set_show_border): make gboolean args
	in prototypes and implementations consistent (Tomas Ogren).

	* gtk/gtklayout.c (gtk_layout_remove): unset GTK_IS_OFFSCREEN flag
	before the widget is unparented (reported by damon).

	* gtk/gtkdnd.c: make the cursor and icon data _unsigned_ char,
	since we provide unsigned data anyways.

Thu Sep 16 21:32:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktooltips.c (gtk_tooltips_set_tip): Delay
	the call to gtk_tooltips_layout_text() until later.

	* gtk/gtktooltips.c (gtk_tooltips_draw_tips):
	Call gtk_widget_ensure_style() before using the style.

Wed Sep 15 02:52:19 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_event): Added workaround
	for old widgets that don't propagate draws to all
	children. (Namely gnome-dock for gnome-libs <= 1.0.16)

Tue Sep 14 19:22:19 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_queue_resize): don't queue the parent
	for a redraw but just the widget that requested the resize.

Tue Sep 14 18:29:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkcontainer.c: added new widget level method
	gtk_container_set_reallocate_redraws() and a GtkContainer flag
	reallocate_redraws : 1 to reflect the setting, exported this through
	the argument system as a boolean ::reallocate_redraws.

	* gtk/gtkwidget.c (gtk_widget_size_allocate): when queueing redraws
	on the widget because the allocation changes, do so as well for
	widget->parent if the parent has reallocate_redraws set to TRUE.
	with that containers requesting reallocation redraws get automatically
	redrawn if their children changed allocation (this unfortunately
	affects also other children that didn't change allocation, but we
	cannot work around that before 1.3).

Tue Sep 14 18:23:01 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_idle_draw): only emit ::draw if width
	_and_ height are >0 (not _or_).

	* gtk/gtktable.c (gtk_table_remove): use gtk_widget_queue_resize()
	instead of gtk_container_queue_resize(), which is a core gtk internal
	function (must have been on crack when i queued that).

	* gtk/gtkprivate.h: added new private flag GTK_FULLDRAW_PENDING, so
	we can check more reliably if we want to discard expose events.
	* gtk/gtkwidget.c: added setting/unsetting of the GTK_FULLDRAW_PENDING
	flag.

	* gtk/gtkwidget.c (gtk_widget_event): don't discard synthesized exposes,
	we simply trust these events. for deciding whether to discard exposes,
	check GTK_FULLDRAW_PENDING instead of RESIZE_PENDING.

Mon Sep 13 15:01:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore
	queues of areas that are completely off screen.

	* gtk/gtkwidget.c (gtk_widget_idle_draw): Fix broken
	logic for handleboxes.

	* gtk/gtkwidget.c (gtk_widget_queue_draw_data): Add santity
	check on width/height.

Mon Sep 13 02:22:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/Makefile.am: backed out Raja's recent VPATH build "improvements",
	we are fine with using $@ the way we do (if we actually encounter
	brokeness with $@ in VPATH builds because of additional path prefixes,
	we need to use $(@F) actually).

Mon Sep 13 01:34:53 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtksignal.c: renamed two variables, hopefully didn't introduce
	short lived bugs, that would allow language bindings to do surgeries
	to our guts.

Fri Sep 10 15:22:50 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_size_allocate): Fix typo
	where comparison was being done against an uninitialized
	value causing intermittant results depending on
	compiler flags. Also make it clearer that we aren't
	ever initializing the child as 0x0 (though this will
	be caught in gtk_widget_size_allocate())

Fri Sep 10 10:06:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_set_transient_for): Move
	gtk_window_unset_transient_for() call after we do checks
	involving the old transient parent.
	[ From Lance Capser <lmc@cyberhighway.net> ]

1999-09-07  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gtk.defs): Go back to using `touch' to create
	an empty file.

Mon Sep  6 00:11:56 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (gtk_ctree_is_ancestor): return FALSE if node has
	no children. (Reported by: Chris Rogers <gandalf@pobox.com>)

1999-09-03  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (gen_sources): Improve VPATH builds.
	`$@' is valid only in the build dir, not after we've done
	`cd $srcdir'.  Also use `test -f' instead of less portable
	`test -e'.

Fri Sep  3 15:59:56 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (correct_cache_insert): Rewrite
	 for simplicity, and hopefully correctness.
	 (Fixes bug #1322, which was a segfault when
	  on some insertions with the properties around
	  the insertion set up just wrong.)

	* gtk/gtktext.c (gtk_text_adjustment): When we receive
	 a "changed" signal, clamp the new value to the adjustment
	 bounds to avoid segfaulting if someone tries to change
	 the adjustment to a bogus value. (Bug #1795)

Thu Sep  2 16:33:59 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c: Ignore unexpected destroy notifies
	for children, for toplevel windows handle them
	like delete_event.

	* gtk/gtkplug.c: Add an unrealize handler so that
	we unref plug->socket_window when we are done
	with it.

Fri Sep  3 14:52:54 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c (clear_area): Fix stupid signedness
	 problem that was causing background to sometimes
	 be misaligned.

Fri Sep  3 12:26:33 1999  Owen Taylor  <otaylor@redhat.com>

	[ Fixes pointed out by Ettore Perazzoli <ettore@comm2000.it> ]

	* gtk/gtkmenu.c (gtk_menu_position): Make
	 sure we never position menus with negative x, y,
	 since gtk_widget_set_uposition() can't handle that.

	* gtk/gtkmenuitem.c (gtk_menu_item_position_menu):
	 Modify the positioning code a bit so that we always
	 put the top-left corner onscreen. (This is for
	 UI reasons, gtk_menu_position() now takes care of
	 gtk_widet_set_uposition() brokeness.)

Fri Sep  3 03:06:30 1999  Tim Janik  <timj@gtk.org>

	* gtk/Makefile.am: fixed up things for -jx, x > 1.

Sun Sep  5 08:48:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_modify_style): Ref the
	  RC style that is passed in. The lack of the ref
	  before was a bug. If people worked around this
	  bug, this will introduce a slight memory leak
	  in their code. The code should typically look like:

	    rc_style = gtk_rc_style_new ();
	    [...]
	    gtk_widget_modify_style (widget, rc_style);
	    gtk_rc_style_unref (rc_style);

	* gtk/gtkwidget.c (gtk_widget_modify_style): Reset
	  the style if it was already set.

	* gtk/gtkwidget.c (gtk_widget_set_name): Only set the
	  style if it was set before.

Thu Sep  2 19:02:37 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (main): Add a check to see if we
	  are being run from the correct directory and
	  to quit nicely if we are not.

	* gtk/gtkrc.c (gtk_rc_slist_remove_all): Make function
	  static.

Thu Sep  2 23:00:03 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkenums.h (GtkWindowPosition): added GTK_WIN_POS_CENTER_ALWAYS.

	* gtk/gtkwindow.c:
	queue resizes unconditionally (gtk_widget_queue_resize will figure
	what to do if the window is not realized).
	(gtk_window_move_resize): only recenter the window
	for GTK_WIN_POS_CENTER_ALWAYS.
	(gtk_window_compute_reposition): handle GTK_WIN_POS_CENTER_ALWAYS in
	the same way as GTK_WIN_POS_CENTER.

Thu Sep  2 22:39:27 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_reposition): check for the last position
	with (!(info->last_flags & GDK_HINT_POS)) instead of
	(!info->last_flags & GDK_HINT_POS).

	* gtk/gtkwindow.c (gtk_window_move_resize): constrain new_width and
	new_height unconditionally, because we use these values even if
	!default_size_changed && !hints_changed.
	comented the (default_size_changed || hints_changed) case with
	respect to resize rejects from the window manager.

	* gtk/gtkwindow.c (gtk_window_move_resize): save info->last values
	in the zvt condition hack, since this includes the window hints, set
	the hints after the handling_resize case.

	* gtk/gtkwindow.c (gtk_window_show): constrain the default size that a
	window is initially shown with to the geometry.

Thu Sep  2 07:38:56 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_move_resize):
	s/size_changed/default_size_changed/g so i know what's
	really going on (frying brain on smaller flame now).

Thu Sep  2 05:47:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_move_resize): queue a new resize if
	we have size_changed upon handling_resize. this is a gross
	workaround for the broken zvt widget and should be removed in
	1.3 again (search for FIXME).
	Owen provided an accurate comment for this:

        /* We could be here for two reasons
         *  1) We coincidentally got a resize while handling
         *     another resize.
         *  2) Our computation of size_changed was completely
         *     screwed up, probably because one of our children
         *     is broken. It's probably a zvt widget.
         *
         * For 1), we could just go ahead and ask for the
         * new size right now, but doing that for 2)
         * might well be fighting the user (and can even
         * trigger a loop). Since we really don't want to
         * do that, we requeue a resize in hopes that
         * by the time it gets handled, the child has seen
         * the light and is willing to go along with the
         * new size. (this happens for the zvt widget, since
         * the size_allocate() above will have stored the
         * requisition corresponding to the new size in the
         * zvt widget)
         *
         * This doesn't buy us anything for 1), but it shouldn't
         * hurt us too badly, since it is what would have
         * happened if we had gotten the configure event before
         * the new size had been set.
         */

Wed Sep  1 20:46:11 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c: deal properly with the fact that RC
	  style lists may include rc styles more than once.

	* gtk/gtkrc.c (gtk_rc_append_pixmap_path): Removed
	  unused static function.

	* gtk/gtkrc.c (gtk_rc_find_pixmap_in_path): Keep a
	  stack of directories of RC files currently being
	  parsed and implicitely add them to pixmap path.

	  This fixes a bug where the directory would get
	  appended then overwritten by pixmap_path declarations.

	  (bug #1462, from Peter Wainright <prw@wainpr.demon.co.uk>)

	* gtk/gtkthemes.c (gtk_theme_engine_unref): Call
	  theme's exit function. (Patch from Peter Wainwright,
	  bug #1454)

	* gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy):
	  Add a destroy() handler to take care of removing
	  group for menu item. (Fixes bug #1197)

	* gtk/gtkwidget.c (gtk_widget_size_request): Fixed thinko
	  in warning message.

Wed Sep  1 21:27:42 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_move_resize): don't require a server
	roundtrip to figure window's width and height, since we know that
	anyways from widget->allocation.

Wed Sep  1 12:37:44 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_move_resize): Compute
	  the hints after we request the new size.

Wed Sep  1 10:38:37 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_compute_hints): Removed
	  GTK_WIDGET_REALIZED() assertion - we can compute the
	  hints before we are realized.

	* gtk/gtkwindow.c (gtk_window_move_resize): Reorder
	  hint changing so that we have a value of hints_changed
	  when we decide whether to constrain the window size.

	* gtk/gtkwindow.c (gtk_window_move_resize): Spelling fix.

	* gtk/gtkwindow.c (gtk_window_constrain_size): cleanups,
	change back to G_MAXINT.

Wed Sep  1 06:54:59 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c (gtk_window_get_geometry_info): zero initialize
	new GtkWindowGeometryInfo, so fields like GdkGeometry geometry
	contain uncluttered values.
	(gtk_window_compute_hints): simply assert that window is realized
	and that geometry_info is valid, since we rely on this anyways.
	(gtk_window_constrain_size): major cleanups to the code.
	if (flags & GDK_HINT_BASE_SIZE) use geometry's base width and height
	for the base size, instead of the minimums. use 32767 as max width
	and height (like in gtkwindow.c) instead of G_MAXINT.

Wed Sep  1 04:41:25 1999  Tim Janik  <timj@gtk.org>

	* cleaned up the GtkContainer.need_resize flag handling mess, we
	only need to force resize requests when we were prematurely
	realized, or our widget tree was modified when we were temporarily
	hidden. handling these cases directly upon showing the window (i.e.
	while the GdkWindow is still unmapped) avoids the need to wait for
	a configure event response and therefore makes the GUI more snappier
	and avoids blank windows during the roundtrip.

	* gtk/gtkwidget.c:
	(gtk_widget_hide):
	(gtk_widget_show): don't queue resizes on toplevels, they know how
	to deal with matters.

	* gtk/gtkcontainer.c (gtk_container_queue_resize): set the ->need_resize
	flag directly for not visible resize containers and spare us unecessary
	signal emissions.

	* gtk/gtkwindow.c:
	(gtk_window_realize): if we need to enforce premature size allocation,
	queue a container resize so we are correctly resized later on.
	(gtk_window_init):
	(gtk_window_size_request):
	don't freak around with the ->need_resize flag,
	gtk_container_queue_resize() will care about that.
	(gtk_window_show):
	handle initial resizing issues here, we can handle matters better in
	this place, especially since we know that our GdkWindow is still
	unmapped.
	(gtk_window_move_resize):
	don't care about ->need_resize at all.
	handle size changes properly that occoured while we waited for a
	configure event.

Tue Aug 31 15:58:46 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwidget.c (gtk_widget_set_uposition):
        * gtk/gtkwindow.[hc] (gtk_window_reposition):
        Move the hint setting code from gtk_widget_set_uposition
        to here; set the hints so that we respect any previously
        set geometry hints.

        * gtk/gtkwindow.c (gtk_window_compute_reposition): Don't
        change the window hints here or move the window here,
        let that happen in gtk_window_move_resize().

Tue Aug 31 06:58:52 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_event): when discarding exposes due
	to already queued resizes (and therefore redraws) on a widget, check
	its anchestry as well.

	* gtk/gtkcontainer.c:
	(gtk_container_queue_resize): clear resize widgets for resize
	containers before aborting prematurely. this is especially important
	for toplevels which may need imemdiate processing or their resize
	handler to be queued.
	(gtk_container_dequeue_resize_handler): added new internal function for
	gtkwindow.c.

	* gtk/gtkwindow.c (gtk_window_move_resize): if we are resizing due to a
	configure event, take possible changes in window position into account
	as well.
	if we request a new window size, queue up a resize handler that will
	last until the configure event response arrives.
	combined the ->need_resize case (initial show) with the general size
	(hints) changed case and added even more comments.
	if !auto_shrink, only revert to the old allocation if the new size
	is smaller than the current allocation.

Tue Aug 31 11:55:20 1999  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwindow.c (gtk_window_set_arg, gtk_window_set_policy,
                           gtk_window_set_geometry_hints
                           gtk_window_set_default_size):
        When hints are set, queue a resize so that the hints will
        be eventually reset on the toplevel.

        * gtk/gtkwindow.c (gtk_window_show): Use
        gtk_window_compute_default_size(). Clear the need_resize flag
        on the initail map so that we don't unnecessarily trigger the
        resize code.

        * gtk/gtkwindow.c (gtk_window_move_resize): Split apart
        into separate functions. Compare the hints we are setting
        with what we set last time so that we can accurately
        tell when we need to reset the hints.

        * gtk/gtkwindow.c (gtk_window_compute_default_size): New
        function to figure out the size from requisition
        and default_size.

        * gtk/gtkwindow.c (gtk_window_constrain_size): Function
        from fvwm to constrain a size to the geometry hints.

        * gtk/gtkwindow.c (gtk_window_compare_hints): New function
        to compare two sets of geometry hints.

        * gtk/gtkwindow.c (gtk_window_compute_hints): Renamed
        from gtk_window_set_hints(), just compute the hints,
        don't set them.

        * gtk/gtkwindow.c (gtk_window_compute_reposition): Move
        code from gtk_window_move_resize() to separate function,
        rationalize a bit.

Tue Aug 31 13:05:03 1999  Owen Taylor  <otaylor@redhat.com>

	* gtkrc.h: Move the ref_count member out of the GtkRcStyle
	structure into a new private structure.

	* gtkrc.c: Split GtkRcStyle into public/private.
	In the private part, add a list of pointers to the
	RcStyle lists this RcStyle participates in.

	* gtkrc.c: When a RcStyle is free, remove all
	lists referencing it from the
	realized_style_ht hash, and free those lists.

	* gtk/gtkrc.c (gtk_rc_clear_styles): Don't call
	gtk_rc_init(), since that adds the default styles
	to the list of parsed RC files again.

	* gtk/gtkrc.c: Use gtk_rc_style_find() consistently.

Thu Aug 26 14:14:42 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_size_allocate): reactivated the sanity
	checks that ensure that a widget's allocation is at least 1 in width
	and height. (GNOME note: this doesn't affect old panel code anymore,
	because GtkSocket will request width and height of at least 1 since
	Fri Jul 23).

	* gtk/gtkwindow.c (gtk_window_realize): if the widget hasn't been
	allocated yet (happens if the user realizes the window prematurely),
	size request and allocate it.
	(gtk_window_size_allocate): guard against guint underflows.

Wed Aug 25 19:01:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/Makefile.am (gtk_built_sources): reordered stamp-gtk.defs
 	in gtk_built_sources, so gtk.defs gets built prior to all other
 	sources.

Mon Aug 23 19:11:17 1999  Tim Janik  <timj@gtk.org>

	* gtk/Makefile.am:
	invoke indent on gtkmarshal.*.
	rewrote source generation rules, use COPYING as oldest source tag for
	a piggyback rule to generate all sources from (don't touch it ;).
	major cleanups, strip spaces on build rules for GNU Make.

	* gtk/genmarshal.pl: don't operate on hardcoded filenames but take
	source and target files from commandline arguments. don't invoke indent.

Sat Aug 21 14:07:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_real_switch_page): queue_resize
	notebook after switch to avoid drawing problems.
	(Bug#856 Reported by: Theodore Roth <troth@netmagic.net>)

	(gtk_notebook_pages_allocate): don't map not visible tab_labels,
	show them instead.
	(Bug#1805 Reported by: Dave Cole <dave@dccs.com.au>)

Sat Aug 21 14:07:36 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_real_switch_page): queue_resize
	notebook after switch to avoid drawing problems.
	(Bug#856 Reported by: Theodore Roth <troth@netmagic.net>)

	(gtk_notebook_pages_allocate): don't map not visible tab_labels,
	show them instead.
	(Bug#1805 Reported by: Dave Cole <dave@dccs.com.au>)

Wed Aug 18 09:20:10 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c:
	we use window->need_resize from configure_event now, to indicate that
	the gtkwindow should keep its allocation (e.g. because the user resized
	the window through window manager handles). resize_count is now reliably
	used to figure whether we got the allocation we requested from the
	window manager.
	configure events get queued as resizes now, the real stuff (size
	computation and allocation) now only goes on in gtk_window_move_resize().
	GtkWindow's requisition now contains its *real* requisition (like all
	other widgets), *not* taking usize into account.
	geometry_info->last_{width|height} is now updated from set_hints() only
	so it always contains the last hints we set for the window manager.
	made some event handlers return TRUE instead of FALSE.
	the overall code should be much more straight forward now, and the
	significant code portions are accompanied by comments now.
	(gtk_window_set_hints):
	removed requisition argument and made it
	fetch the requisition through gtk_widget_get_child_requisition.
	we also don't move the gdkwindow here anymore, gtk_window_move_resize()
	does that now.
	(gtk_window_show):
	ensure that the widget is realized before calling
	gtk_container_check_resize() (and thus gtk_window_move_resize()), also
	ensure that we got properly size requested and allocated before
	realization.
	(gtk_window_configure_event):
	ignore plain window moves, or reallocate the widget tree through the
	resize queue otherwise.
	(gtk_window_move_resize):
	mostly rewrote this function to figure window manager hints more
	reliably, coalesce window moves and resizes to reduce configure events
	and do actuall size allocations.

Tue Aug 17 07:43:04 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_event): discard expose events for widgets
	that have a resize pending, because a redraw is already queued for them.

	* gtk/gtkcontainer.c: removed ugly connect_to ::size_allocate signal
	hack to clear resize_widgets.

	* gtk/gtkwidget.c (gtk_widget_size_allocate): call clear_resize_widgets
	for resize containers prior to size allocation. (this is also a bit
	ugly, but avoids side effects for stopped emissions and is thus more
	reliable).
	(gtk_widget_unparent): removed disconnect call for clear_resize_widgets.

	* gtk/gtktooltips.c (gtk_tooltips_paint_window): renamed this
	function from gtk_tooltips_expose, as we connect to ::expose_event
	*and* ::draw now.

1999-08-18  Federico Mena Quintero  <federico@redhat.com>

	* gtk/gtkselection.c (gtk_target_list_ref): Added missing sanity
	checks.
	(gtk_target_list_unref): Likewise.

	* gtk/gtkthemes.c (gtk_theme_engine_unref): Likewise.

Tue Aug 17 15:47:07 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c (gtk_color_selection_draw_value_bar):
	guard against division by zero. (Fixes bug #1339)

Tue Aug 17 10:56:49 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_move_{forward,backward}_word):
	Prevent the trivial leak of information of allowing
	word motion when the entry is not visible.

Tue Aug 17 10:28:52 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (gtk_file_selection_fileop_error): Propagate
	modality to error dialog as well as confirmation dialogs.
	(Bug #1803, reported by Rosanna Wing Sze Yuen)

Wed Aug 11 01:04:57 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktreeitem.c (gtk_tree_item_draw_lines): Honor
	tree->view_lines.
	(gtk-guy-990611-3.patch: Guy Harris <guy@netapp.com>)

	* gtk/Makefile.am (install-data-local): Solaris apparently
	has various troubles with ln -f; use rm first instead.
	(gtk-guy-990611-2.patch: Guy Harris <guy@netapp.com>)

1999-07-30  Raja R Harinath  <harinath@cs.umn.edu>

	* gtk/Makefile.am (stamp-m): Don't `mv' from builddir to srcdir,
	use `cp' followed by `rm' (the `rm' was already there).

July 30, 1999 Elliot Lee <sopwith@redhat.com>

	* configure.in: Fix autoconf warnings about cross compilation by
	trying to provide sane defaults for AC_TRY_RUN.
	* gtk/Makefile.am: If we refer to gtkmarshal.[ch] in $(srcdir),
	put them into $(srcdir) when generated. Also add a dependency of
	gtksignal.h on gtkmarshal.h for -j builds.
	* gtk/gtk(dnd,style,gamma).c: Minor warning fixes.

Wed Jul 28 09:29:19 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main_iteration_do): Added missing
	GDK_THREADS_{LEAVE,ENTER} pair.
	(From Paul Fisher <pnfisher@redhat.com>)

Fri Jul 23 01:00:15 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtksocket.c (gtk_socket_size_request): asure that the requested
	width and height are always >0 (owen).

Fri Jul 23 00:00:47 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_size_allocate): backed out my recent
	change that assured that a widget's allocated with and height are
	always >1, since this breaks *buggy* panel code. unfortunately this
	back-breaks the gimp's color selector.

	* gtk/gtkdrawingarea.c (gtk_drawing_area_size_allocate): asure that our
	allocation is always >0 in width and height, before sending the
	configure event; this is a *gross* hack to get the gimp back to work.

	* marked both cases with TODO-1.3

Wed Jul 21 15:47:39 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktext.c: Don't display wrap indicators when
	text is not editable and word wrap is on.

Wed Jul 21 08:21:40 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkitemfactory.c (gtk_item_factory_create_item): special case
	option menus here as they are not derived from menu shell, assure that
	the option menu has a menu we can add items to.

Tue Jul 20 23:29:48 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtknotebook.c (gtk_notebook_page_allocate): convert allocation->
	width/height to (gint) before calculations and check against < 0 to
	avoid guint wraparounds.

Sun Jul 18 00:35:49 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_size_allocate): ensure that the allocated
	width and height is never zero. sanity check both dimensions against
	32767 and issue a warning if the allocation is greater than that.

Wed Jul  7 15:03:30 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_events_pending): Unlock around call
	to g_main_pending() as well.

Wed Jul  7 14:59:01 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main_iteration): Unlock around
	call to g_main_iteration() - since that will regrab
	GTK+ lock to process events.

Thu Jul  1 15:01:55 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c
	- Regularize with the rest of GTK+ by making widget->requisition
	  not reflect the set_usize()
	- Always recompute geometry hints, then check if they
	  changed before sending them to the X server. The
	  previous checks for changes would fail in a number
	  of circumstances.

Thu Jul  1 11:55:59 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c: Include <stdlib.h> for strcmp().

Wed Jun 30 19:26:36 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c:
	- Code cleanups
	- Instantaneously update on modifier key presses
	- Allow cancellation of the drag with Escape.

Tue Jun 29 17:04:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (create_handle_box): Set the policy
	to auto_shrink - otherwise the appearance is rather
	strange when flipping between horizontal and vertical.

Mon Jun 28 09:29:52 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwindow.c: add ::default_width and ::default_height arguments.
	(gtk_window_set_default_size): don't change a value if it's < 0.
	queue a resize.

Sun Jun 27 11:00:33 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtktext.c (gtk_text_insert): don't segfault on NULL inserts.

Mon Jun 28 12:08:25 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkfilesel.c (cmpl_completion_fullname): Don't
	add an extra "/" when concating "/" + filename.
	(From Matt Grossman <mattg@oz.net>)

Mon Jun 28 10:57:12 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkctree.c (draw_cell_pixmap): Reset clip mask
	for fg_gc if we set it for drawing pixmap.

Tue Jun 15 12:45:12 1999  Owen Taylor  <otaylor@redhat.com>

        Fixes from Peter Wainwright <prw@wainpr.demon.co.uk>

	* gtk/gtkrc.c (gtk_rc_parse_engine): If rc_style->engine is
	already set, call old engine's destroy function and
	unref the old engine.

Thu Jun 10 17:59:38 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkdrawingarea.c (gtk_drawing_area_size): queue a resize.

Wed Jun  9 15:13:16 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkaccelgroup.h: mark certain functions as internal.

Wed Jun  9 13:48:28 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkpreview.c (gtk_preview_set_expand): queue a resize if the
        expand behaviour changed.

        * gtk/gtklabel.c (gtk_label_set_pattern):
        (gtk_label_set_justify):
        (gtk_label_set_line_wrap):
        don't bother invoking queue_clear, the reallocation does
        that for us, always free_words so the upcoming resize will
        relayout the label's contents.

Wed Jun  9 12:50:48 1999  Tim Janik  <timj@gtk.org>

        * applied argument implementation patches from Elena Devdariani
        <elena@cogent.ca>.

        * gtk/gtktoolbar.c: ::orientation, ::toolbar_style, ::space_size,
        ::space_style, ::relief
        * gtk/gtkruler.c: ::lower, ::upper, ::position, ::max_size
        * gtk/gtkpreview.c: ::expand
        * gtk/gtkpaned.c: ::handle_size, ::gutter_size
        * gtk/gtknotebook.c: ::homogeneous
        * gtk/gtklabel.c: ::wrap
        * gtk/gtklist.c: ::selection_mode
        * gtk/gtkhandlebox.c: ::handle_position, ::snap_edge
        * gtk/gtkcurve.c: ::curve_type, ::min_x, ::max_x, ::min_y, ::max_y
        * gtk/gtkcolorsel.c: ::update_policy, ::use_opacity
        * gtk/gtkclist.c: ::sort_type
        * gtk/gtkcheckmenuitem.c: ::active, ::show_toggle
        * gtk/gtkaspectframe.c: ::xalign, ::yalign, ::ratio, ::obey_child

Tue Jun  1 23:38:38 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c: Removed ill-thought-out part of last
	comment.

Tue Jun  1 23:30:09 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkstyle.c (gtk_style_attach): Get the reference
	counting right when we have to attach a new style
	for a different visual. (Chi-Deok Hwang <cdhwang@sr.hei.co.kr>)

	* gtk/gtkstyle.c: Documented the refcounting
	peculularities of gtk_style_attach.

1999-06-01  Tim Janik  <timj@dhcpd7.redhat.com>

	* gtk/gtkwindow.c (gtk_window_new): added return if fail for invalid
	window types.

	* examples/packer/pack.c (main): use GTK_WINDOW_TOPLEVEL instead
	of GTK_TOPLEVEL for creating the window.

1999-06-01  Tim Janik  <timj@dhcpd7.redhat.com>

	* gtk/gtkmain.c (gtk_init_check): don't segfault when --gtk-module is
	the last argument (reported by Per Winkvist).

Tue May 25 13:13:12 1999  Owen Taylor  <otaylor@redhat.com>

        Fixes for invisible XOR lines (Frank Loemker
	<floemker@TechFak.Uni-Bielefeld.DE>)

	* gtk/gtkclist.c (gtk_clist_realize): Always use
	a non-zero pixel for GDK_XOR.

	* gtk/gtkvpaned.c gtk/gtkhpaned.c:
	Use GDK_INVERT instead of GDK_XOR.

Wed May 12 21:56:40 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (adjust_adjustments): signal emit value_changed
	signals if h/voffsets differ from adjustment values.
	Reportet by Jerome Bolliet <bolliet@in2p3.fr>

Mon May 10 04:20:41 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkmenushell.c (gtk_menu_shell_activate_item): propagate
	::selection-done emissions up to the topmost menu shell.

Fri May  7 10:15:14 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_set_scrollable): Unset
	the user data on the window before destroying it.

	* gtk/gtknotebook.c (gtk_notebook_unrealize): Add an
	unrealize handler to take care of destroying
	notebook->panel properly.
	(Bug #1198 - Morten Welinder <terra@diku.dk>)

	* gtk/gtktext.c (expand_scratch_buffer): Fix reversal
	of g_new and g_realloc to stop memory leak. (Actually,
	we could just use g_realloc(), but I'm not 100% sure
	that is portable).
	(Bug #1196 - Morten Welinder <terra@diku.dk>)

Wed Apr 21 00:42:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkplug.h: Removed stray GtkPlugButton declaration.

	* gdk/gdkfont.c (gdk_text_measure): Fix the return value
        for fontsets.

	* gtk/gtkbutton.c (gtkbutton_expose): Fix warning
	with bin/button confusion.

Thu May  6 04:53:26 1999  Tim Janik  <timj@gtk.org>

	* gtk/testgtk.c: in the ItemFactory test, link radio items together,
	and show how preselection of radio items is done.

Sun May  2 13:31:14 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtktreeitem.c (gtk_tree_item_set_subtree):
	* gtk/gtktree.c (gtk_tree_add) (gtk_tree_insert):
	* gtk/gtktoolbar.c (gtk_toolbar_insert_element):
	* gtk/gtkpaned.c (gtk_paned_pack2) (gtk_paned_pack1):
	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_add):
	* gtk/gtktable.c (gtk_table_attach):
	* gtk/gtklist.c (gtk_list_insert_items):
	* gtk/gtkmenushell.c (gtk_menu_shell_insert):
	* gtk/gtknotebook.c (gtk_notebook_insert_page_menu):
	* gtk/gtkpacker.c (gtk_packer_add_defaults) (gtk_packer_add):
	* gtk/gtkbin.c (gtk_bin_add):
	* gtk/gtkbox.c (gtk_box_pack_start) (gtk_box_pack_end):
	* gtk/gtkfixed.c (gtk_fixed_put):
	* gtk/gtklayout.c (gtk_layout_put):
	general fixups to container_add logic. always realize child if
	child->parent is realized, only map the child and queue a resize
	if child and child->parent are both visible.

Fri Apr 30 09:02:28 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_real_unrealize): use gtk_container_forall
	instead of gtk_container_foreach to walk and unrealize children, so
	composite children get also unrealized.
	(gtk_widget_real_show): don't call gtk_widget_map() if we don't need to.
	(gtk_widget_map): assert that the widget is visible (basic constrain).
	(gtk_widget_real_map): assert that the widget is realized (basic
	constrain).

Fri Apr 29 00:53:20 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkbindings.c (gtk_pattern_spec_init): plugged a memory leak.

Tue May  4 09:32:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am gtk/gtkrc.iso-8859-2: Add a gtkrc
	file for iso-8859-2 locales.

	* configure.in (ALL_LINGUAS): ALL_LINGUAS update.

Tue Apr 27 16:38:32 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am: Fix typo of static_sources for static_SOURCES.
	 (Pointed out by andy@rz.uni-karlsruhe.de and others).
	 Remove some suspicious and useless lines.

Tue May  4 08:44:08 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkclist.c (gtk_clist_draw, draw_rows): Use
	width,height = 0, 0 to mean - here to edge of window,
	instead of -1, -1, since the former is all we support.

Tue May  4 08:34:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c (gtk_main): Correctly free list nodes
	when removing from quit_functions list.

Tue Apr 27 14:17:16 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkpacker.c (gtk_packer_size_request): remove unused variable.

Tue Apr 27 18:23:35 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable):
	 When redrawing characters on non-visible entry, use appropriate
	 '*' character. (Bug #1130 - Jean-Marc Jacquet <jm@littleigloo.org>)

Tue Apr 27 01:31:40 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (drag_dest_cell): compute destination cell
	from drag coordinates.
	(gtk_clist_drag_data_received) (gtk_clist_drag_motion):
 	use drag_dest_cell.

	* gtk/gtktree (drag_dest_cell)
	(gtk_ctree_drag_data_received) (gtk_ctree_drag_motion): likewise.
	(Bug #1129)

Wed Apr 21 21:26:11 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkitemfactory.c (gtk_item_factory_init): properly initialize
	translate_* fields.
	(gtk_item_factory_finalize): invoke translate_notify independant from
	translate_data.
	(gtk_item_factory_set_translate_func): likewise.
	(gtk_item_factory_destroy): only remove ifactory pointer from those
	widgets that belong to us (stupid me).

Mon Apr 19 12:05:31 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkrc.c (gtk_rc_style_init): Fixed leak of
	rc_style list when lookup succeeeds.

Thu Apr 15 01:11:24 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkctree.c (resync_selection):
	* gtk/gtkclist.c (resync_selection): fixed undo_selection bug.
	* gtk/gtkclist.c (gtk_clist_button_release): fixed resync_selection
 	bug.

Fri Apr  9 19:22:19 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkcolorsel.c gtk/gtkdnd.c gtk/gtkmenuitem.c:
	Add some missing GDK_THREADS_ENTER()/LEAVE around
	timeouts. (Patches from Sebastian Wilhelmi <wilhelmi@ira.uka.de>)

Thu Apr  8 20:10:33 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkentry.c (gtk_entry_key_press): use gtk_widget_activate()
	rather than emit_by_name.

	* gtk/gtkeditable.c (gtk_editable_insert_text): keep a reference
	on the widget across multiple signal emissions.
	(gtk_editable_delete_text): same here.
	(gtk_editable_class_init): set widget_class->activate_signal after
	editable_signals[ACTIVATE] has been created.

Wed Apr  7 22:59:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkpaned.c (gtk_paned_set_position): Don't clamp
	position here prematurely -- we might not have the
	right ->min_position and ->max_position yet.

Tue Apr  6 16:38:51 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkselection.c gdk/gdkselection.c: (gtk_selection_request):
	Add error traps so if the other end of the connection
	dies, we survive.

	* gtk/gtkselection.c (gtk_selection_notify): Clean
	up properly when selection property retrieval fails.

	* gtk/gtkselection.c (gtk_selection_request): Correctly
	reject SelectionRequest notifies where the handler
	returns no data.

Tue Apr  6 12:24:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_dest_leave): Only unhighlight
	when we've previously highlighted.

	* gtk/gtkdnd.c (gtk_drag_dest_handle_event): Don't
	emit two "drag_leave" signals for Motif drops.

	* gtk/gtkdnd.c (gtk_drag_source_handle_event): Send
	back the correct status messages when dropping from
	Motif onto a proxy window that is rejecting the
	drop.

Sat Mar 27 23:32:13 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkarg.[hc]: added functions from GLE, gtk_arg_reset() to free
	the value and reset type to GTK_TYPE_INVALID, and gtk_arg_values_equal()
	to compare two argument values. added gtk_arg_to_valueloc() to set a
	variable from an arg through its location (pointer).

	* gtk/gtkobject.[hc]: implemented gtk_object_get() in terms of
	gtk_object_arg_get() and gtk_arg_to_valueloc(), floats are collected
	as gfloat*, uchars are collected as guchar*, ints are collected as
	gint*, etc...

Mon Mar 29 17:45:47 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkaccelgroup.c gtk/gtkgtkbindings.c:
	Include <string.h> instead of <strings.h>.

	* gtk/gtkstyle.c: Fix double include of gtkthemes.h
	(actually, a lot more duplicate includes occur if
	 you trace through the sequence of #include's)
	gtk-jbb-990320-0: John Bley, jbb6@acpub.duke.edu

Mon Mar 29 17:02:58 1999  Owen Taylor  <otaylor@redhat.com>

        Patches from Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>
	gtk-a-higuti-990322-[0-3]

	* configure.in: Fix confusion between GTK_LOCALE_[C]FLAGS
	that was causing -DX_LOCALE not	to work.

	* gtk/gtkrc.c (gtk_rc_init):
	X_LOCALE will never have LC_MESSAGES defined

Thu Mar 25 12:38:31 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkrc.c (gtk_rc_append_default_module_path): get $HOME from
	g_get_home_dir() (gtk-pmc-990123-0.patch.gz).

	* gtk/gtkwindow.c (gtk_window_key_press_event): feature keypad up/down/
	left/right as well (gtk-michael-980726-0.patch.gz).

	* gtk/gtklabel.[hc]: bunch of miscellaneous cleanups, such as s/0/NULL/
	for pointer values, use gchar instead of char. fixed uline allocation
	leaks, changed the allocation pattern so we use G_ALLOC_AND_FREE mem
	chunks instead of G_ALLOC_ONLY.
	(gtk_label_size_request): always alter requisition as passed and leave
	widget->requisition alone.
	(gtk_label_set_text): allow NULL strings.
	(gtk_label_new): likewise.

Wed Mar 24 09:24:03 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkdrawingarea.[hc]: type/macro fixups.

Mon Mar 22 05:51:34 1999  Tim Janik  <timj@gtk.org>

	* gtk/gtkbin.c (gtk_bin_draw): only redraw children that are visible
	*and* mapped (i.e. drawable).
	(gtk_bin_expose): only send exposes to drawable children.

	* gtk/gtkbox.c (gtk_box_draw): only redraw children that are drawable.
	(gtk_box_expose): only send exposes to drawable children.

	* gtk/gtkhscale.c (gtk_hscale_draw):
	* gtk/gtkvscale.c (gtk_vscale_draw):
	hm, this is an ugly one. we first compute the size of our trough area
	here (window relative) and then check intersection with the draw_area
	which is parent relative because we're a NO_WINDOW widget, so we need
	to offset the trough area by allocation.x and allocation.y before the
	check. (this must not be done for the background area though, since
	that's already computed parent relative).

Mon Mar 22 00:41:39 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_unrealize): unmap clist if neccessary,
	unrealize title buttons.

Fri Mar 19 00:00:22 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (gtk_clist_column_title_passive)
	(gtk_clist_column_title_active):
	only connect/disconnect to GtkWidgetClass::event to block mouse events.

	* gtk/gtkclist.c (vertical_timeout) (horizontal_timeout):
	zero initialize event, removed superfluous gdk_window_get_pointer call

	* gtk/gtklist.c (gtk_list_vertical_timeout)
	(gtk_list_horizontal_timeout): removed superfluous
 	gdk_window_get_pointer call

Wed Mar 17 09:00:00 1999  Tim Janik  <timj@gtk.org>

	* plugging problems reported by "Bruce Mitchener, Jr."
	<bruce@puremagic.com> due to a purify session.

	* gtk/gtkstyle.c:
	(gtk_style_ref):
	(gtk_style_unref): assert ref_count to be > 0.

	* gtk/gtkclist.c (gtk_clist_set_cell_style): { 0 } initilaize
	the requisition.
	(gtk_clist_set_shift): likewise.

	* gtk/gtklayout.c: introduce gtk_layout_finalize() to unref the
	adjustments.

	* gtk/gtklist.c (gtk_list_horizontal_timeout): zero initialize the
	event before sending it and set send_event to TRUE (which needs to
	be done for *all* synthesized events).
	(gtk_list_vertical_timeout): likewise.

	* gtk/gtktipsquery.c (gtk_tips_query_destroy): plug small memory
	leaks.

	* gtk/gtkdrawingarea.c (gtk_drawing_area_send_configure): set send_event
	to TRUE when synthesizing events.

[ *** end of merges from 1.2 *** ]
1999-11-22 21:52:50 +00:00
Owen Taylor
43529d911c Substitute gdkx.h => gdkprivate.h since we need to accesss only
Mon Nov  8 16:40:43 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c: Substitute gdkx.h => gdkprivate.h since
	we need to accesss only ->children. We need an accessor
	for the children.

	* gtk/gtkhandlebox.c gtk/testgtk.c: Substitute G
	DK_ROOT_PARENT() => NULL, in call to gtk_window_get_pointer()
	to get rid of gdkx.h include.

	* gtk/gtkctree.c: Get rid of #include <gdk/gdkx.h>
	and random references to 'None'.

	* gtk/gtkclist.c gtk/gtkeditable.c gtk/gtkpreview.c
	Get rid of unused #include <gdk/gdkx.h>

	* gtk/gtkrc.c gtk/gtkmain.c: Get rid of #include <gdk/gdkx.h>
	gdkx.h is _X_ specific stuff. GDK_WINDOWING comes from
	gdkconfig.h.
1999-11-08 22:33:28 +00:00
ÉRDI Gergo
b196167dbc This is an implementation of Idea #13 from
http://www.jcinteractive.com/gnome-ui/software/widgets/
basically, layouting the toolbar icon and label horizontally.
1999-10-02 17:13:09 +00:00
Tor Lillqvist
0b4d29fd6e Merge in Win32 version: Define macro GDKVAR for declaring gdk variables
* gdk/gdktypes.h: Merge in Win32 version: Define macro GDKVAR for
declaring gdk variables exported/imported from the DLL. New image
type enum, GDK_IMAGE_SHARED_PIXMAP, for gdk_imlib. New drag and
drop protocol enums, GDK_DRAG_PROTO_WIN32_DROPFILES and
GDK_DRAG_PROTO_OLE2.

* gdk/gdk.h: Merge in Win32 version: Two new functions,
gdk_pixmap_create_on_shared_image and gdk_image_bitmap_new. So far
declared only for the Win32 version, but could be in the X11
version as well. (Needed for a Xlib-less gdk_imlib.)
gdk_color_hash should have only one parameter. Declare
gdk_threads_mutex with GDKVAR.

* gdk/gdkcolor.c (gdk_color_hash): As a hash function should have
just one parameter.

* gdk/gdkimage.c (gdk_image_get): Initialize bpp correctly. Bytes
per pixel, not bits.

* gdk/gdkrgb.c: Mingle includes somewhat. (gdk_rgb_select_conv):
Fetch bpp (which means bits-per-pixel here) from another place on
Win32. Accept also depth==32 (which we might get on Win32) with
bpp==32.

* gtk/{gtkclist,gtkctree,gtkdnd,gtkditable,gtkfontsel,
gtkhandlebox,gtklayout,gtkmain,gtkplug,gtkpreview,gtkrc,
gtkselection,gtksocket,gtkstyle,gtkwidget,gtkwindow}.c:
Include gdx.h from "gdkx.h", not "gdk/gdkx.h", as gdkx.h will be
in the backend-dependent directory, not in the common gdk
directory.

* gtk/testgtk.c: Ditto. Also, don't use ../gdk patchs to gdk
headers.
1999-03-17 23:02:10 +00:00
Tim Janik
f045ba415a Tue Mar 16 17:43:33 1999 Tim Janik <timj@gtk.org>
Wed Mar 17 01:46:28 1999  Tim Janik  <timj@gtk.org>

        * merges from gtk-1-2:

Tue Mar 16 17:43:33 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.c (gtk_item_factory_parse_rc_string): ensure the
        item factory class has been created.
        (gtk_item_factory_parse_rc): likewise.

        * gtk/gtkmenu.c:
        keep proper references for old_active_menu_item.
        (gtk_menu_reparent): unset the usize of the new parent,
        so the menu can sanely be size requested and we don't get nasty screen
        artefacts upon next reparentation.
        (gtk_menu_motion_notify): set send_event to TRUE if we synthesize an
        enter notify. only synthesize enter notifies if the pointer really is
        inside the event window.
        (gtk_menu_popdown): use gtk_menu_shell_deselect().
        (gtk_menu_popup): move the background setting stuff into
        gtk_menu_tearoff_bg_copy() so it can be called from other places as well.

        * gtk/gtkmenushell.c (gtk_menu_shell_button_press): use
        gtk_menu_shell_select_item() to select the new item.
        (gtk_menu_shell_deselect): export this function, so gtkmenu.c can
        do the right thing for deselection as well.

Sat Mar 15 20:10:33 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkwidget.[hc]:
        (gtk_widget_accelerators_locked): return whether a widget's accelerators
        are locked.

        * gtk/gtkmenu.c (gtk_menu_key_press): don't remove or install new or
        existing accelerators if the widget's accelerators are locked.

Sat Mar 14 19:44:05 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkitemfactory.[hc]: allow managing of foreign menu items.

        * gtk/gtkmenu.c: truely forward key press and key release events to
        the menu widget from the toplevel or tearoff window. we can't simply
        connect to that, we need to stop further processing of the events as
        well.

Sat Mar 13 13:14:17 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenu.c:
        (gtk_menu_key_press): pass event->keyval, event->state to
        gtk_accelerator_valid, instead of event->keyval twice.
        refuse to install single letter accelerators for menus that use
        single letter shortcuts.

        * gtk/gtkitemfactory.c (gtk_item_factory_create_item): use
        gtk_menu_ensure_uline_accel_group().

        * gtk/gtkmenu.[hc]: added gtk_menu_ensure_uline_accel_group()
        which will always return an uline accel group, made
        gtk_menu_get_uline_accel_group() return NULL if the group isn't
        yet created.

Mon Mar 15 01:03:27 1999  Lars Hamann  <lars@gtk.org>

        * gtk/gtkclist.h (struct _GtkCListColumn): added button_passive flag.

        * gtk/gtkclist.c (gtk_clist_column_title_passive):
        Leave button sensitive, trap  button_press, button_release,
        motion_notify, enter_notify and leave_notify events instead.
        (gtk_clist_column_title_active): disconnect event handler.
        (gtk_clist_drag_data_get): fixed memory leak. Reported by
        Guillaume Laurent <glaurent@worldnet.fr>

Wed Mar 10 23:49:55 1999  Lars Hamann  <lars@gtk.org>

        * gtk/gtklayout.c (gtk_layout_adjustment_changed): fixed a few
        width/height mixups.

        * gtk/gtkctree.c (tree_delete): emit an tree_unselect_row signal
        if needed.

Wed Mar 10 00:11:32 1999  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c (create_item_factory): unref the item factory after
        window's destruction.

        * gtk/gtkmenushell.c (gtk_menu_shell_activate_item): keep a reference
        count on the menu shell around the menu item's activation, since the
        signal emission may cause menu shell destruction.

        * gtk/gtkitemfactory.c:
        the previous code leaked one accel group per menu. we use
        gtk_menu_get_uline_accel_group() now to fix that, and with that
        also create the underline accelerator group of the menus only if
        required (i.e. an underline accelerator has been specified).
        (gtk_item_factory_construct):
        (gtk_item_factory_create_item): removed code that would create an
        extra accel group for the menu (and leak references).
        (gtk_item_factory_create_item): adapted the underline accelerator
        installation code to properly feature gtk_menu_get_uline_accel_group().

        * gtk/gtkmenu.[hc]: added gtk_menu_get_accel_group() to retrive
        menu->accel_group, this may return NULL if the accelerator group
        hasn't been set yet.
        added gtk_menu_get_uline_accel_group() to retrive the underline
        accelerator group of the menu, this will be created on demand
        and proper care is taken about its reference count.

        * gtk/gtkitemfactory.h:
        * gtk/gtkitemfactory.c:
        dumped the approach of keeping a widgets by action list on the
        factory since the factory<->widget destroy negotiation didn't work
        and would be hard to get going at all. instead we keep a list of
        GtkItemFactoryItem items on the factory (GtkItemFactoryItems are
        persistant throughout a program's life time).
        also, i removed the static const gchar *key_* variables, and made
        them inline strings (they weren't actually used anyways).
        (gtk_item_factory_add_item): update ifactory->items.
        (gtk_item_factory_destroy): destroy ifactory->items (and remove
        the item factory pointer from the remaining ifactory widgets).
        (gtk_item_factory_get_widget_by_action): walk the GtkItemFactoryItem
        list to find the widget.
        (gtk_item_factory_get_item): new function that works around
        gtk_item_factory_get_widget() limitations, this function will only
        return menu items, even for <Branch> entries.

Tue Mar  9 01:01:28 1999  Tim Janik  <timj@gtk.org>

        * gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our
        font hash table, if we have a GdkFontPrivate entry for this font
        already, simply increment its reference count, provided by Olaf Dietsche
        <olaf.dietsche+list.gtk@netcologne.de>.

        * gtk/gtkstyle.c (gtk_style_copy): plug a GdkFont reference leak, fix
        provided by Olaf Dietsche <olaf.dietsche+list.gtk@netcologne.de>.

Sun Mar  7 06:13:29 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcontainer.c:
        (gtk_container_add_with_args):
        (gtk_container_addv):
        (gtk_container_add): before adding a child to a conatiner, make sure
        it is (default) constructed, this is neccessary because under certain
        circumstances the child will get relized and mapped immediatedly, in
        which case it has to be constructed already.

Mon Mar  1 17:58:21 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtksignal.c (gtk_signal_connect_by_type): count object_signal
        values > 1 as TRUE also.
1999-03-17 01:39:42 +00:00
Stefan Jeske
209f5d5cd4 Added two new signals to GtkSpinButton, "input" and "output", to make the
* gtk/gtkspinbutton.[c,h] gtk/testgtk.c: Added two new signals to
	GtkSpinButton, "input" and "output", to make the output more flexible.
 	The user has to provide a mapping between adjustment->value and the
 	output string (and vice versa, if the spin button is editable).
	See testgtk for examples.
1999-02-28 16:04:47 +00:00
CST 1999 Shawn T. Amundson
279e878bdd Added notice to look in AUTHORS and ChangeLog files for a list of changes.
Wed Feb 24 01:22:39 CST 1999 Shawn T. Amundson <amundson@gtk.org>

        * *.[ch]: Added notice to look in AUTHORS and ChangeLog files
	  for a list of changes.
1999-02-24 07:37:18 +00:00
Owen Taylor
bf39d4cda9 Use a ScrolledWindow test how Text widgets work within ScrolledWindow.
Mon Feb 15 23:55:27 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (create_text): Use a ScrolledWindow
	 test how Text widgets work within ScrolledWindow.
	 (POLICY_AUTOMATIC drew very badly, so it uses
	  POLICY_ALWAYS for the vscrollbar)

	* gtk/gtktext.c (gtk_text_unrealize): Free the cache
	 in the unrealize handler. Some code in gtktext.c
	 assumes that if text->line_start_cache is non-NULL,
	 the widget is realized. We'll recompute it again
	 anyways if we later re-realize.
1999-02-16 04:52:21 +00:00
Lars Hamann
1f85d83ef3 don't autoselect focus_row in case of GTK_SELECTION_EXTENDED
Fri Feb 12 00:08:01 1999  Lars Hamann  <lars@gtk.org>

        * gtk/gtklist.c (gtk_list_remove_items_internal): don't autoselect
        focus_row in case of GTK_SELECTION_EXTENDED

        * gtk/testgtk.c : few changes in list example.

        * gtk/gtklistitem.c (gtk_list_item_class_init):
        * gtk/gtkctree.c (gtk_ctree_class_init):
        * gtk/gtkclist.c (gtk_clist_class_init):
        fixed indentation, removed unused key bindings
1999-02-11 23:47:48 +00:00
Lars Hamann
6475974086 don't autoselect focus_row in case of GTK_SELECTION_EXTENDED
Wed Feb 10 01:02:46 1999  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c (real_remove_row):
	* gtk/gtkctree.c (gtk_ctree_remove_node): don't autoselect focus_row
	in case of GTK_SELECTION_EXTENDED

	* gtk/testgtk.c : few changes in clist/ctree examples.
1999-02-10 23:15:26 +00:00
Owen Taylor
d1bda8d562 Fixed some bugs with set_default_size.
Sun Feb  7 19:49:21 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwindow.c (gtk_window_move_resize): Fixed some
	  bugs with set_default_size.

Sat Feb  6 13:23:51 1999  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-1.2.txt: Added information about
	 the change to gtk_widget_size_request().

	* gtk/gtkentry.c: Call gtk_widget_get_child_requisition
	 explicitely since we differentiate between the usize
	 set by the user and what we got. (Ugh)

	* gtk/gtkwidget.[ch] (gtk_widget_get_child_requisition):
	 New function to return the effective size of a widget
	 as it looks to its parent.

	* gtk/gtkwidget.c (gtk_widget_size_request): Leave
	 widget->requisition set to exactly what the widget
	 asked for, and then make a copy of that into
	 the requisition argument. Allow a NULL requisition
	 argument, and, if G_ENABLE_DEBUG, warn if
	 requisition == &widget->requisition.

	* gtkalignment.c gtkaspectframe.c gtkbutton.c gtkclist.c
	  gtkcontainer.c gtkentry.c gtkeventbox.c gtkfixed.c
	  gtkframe.c gtkhandlebox.c gtkhbox.c gtkhpaned.c
	  gtklayout.c gtklist.c gtklistitem.c gtkmenu.c
	  gtkmenubar.c gtkmenuitem.c gtknotebook.c
	  gtkoptionmenu.c gtkpacker.c gtkscrolledwindow.c
	  gtktable.c gtktoolbar.c gtktree.c gtktreeitem.c
	  gtkvbox.c gtkviewport.c gtkvpaned.c gtkwindow.c

	 Avoid calling gtk_widget_size_request with
	 requisition == widget->requisition; use
	 gtk_widget_get_child_requisition to get the
	 size of children.
1999-02-10 02:35:09 +00:00
Owen Taylor
1472462639 Use floor() instead of truncating to integer values so we get translation
Wed Jan 20 11:19:00 1999  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtklabel.c: Use floor() instead of truncating
	to integer values so we get translation invariance.

	* gtk/gtklayout.c (gtk_layout_size_allocate): Set upper
	and lower values for adjustments in size_allocate().

	* gdk/gdkwindow.c gdk/gdk.h gdk/gdkprivate.h: New
	function gdk_window_set_static_gravities() to set
	up a window for guffaw scrolling.

	* gdk/gdkwindow.c (gdk_window_internal_destroy): Set flags
	indicating destroyed state before cleanup.

	* gtk/gtkprivate.h gtk/gtkwidget.c: Add a new
	private flag IS_OFFSCREEN. If set, this indicates
	to GTK+ that the widget is not to be considered
	viewable regardless of its map state. Queued draws
	on offscreen widgets are suppressed.

	Added new function static gtk_widget_is_offscreen() to
	check this flag on a widget and its ancestors.

	* gtk/gtklayout.[ch]: Major revisions.

	- Use gdk_window_set_static_gravities to set static gravity
	on all child windows, and thus avoid having to create a window
	for NO_WINDOW children.

	- Adjust allocations of children as we scroll them
	so queued draws work correctly.

	- Don't allocate our children directly in a put()
	or move(); just queue a resize() like every other
	widget.

	* gtk/testgtk.c: Make the arrows on the scrollbars
	work, create a larger and more demanding test.
1999-01-27 18:21:20 +00:00
Tim Janik
65ef495712 deprecated gtk_check_menu_item_set_state, people should use
Sun Jan 17 14:52:29 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtkcompat.h:
        * gtk/gtkcheckmenuitem.[hc]:
        deprecated gtk_check_menu_item_set_state, people should use
        gtk_check_menu_item_set_active instead.

        * gtk/testgtk.c:
         s/gtk_check_menu_item_set_state/gtk_check_menu_item_set_active/.
1999-01-17 14:52:22 +00:00
Tim Janik
d2e69a89d4 eliminated some queue_draws when invoking gtk_widget_set_state, since that
Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>

        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
        gtk_widget_set_state, since that cares about redrawing already.
        some code cleanups.

        * gtk/gtktogglebutton.[hc]:
        * gtk/gtkfontsel.c:
        * gtkgamma.c:
        s/gtk_toggle_button_set_state/gtk_toggle_button_set_active/ since
        set_state is already taken by gtkwidget.h.

        * gtk/gtkcompat.h: #define gtk_toggle_button_set_state
        gtk_toggle_button_set_active.

        * gtk/gtkstyle.c: some indentation cleanups.
1999-01-11 18:49:54 +00:00
Jeff Garzik
553fa4309e removed unused var 64-bit cast point to const data Made const-correct.
* gdk/gdkfont.c: removed unused var
        * gdk/gdkim.c: 64-bit cast
        * gtk/gtkaccelgroup.c: point to const data
        * gtk/gtkdnd.[ch]: (gtk_drag_dest_set, gtk_drag_source_set):
          Made const-correct.
        * gtk/gtkfontsel.c: kill uninitialized var warning
        * gtk/gtkselection.[ch]: (gtk_target_list_new,
          gtk_target_list_add_table, gtk_selection_add_targets):
          Made const-correct.
        * gtk/testgtk.c: 64-bit cast
1998-12-24 17:47:02 +00:00
Owen Taylor
7d7b43c244 Create buttons, not combos again.
Tue Dec 15 21:36:14 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/testgtk.c (create_layout): Create buttons,
	not combos again.
1998-12-16 02:37:41 +00:00
Lars Hamann
8a202e6f5b removed clist flag : GTK_CLIST_DRAG_SELECTION added flags :
Tue Dec 15 22:30:44 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.h :
	removed clist flag : GTK_CLIST_DRAG_SELECTION
	added flags : GTK_CLIST_REORDERABLE, GTK_CLIST_USE_DRAG_ICONS,
	GTK_CLIST_DRAW_DRAG_LINE, GTK_CLIST_DRAW_DRAG_RECT
	(GtkCListDragPos) : new enum for DND
 	(GtkButtonAction) : new enum of possible mouse button actions
	(struct _GtkCList): added button_actions array.
 	Added drag_button and click_cell struct, to store cell and
 	mouse button of last button_press_event

	(struct _GtkCListClass): new class method draw_drag_highlight.
	(gtk_clist_set_reorderable) (gtk_clist_set_use_drag_icons) :
	new functions. Moved from gtkctree.h. Now clist is reorderable
	as well.
	(gtk_clist_set_button_actions) new function to customize mouse
	button actions.

	* gtk/gtkclist.c:
	(gtk_clist_drag_begin)
	(gtk_clist_drag_motion)
	(gtk_clist_drag_leave)
	(gtk_clist_drag_end)
	(gtk_clist_drag_drop)
	(gtk_clist_drag_data_get)
	(gtk_clist_drag_data_received) : new dnd widget methods to
	implement clists reorderability via DND

	(remove_grab) : new function. remove mouse grab if necessary.
	(draw_drag_highlight) : new method. Draw dnd highlight depending
	on clist flags GTK_CLIST_DRAW_DRAG_LINE and GTK_CLIST_DRAW_DRAG_RECT

	(gtk_clist_class_init): added object args "reorderable" and
 	"use_drag_icons"

	(gtk_clist_button_press) (gtk_clist_button_release) :
	use button_actions array to decide which action to perform.
	(gtk_clist_motion) : start reorder operation if necessary.

	* gtk/gtkctree.h :
	(struct _GtkCTree): removed drag_icon, icon_widht, icon_height,
	drag_row, drag_source, drag_target, reorderable, use_icons,
	in_drag, drag_rect
	(gtk_ctree_set_reorderable) :  deprecated function.
 	use gtk_clist_set_reorderable instead.
	(gtk_ctree_set_use_drag_icons) : deprecated function.
 	use gtk_clist_set_use_drag_icons instead.

	* gtk/gtkctree.c :
	(gtk_ctree_class_init): removed object args "reorderable" and
	and "use_drag_icons"

	(draw_xor_line) (draw_xor_rect) (create_drag_icon) (check_cursor)
	(tree_toggle_selection) (set_mouse_cursor) : removed

	(draw_drag_highlight) : new clist method. replacement for
	draw_xor_line and draw_xor_rect functions
	(check_drag) renamed check_cursor function

	(gtk_ctree_drag_begin)
	(gtk_ctree_drag_motion)
	(gtk_ctree_drag_data_received) : new dnd methods to implement ctrees
	reorderability via DND

	(gtk_ctree_button_release)
	(gtk_ctree_button_motion) : removed.

	* gtk/testgtk.c:
	(create_clist) : added new reorderable toggle button
1998-12-16 01:28:31 +00:00
Owen Taylor
1566d98867 Use base[NORMAL] instead of bg[PRELIGHT] so CLists now can be used in
Tue Dec 15 19:50:41 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkctree.c gtk/gtkclist.c gtk/testgtk.c: Use
	base[NORMAL] instead of bg[PRELIGHT] so CLists now can be
	used in detergent commercials.
1998-12-16 00:52:46 +00:00
Owen Taylor
a3c1e86ffa Added gdk_text_extents_wc()
Tue Dec 15 14:30:35 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.h gdk/gdkfonts.c: Added gdk_text_extents_wc()

        * Patch from Jonathan Blanford <jrb@redhat.com> to add line wrapping
	  to label. (Based on patch from Jeff Dairiki
	  <dairiki@mac-ceope.apl.washington.edu> gtk-dairiki-971208-0)

	- Adds new function gtk_label_set_line_wrap()
	- implement GTK_JUSTIFY_FILL.
	- rename gtk_label_set to gtk_label_set_text() add
	   gtk_label_set() to gtkcompat.h.

	* Use an internal wc representation in the label, so
	  that we handle underlining and line breaks correctly
	  for multi-byte strings.
1998-12-15 20:31:26 +00:00
Owen Taylor
cceabe57ba Fixed up some warnings.
Tue Dec 15 11:37:05 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmain.c: Fixed up some warnings.

Tue Dec 15 10:32:01 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtk{h,v,}paned.{c,h}: Add new functions
	gtk_paned_set_position(),
	gtk_paned_pack1/2(). The latter take a
	shrink and resize parameters, that allows setting
	minimum sizes and getting 'relative' resizing.
1998-12-15 17:56:31 +00:00
Manish Singh
6af277b502 avoid void pointer math
* gtk/gtkclist.c: avoid void pointer math

* gtk/gtkhscale.c
* gtk/gtkhscrollbar.c
* gtk/gtkvscale.c
* gtk/gtkvscrollbar.c: removed trailing , from enums

* gtk/gtksignal.c: can't use enums as a bitfield type, use guint

* gtk/testgtk.c: removed C++ comment added by owenpoo

-Yosh
1998-12-11 05:52:42 +00:00
Owen Taylor
207757e70d Destroy widgets _after_ propagating unrealize signals through the widget
Mon Dec  7 10:27:09 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c: Destroy widgets _after_ propagating unrealize
	signals through the widget heirarchy. This is unpleasant, as it
	causes more X traffic, but is necessary, because we have to clean
	up our Input Contexts before destroying the X windows.
	(from matsu-981109-0.patch)

Mon Dec  7 10:18:18 1998  Owen Taylor  <otaylor@redhat.com>

	Applied gtk-a-higuti-981202-0 :
	[ a-higuti@math.sci.hokudai.ac.jp (Akira Higuchi) ]

	* gdk/gdk.h gdk/gdk.c
		(gdk_mbstowcs): New function. Nearly equals to mbstowcs, but
			implemented by a combination of Xlib functions, so
			it works even with X_LOCALE.
		(gdk_wcstombs): New function.
		(g_mbtowc): Removed. No longer needed.

	* gdk/gdk.h gdk/gdkfont.c gdk/gdkdraw.c:
	        Added _wc() variants to gdk_text_width(),
		gdk_char_width(), gdk_draw_text(),

	* gdk/gdki18n.h
		(mblen, mbtowc, wctomb, mbstowcs, wcstombs,
		 wcslen, wcscpy, wcsncpy):
			Removed. No longer needed.
		(iswalnum): Removed.
		(gdk_iswalnum): New macro.
		(gdk_iswspace): New macro.
	* gdk/gdktype.h
		(GdkWChar): New typedef.

	* gtk/gtkentry.h, gtk/gtkentry.c
		There are many changes according to the change of the
		internal representation of text, from multibyte string
		to wide characters.
	* gtk/gtkprivate.h, gtk/gtkmain.c
		Removed the variable gtk_use_mb and related codes.
	* gtk/gtkspinbutton.c
		Some changes according to the change of type of entry->text.
	* gtk/gtktext.h, gtk/gtktext.c
		Changed the internal representation of text. We use GdkWchar
		if a fontset is supplied. If not, we use guchar to save
		memory.
1998-12-09 06:36:57 +00:00
CST 1998 Shawn T. Amundson
6421c96ccc Released GTK+ 1.1.6
Tue Dec  8 18:29:05 CST 1998 Shawn T. Amundson <amundson@gtk.org>

        * Released GTK+ 1.1.6

        * NEWS: updated

        * gtk/Makefile.am:
          gtk/testgtk.c:
          gtk/gtkrc.h:
          gtk/gtkrc.c: Read in default files.
1998-12-09 01:05:41 +00:00
Andrew T. Veliath
d6acd1ecd3 Functions to test the toolbar space style.
* gtk/testgtk.c: Functions to test the toolbar space style.

	* gtk/gtktoolbar.c: Add a private GtkToolbarChildSpace subclass of
	GtkToolbarChild to hold allocation. Set default space style to
	GTK_TOOLBAR_SPACE_EMPTY, define SPACE_LINE_* for separator
	fraction defaults.
	(gtk_toolbar_paint_space_line): New function; paints the separator
	line, using "toolbar" as the detail.
	(gtk_toolbar_expose): (gtk_toolbar_draw): Handle CHILD_SPACE when
	style is set to SPACE_LINE.
	(gtk_toolbar_size_allocate): Store space allocations.
	(gtk_toolbar_insert_element): If we are a space, allocate and
	initialize a GtkToolbarChildSpace instead of a GtkToolbarChild.
	(gtk_toolbar_set_space_style): New function.

	* gtk/gtktoolbar.h: Add GtkToolbarSpaceStyle, with styles of EMPTY
	and LINE. Add prototype for gtk_toolbar_set_space_style.
1998-12-08 13:25:35 +00:00
Owen Taylor
621beb8aaf New functions gtk_window_set_transient_for() - set up a "transient for"
Mon Dec  7 01:29:27 1998  Owen Taylor  <otaylor@gtk.org>

	* gtk/gtkwindow.c: New functions
        gtk_window_set_transient_for() - set up a "transient for" relationship.
	gtk_window_set_default_size() - set the initial size of a window
	   distinct from its minimum size.
	gtk_window_set_geometry_hints() - Allow the user to set
	   minimum, maximum sizes, aspect rations, and gridded geometry,
	   possibly all with respect to a subwidget of the window.
	These interfaces are still a wee bit experimental.

	* gdk/gdk.c: Added gdk_window_set_transient_for(),
	gdk_window_set_geometry_hints(), and gdk_window_set_role().

	* gdk/gdktypes.h: Added new types for find-grained specification
	of WM hints.

	* gtk/testgtk.c: Various changes to tests to test the
	above new functions.

	* gtk/gtkfontsel.c: Squash a few 'const' warnings.

	* gtk/gtktogglebutton.c (gtk_toggle_button_realize): Restored
	call to gtk_style_set_background() to prevent egregious
	flashing to black.
1998-12-07 06:37:27 +00:00
Tim Janik
33447a3856 reverted marius change to expose the type systems internal type info data
Mon Dec  7 03:08:39 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: reverted marius change to expose the type systems
        internal type info data to the user. if such functionality is required
        we should provide wrapped accessors, ala gtk_signal_query().

        * gtk/gtksignal.c (gtk_signal_connect_by_type): reverted marius change,
        since it destroys the possibility to implement automatic marshaller
        lookups some day, and it also disables third party code's ability to
        connect to any signal. also the GtkTypeInfo structures are dynamically
        allocated memory portions, so only the type system is really allowed
        to access that stuff.

Mon Dec  7 01:32:18 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkfilesel.c (gtk_file_selection_key_press): always intercept the
        Tab key on the entry. the focus shouldn't get lost even if completion
        is attempted from an empty entry, since an empty entry string does
        indeed have a valid completion meaning (complete all).
        (gtk_file_selection_init): cast the gchar array parameter in calls to
        gtk_clist_new_with_titles() to quit compiler warnings.
        (check_dir): the no_stat_dirs struct must not be const, since we do
        indeed modify its contents.

        * gtk/testgtk.c (event_watcher): adapted prototype to fit new emission
        hook semantics.

        * gtk/gtksignal.h:
        * gtk/gtksignal.c:
        changed emission allocation, so we don't use a doubly linked list
        but link ourselfs (singly linked).
        changed emission hooks, they get the emision parameters passed as
        well now and are emitted during the actuall signal emission (after
        the RUN_FIRST class method, but prior to RUN_FIRST handlers).
        the existing restrictions do still apply to signal emission hooks,
        i.e. an emission may not be stopped or restarted from an emission hook.
        due to possibly huge perfomance impacts, frequent use of emision hooks
        is also not recommended.
        (gtk_signal_next_and_invalidate): added an
        assertments which explicits what the code assumes anyways: a
        maximum amount of 65535 signals.

        * gtk/gtkcontainer.h: deprecated gtk_container_foreach_interp(),
        gtk_container_foreach_full() should be used instead.

        * gtk/gtkmain.h:
        deprecated gtk_timeout_add_interp and gtk_idle_add_interp, since
        we provide _full variants.

        * gtk/gtksignal.h: deprecated gtk_signal_connect_interp(), we provide
        gtk_signal_connect_full() for long enough now.
1998-12-07 02:31:19 +00:00
Tim Janik
2c0fc39e62 added an event watcher for enter/leave based on signal emission hooks.
Mon Nov 30 06:20:36 1998  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c: added an event watcher for enter/leave based on
        signal emission hooks.

        * gtk/gtkobject.c (gtk_object_class_init): made GtkObject::destroy a
        GTK_RUN_NO_HOOKS signal.

        * gtk/gtksignal.h:
        * gtk/gtksignal.c: implemented emission hooks, new hooks can be added
        to a signal with gtk_signal_add_emission_hook or
        gtk_signal_add_emission_hook_full, and can be removed again with
        gtk_signal_remove_emission_hook.

        * gtk/gtkenums.h: remove GTK_RUN_MASK, since it doesn't represent
        an appropriate mask for signal runtypes for a long time now.
        added GTK_RUN_NO_HOOKS value, which is used to flag signals
        that do not allow the running of signal hooks.
1998-11-30 07:09:36 +00:00
Tim Janik
238ede333f changed scrolled window inheritance, it inherits from GtkBin now.
Sat Nov 28 03:13:42 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkscrolledwindow.h:
        * gtk/gtkscrolledwindow.c: changed scrolled window inheritance,
        it inherits from GtkBin now.

        * gtk/gtkbin.c (gtk_bin_unmap): removed superfluous check for
        visibility of child.
        (gtk_bin_draw): removed superfluous check for GTK_WIDGET_DRAWABLE().
        added check so a child gets only drawn if it's visible.

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: removed gtk_widget_draw_children().

        * gtk/gtkstyle.h:
        * gtk/gtkstyle.c: rmoved gtk_reset_widget_shapes.

        * gtk/gtkwidget.h:
        * gtk/gtkwidget.c: removed crufty relict: gtk_widget_is_child().
        added internal function gtk_widget_reset_shapes() from gtkstyle.c.

        * gtk/gtkrc.h:
        * gtk/gtkrc.c: (gtk_rc_find_pixmap_in_path): removed bogus gscanner
        argument, changed callers.

        * gtk/gtkmenufactory.c: GtkMenuFactory is deprecated for a long time,
        it will issue a warning now.

        * gtk/gtkcompat.h: new file to #define aliases for historic
        function names.

        * changed 8 function names for consistency and provided aliases to keep
        source compatibility in gtkcompat.h:
        (gtk_accel_label_get_accel_width): renamed from gtk_accel_label_accelerator_width
        (gtk_container_set_border_width): renamed from gtk_container_border_width
        (gtk_notebook_get_current_page): renamed from gtk_notebook_current_page
        (gtk_packer_configure): renamed from gtk_packer_set_child_packing
        (gtk_paned_set_gutter_size): renamed from gtk_paned_gutter_size
        (gtk_paned_set_handle_size): renamed from gtk_paned_handle_size
        (gtk_scale_get_value_width): renamed from gtk_scale_value_width
        (gtk_window_set_position): renamed from gtk_window_position

        * renamed a few recently added funtions for consistency:
        (gtk_notebook_get_tab_label): renamed from gtk_notebook_query_tab_label.
        (gtk_notebook_get_menu_label): renamed from gtk_notebook_query_menu_label.
        (gtk_progress_configure): renamed from gtk_progress_reconfigure.
1998-11-28 07:42:37 +00:00
Owen Taylor
a425e6b5c2 Edited section on the ScrolledWindow.
Tue Nov 24 11:31:06 1998  Owen Taylor  <otaylor@redhat.com>

	* docs/Changes-1.2.txt: Edited section on the ScrolledWindow.

	* gtk/gtklayout.c (gtk_layout_set_[hv]adjustment): Remove
	some code duplication.

	* gtk/gtklayout.[ch] Fixed mapping and unmapping of child windows
	and child widgets when scrolling greater than 32k pixels.

	* testgtk.c: Modified layout test to test scrolling over
	long distances.

	* gtk/gtkplug.c: Added a few blank lines.
1998-11-24 19:33:01 +00:00
Owen Taylor
ee1d43929c Added layout widget for scrolling arbitrarily big areas. Added plug/socket
Mon Nov 23 22:10:09 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/Makefile.am gtk/gtk.h gtk/gtklayout.[ch]
	gtk/gtkplug.[ch] gtk/gtksocket.[ch] gtk/gtk.h:

	Added layout widget for scrolling arbitrarily big areas.
	Added plug/socket widgets for interprocess embedding.

	These widgets still, at some point, need to be
	made more pure in their use of GDK, as opposed
	to raw X.

	* gtk/testgtk.c: Added test for layout widget.
1998-11-24 04:45:29 +00:00
Tim Janik
98e22a43ab added args ::show_text, ::text_xalign, ::text_yalign, ::activity_mode.
Sun Nov 22 16:21:28 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkprogress.c: added args ::show_text, ::text_xalign,
 	::text_yalign, ::activity_mode.

	* gtk/gtkprogressbar.c: added construct arg ::adjustment. added args
 	::bar_style, ::orientation, ::discrete_blocks, ::activity_step,
 	::activity_blocks.
	(gtk_progress_bar_new):
	(gtk_progress_bar_new_with_adjustment): use gtk_widget_new().
	(gtk_progress_bar_construct): deprecated.

	* gtk/gtkvscrollbar.c:
	(gtk_vscrollbar_draw_step_back):
	(gtk_vscrollbar_draw_step_forw): use "vscrollbar" as detail for
 	gtk_paint_arrow, to be consistent with hscrollbar.

	* gtk/gtktext.c
	added construct args ::hadjustment, ::vadjustment.
	added args ::line_wrap, ::word_wrap.
	(gtk_text_class_init): added scroll_adjustments signal.
	(gtk_text_new): use gtk_widget_new.
	(gtk_text_disconnect): remove adjustement with gtk_text_set_adjustments,
	so we don't screw the reference counts and don't leave signals connected.
 	(gtk_text_destroy): disconnect adjustments signals.
 	(gtk_text_finalize): unref adjustments.

	* gtk/gtkctree.c: added construct args ::n_columns and ::tree_column.
	added args ::indent, ::spacing, ::show_stub, ::reorderable,
 	::use_drag_icons, ::line_style and ::expander_style.
	(gtk_ctree_set_show_stub): renamed from gtk_ctree_show_stub, which is
	deprecated now.

	* gtk/gtkclist.h: remove GTK_CLIST_CONSTRUCT flag.
	* gtk/gtkclist.c:
 	removed ::vadjustment and ::hadjustment args, introduced
 	::scroll_adjustments signal.
	added ::shadow_type, ::selection_mode and ::row_height args.
	added n_columns construct arg.
	(gtk_clist_construct): call gtk_object_constructed().
 	(gtk_clist_set_row_height): if height is passed as 0,
	revert to automatic height calculation.
	(gtk_clist_destroy): before unrefing the adjustments, disconnect our
	signal handlers.

Fri Nov 21 22:34:58 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkwidget.c (gtk_widget_new): call gtk_object_default_construct
	like gtk_object_new.
	(gtk_widget_destroy): assert that we only destroy constructed widgets.

	* gtk/gtkobject.h (enum GtkArgFlags): new flag GTK_ARG_CONSTRUCT_ONLY
	to identify args that may only be used for construction.
	GTK_ARG_CONSTRUCT maybe used as normal arguments besides construction
	time.
	* gtk/gtkobject.c (gtk_object_new): invoke gtk_object_default_construct
	at the end if the object is not fully constructed.
	(gtk_object_newv): likewise.
	(gtk_object_destroy): assert that we only destroy constructed objects.
 	(gtk_object_init): setup GTK_CONSTRUCTED from the
	objects real klass.
	(gtk_object_default_construct): new function to complete default
	construction of an object by applying missing construtor args with
	default values of 0, 0.0 or NULL.
	(gtk_object_constructed): new function to mark an object as being
	constructed (used from within constructors).

	* gtk/gtkarg.c (gtk_arg_type_new_static): return the args info pointer
	so it is immediatedly available for the caller.

	* gtk/gtktypeutils.c (gtk_type_new): pass an object's real class to
	the object initilizer (GtkObjectInitFunc takes a second arg now, the
 	real klass), and asure that object initializers may temporarily alter
	the class pointer.

Fri Nov 20 08:00:30 1998  Tim Janik  <timj@gtk.org>

	* gtk/testgtk.c: change all occourances of gtk_container_add (
	scrolled_window, widget) to gtk_scrolled_window_add_with_viewport (...)
	for widget!=(clist, ctree, text, viewport).

	* gtk/gtkcombo.c:
 	(gtk_combo_init): use gtk_scrolled_window_add_with_viewport()
	to add children to the scrolled window.

	* gtk/gtkscrolledwindow.h:
	* gtk/gtkscrolledwindow.c:
	changed scrolled_window->viewport to scrolled_window->child, and use
	gtk_widget_scroll_adjustements() to set the scroll adjustments for the
	widget, we do not create an additional viewport anymore.
	added ::hadjustment and ::vadjustment constructor args.
 	(gtk_scrolled_window_new): use gtk_widget_new() to create the widget.
	(gtk_scrolled_window_set_hadjustment):
	(gtk_scrolled_window_set_vadjustment): new functions that superceed
	gtk_scrolled_window_construct.
	(gtk_scrolled_window_construct): deprecated this function.

	* gtk/gtkhscrollbar.c:
	* gtk/gtkvscrollbar.c:
	* gtk/gtkhscale.c:
	* gtk/gtkvscale.c:
	support a constructor arg "::adjustment", and use gtk_widget_new() for
	the widget creation.

	* gtk/gtkrange.c: added ::update_policy arg.
 	(gtk_range_set_adjustment): if adjustment is passed in as NULL, create
 	a default adjustment so this function can be used for derived widgets
 	that depend on the adjustment's existance.
	(gtk_range_destroy): disconnect the adjustment signal, so we don't
	get called after we got destroyed, we don't destroy the adjustment
	in here, because it might have been provided from another widget.

	* gtk/gtkviewport.c: introduced ::scroll_adjustments signal.
	(gtk_viewport_destroy): same as gtk_range_destroy.

	* gtk/gtkprogress.c (gtk_progress_destroy): same as gtk_range_destroy.

	* gtk/gtkwidget.h:
	* gtk/gtkwidget.c: changed gtk_widget_activate() to return a
	gboolean, indicating whether this widget supports activation.
	added gtk_widget_scroll_adjustements() to set the scrolling
	adjustments of a widget.

Wed Nov 19 01:22:42 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkoptionmenu.c:
 	(gtk_option_menu_remove_contents):
	(gtk_option_menu_update_contents): removed
 	gtk_container_[un]block_resize() pairs.

	* gtk/gtknotebook.h:
	* gtk/gtknotebook.c: removed the tab_border field, since it shouldn't
	be used outside of gtknotebook.c anyways. made ARG_TAB_BORDER a
	wrtie-only argument.

	* *.c: made deprecated functions issue a message:
	gtk_clist_set_border, gtk_container_block_resize,
 	gtk_container_unblock_resize, gtk_container_need_resize,
 	gtk_object_class_add_user_signal, gtk_spin_button_construct,
	gtk_scrolled_window_construct.
	removed non-functional functions:
	gtk_container_disable_resize, gtk_container_enable_resize,
	gtk_clist_set_policy.

Wed Nov 18 22:54:36 1998  Tim Janik  <timj@gtk.org>

	* gtk/gtkbox.c (gtk_box_init):
	* gtk/gtkdrawingarea.c (gtk_drawing_area_init):
	* gtk/gtkeventbox.c (gtk_event_box_init):
	* gtk/gtkfixed.c (gtk_fixed_init):
	* gtk/gtkframe.c (gtk_frame_init):
	* gtk/gtkhandlebox.c (gtk_handle_box_init):
	* gtk/gtkpacker.c (gtk_packer_init):
	* gtk/gtkmisc.c (gtk_misc_init):
	* gtk/gtkpreview.c (gtk_preview_init):
	* gtk/gtkprogress.c (gtk_progress_init):
	* gtk/gtkprogressbar.c (gtk_progress_bar_init):
	* gtk/gtkseparator.c (gtk_separator_init):
	* gtk/gtktable.c (gtk_table_init):
	* gtk/gtkviewport.c (gtk_viewport_init):
	* gtk/gtkalignment.c (gtk_alignment_init):
	removed setting of the GTK_BASIC flag.

	* gtk/gtkwidget.h:
	* gtk/gtkwidget.c:
	removed GTK_BASIC, GTK_WIDGET_BASIC and	gtk_widget_basic.

	* miscellaneous GtkType and macro fixups.
1998-11-23 01:54:45 +00:00
Lars Hamann
e94a7b1a7a new flags : homogeneous; new guints : tab_hborder, tab_vborder; marked
Tue Nov 17 00:06:29 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtknotebook.h (struct _GtkNotebook): new flags : homogeneous;
	new guints : tab_hborder, tab_vborder; marked tab_border deprecated
	(struct _GtkNotebookPage): new flags : expand, fill, pack

	* gtk/gtknotebook.h/c
	(gtk_notebook_set_homogeneous_tabs): new function. set homogeneneous
 	tabs
	(gtk_notebook_set_tab_border): set tab_h/vborder to tab_border
	(gtk_notebook_set_tab_hborder): new function. set tab_hborder
	(gtk_notebook_set_tab_vborder): new function. set tab_vborder
	(gtk_notebook_query_tab_label): new function. get tab_label widget.
	(gtk_notebook_set_tab_label): new function. set tab_label widget.
	(gtk_notebook_set_tab_label_text): new function. set tab_label text.
	(gtk_notebook_query_menu_label): new function. get tab_label widget.
	(gtk_notebook_set_menu_label): new function. set tab_label widget.
	(gtk_notebook_set_menu_label_text): new function. set tab_label text.
	(gtk_notebook_set_tab_label_packing): new function. set tab_label
 	fill, expand, fill_type
	(gtk_notebook_query_tab_label_packing): new function. get tab_label
 	fill, expand, fill_type

	(gtk_notebook_real_page_position): return logic page number
	(gtk_notebook_search_page) search next/prev logic page
	(gtk_notebook_update_labels): set logic page number.
	(gtk_notebook_page_compare): renamed gtk_notebook_find_page
	(gtk_notebook_set/get_child_arg): new args CHILD_ARG_TAB_EXPAND,
 	CHILD_ARG_TAB_FILL, CHILD_ARG_TAB_PACK
 	(gtk_notebook_button_press) (gtk_notebook_key_press)
 	(gtk_notebook_focus) (gtk_notebook_pages_allocate)
	(gtk_notebook_calc_tabs) (gtk_notebook_switch_focus_tab)
 	use gtk_notebook_search_page
	(gtk_notebook_page_allocate): fixed allocation bug
	(gtk_notebook_set/get_arg): new args TAB_HBORDER, TAB_VBORDER.
	(gtk_notebook_init): unset GTK_NO_WINDOW flag
	(gtk_notebook_size_request): check whether page->child is visible.
 	changes due to tab h/vborder, homogeneous tabs
	(gtk_notebook_paint): don't draw invisible tabs
	(gtk_notebook_switch_page): calculate page_num if it's less than 0
 	(gtk_notebook_append_*) (gtk_notebook_prepend_*)
 	(gtk_notebook_insert_page): removed sanity checks

	* gtk/testgtk.c (create_notebook): extended Notebook sample a bit.
1998-11-16 23:40:50 +00:00
Lars Hamann
f164436f86 added ARG_WINDOW_PLACEMENT
Wed Nov 11 19:54:58 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init)
        (gtk_scrolled_window_set_arg) (gtk_scrolled_window_get_arg):
        added ARG_WINDOW_PLACEMENT

        * gtk/gtkclist.c (size_allocate_columns): resize column if column
        button > column width and auto_resize is set
        (real_clear) (column_auto_resize) (gtk_clist_optimal_column_width):
        consider column button width of auto resized columns
        (gtk_clist_parent_set): removed

        * gtk/gtkctree.c (gtk_ctree_insert_node): call column_auto_resize.
        (auto_resize_columns): auto_resize all columns
        (real_tree_collapse) (gtk_ctree_remove_node): call auto_resize_columns
        (column_auto_resize): respect column button width of auto resized
        columns
1998-11-11 20:46:51 +00:00
Lars Hamann
6ef274c0ed new enum GtkCornerType added window_placement. new method to set
Mon Nov  9 00:39:20 1998  Lars Hamann  <lars@gtk.org>

        * gtk/gtkenums.h : new enum GtkCornerType
        * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindow): added
        window_placement.
        * gtk/gtkscrolledwindow.c (gtk_scrolled_window_set_placement):
        new method to set window_placement.
        (gtk_scrolled_window_viewport_allocate)
        (gtk_scrolled_window_size_allocate): few changes due to
        window_placement.
        * gtk/testgtk.c (remove_selection): fixed while loop.
1998-11-09 00:23:37 +00:00
Manish Singh
3c07b7ebbd check if column[i].button is valid before calling gtk_widget_intersect on
* gtk/gtkclist.c: check if column[i].button is valid before calling
gtk_widget_intersect on it in gtk_clist_draw

* gtk/gtkdnd.c: removed unused variable empty_bits

* gtk/gtkrc.c: we should use gslist_* functions with GSLists...

* gtk/gtktypeutils.[ch]: makes more send for gtk_type_is_a to return
a boolean (thanks to Elrond for noticing this)

-Yosh
1998-11-08 05:58:41 +00:00
Guillaume Laurent
75fff482b9 Added warning about callback on <Branch> items 1998-11-07 00:33:22 +00:00
Owen Taylor
e2a5219220 Merge from themes-2. See the ChangeLog for a somewhat detailed
history of the evolution of the changes involved. Most of this
is actually minor painting tweaks.
1998-11-06 22:05:02 +00:00
Lars Hamann
00fbbe68b0 removed vscrollbar, hscrollbar, vscrollbar_policy, hscrollbar_policy.
Thu Nov  5 16:00:32 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
 	vscrollbar_policy, hscrollbar_policy. added h/vadjustment.

	* gtk/gtkclist.c (gtk_clist_class_init): added new args types
  	"hadjustment" & "vadjustment"
 	 (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
  	set/get_arg functions
 	(gtk_clist_construct): don't create/adjust scrollbars.
 	(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
 	to set h/vadjustments
  	(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
 	to query h/vadjustments
 	(create_scrollbars): removed.
 	(create_adjustments): replacement for create_scrollbars
 	(gtk_clist_new): call gtk_clist_new_with_titles
 	(gtk_clist_new_with_titles): don't warn on titles == NULL
 	(move_horizontal): use CLAMP instead
 	(gtk_clist_set_policy): deprecated method.
  	use gtk_scrolled_window_set_policy instead.
 	(vadjustment_value_changed): use clist->vadj.
 	(adjust_scrollbars): renamed to adjust_adjustments
 	(adjust_adjustments): former adjust_scrollbars
 	(gtk_clist_destroy): unref adjustments
 	(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
  	(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
  	(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
 	(gtk_clist_thaw) (real_insert_row) (real_remove_row)
 	(gtk_clist_set_row_height) (real_resize_column):
 	call adjust_adjustments
 	(gtk_clist_moveto): return if clist has no adjustments yet.
 	(gtk_clist_parent_set): new GtkWidget::parent_set function.
 	Autogenerate h/vadjustments if needed.
 	(move_horizontal) (move_vertical): some cleanups

	* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
  	call only gtk_viewport_set_h/vadjustment and let these functions
  	do the work.
 	(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
 	generate a new adjustment if needed

	* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
  	use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
  	queue_resize if visibility of scrollbars changes
  	(gtk_scrolled_window_remove): only call container_remove with
  	scrolled_window->viewport automatically if viewport was autogenerated
 	(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
 	auto create a viewport only if widget does not take h/vadjustments.
 	(gtk_scrolled_window_construct): don't generate a viewport
  	automatically.
 	(gtk_scrolled_window_forall): call callback with viewport in any case
 	(gtk_scrolled_window_set_arg): call gtk_container_add in case of
  	ARG_VIEWPORT
 	(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
 	(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
  	viewport != NULL

	* gtk/testgtk.c
 	(create_ctree) (export_ctree) (create_clist): use a scrolled_window
  	in conjunction with clists/ctrees

	* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
 	in conjunction with clists

	* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
 	in conjunction with clists
1998-11-05 15:44:22 +00:00
Lars Hamann
e45890a616 rearranged some functions (gtk_clist_set_column_auto_resize): new
Mon Oct 19 23:44:41 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.c: rearranged some functions
	(gtk_clist_set_column_auto_resize): new function. toggle auto_resize
 	flag of column
	(gtk_clist_set_column_resizeable): if resizeable disable auto_resize
	(gtk_clist_set_border): deprecated function, use
 	gtk_clist_set_shadow_type instead.
	(gtk_clist_set_shadow_type): replacement for gtk_clist_set_border
 	(adjust_scrollbars): some cleanups
	(select_row) (unselect_row): removed. replaced by equivalent
	gtk_signal_emit calls
	(add_style_data): removed, use gtk_clist_style_set instead
	(gtk_clist_style_set): fill in size data, after style was set.
 	(set_cell_contents) (gtk_clist_set_shift) (gtk_clist_set_row_style)
 	(gtk_clist_set_cell_style): auto_resize columns if needed
	(column_auto_resize): resize column if needed for auto_resize
	(real_clear): disable auto_resize while list destroy
	(resize_column): removed

	* gtk/gtkctree.c : (gtk_ctree_remove_node)
	(gtk_ctree_set_line_style) (gtk_ctree_set_expander_style)
	(gtk_ctree_node_set_row_style) (gtk_ctree_node_set_cell_style)
 	(set_cell_contents) (gtk_ctree_node_set_shift) (gtk_ctree_set_spacing)
	(real_tree_move) (gtk_ctree_set_indent) (gtk_ctree_insert_node)
	(real_tree_collapse) (real_tree_expand) (column_auto_resize):
 	auto_resize columns if needed
	(gtk_ctree_collapse_recursive) (gtk_ctree_collapse_to_depth)
	(real_clear): disable auto_resize while processing the tree

	* gtk/testgtk.c (create_clist) (create_ctree): set auto_resize
	for one column
1998-10-19 22:46:38 +00:00
Owen Taylor
f7bcb45607 Added a modular client-message-filter mechanism, that is used for the DND
Sun Oct 18 18:16:39 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdk.c gdkprivate.h: Added a modular client-message-filter
	mechanism, that is used for the DND messages.

	  Removed all the old DND code.

	* gdk/gdkcolormap.c gdk/gdkcolormap.h: Add a function to
	get the visual of a given colormap.

	* gtk/gtkcolorsel.c: Conversion to new DND, drag
	a color-swatch.

	* gdk/gdk.h gdk/gdkdnd.c: The low-level
	X oriented portions of drag and drop protocols.
	Sending and receiving client messages, and navigating
	window trees.

	* gdk/gdkimage.c: added a gdk_flush() when destroying
	SHM images to hopefully make it more likely that
        X will gracefully handle the segment being destroyed.

	* gdk/gdkprivate.h gtk/gtkdebug.h: Add new
	DND debugging flags.

	* gtk/gtkeditable.[ch]: Updates for the selection handling
	changes.

	* gtk/gtkselection.[ch]: Added GtkTargetList, a
	refcounted data structure for keeping track of lists
	of GdkAtom + information. Removed selection_handler_add
	in favor of a "drag_data_get" signal.

	* gtk/gtkdnd.[ch] gtk/gtk.h: New files - highlevel (event loop
	dependent) parts of the DND protocols, display of drag icons,
	drag-under highlighting, and the "default handlers".

	* gtk/gtkinvisible.[ch]: New widget - InputOnly offscreen
	windows that are used for reliable pointer grabs and
	selection handling in the DND code.

	* gtk/testdnd.c: New test program for new DND. (Old
	DND tests in testgtk still need to be converted.)

	* gtk/testselection.c: Use the new selection API.

	* docs/dnd_internals: Start at describing how
	all the new code works inside.

	* docs/Changes-1.2.txt: New file describing source-incompatible
	changes in GTK+-1.2.

Sat Oct 17 22:50:34 1998  Owen Taylor  <otaylor@gtk.org>

	* gdk/gdkwindow.c (gdk_window_remove_filter): Free
	the right list node.

	* gdk/gdkwindow.c (gdk_window_init): Add gdk_root_parent
	to the XID table so we can receive events on it.

Wed Oct 14 12:57:40 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.c gdk/gdk.h (gdk_event_get_time): New function
	to get the timestamp from a generic event.

Fri Oct  9 13:16:04 1998  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_add_events): Added function
	that safely adds additional events to a widget's event
	mask, even if the widget has previously been realized.
	(We can do this, but not remove events from the event
	 mask).

Fri Oct  2 17:35:35 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.c (gdk_property_get): Allow type == 0,
	for AnyPropertyType.

Fri Oct  2 10:32:21 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkproperty.c (gdk_atom_intern): Add client-local
	hashing.

Thu Sep 24 20:33:54 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.c (gdk_event_send_clientmessage_toall): serial
	isn't a timestamp.

Thu Sep 17 14:23:03 1998  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdk.c (gdk_event_translate): Removed printing
	of unknown window lookup warnings. (Made it
	a GDK_NOTE) - they happen in many circumstances.
1998-10-18 22:51:24 +00:00
Lars Hamann
eff33964d7 change a few cell styles of inserted row (change_style): change style of
Fri Oct 16 15:59:02 1998  Lars Hamann  <lars@gtk.org>

	* gtk/testgtk.c (insert_row_clist) (create_clist): change a few cell
	styles of inserted row
	(change_style): change style of focus_row

	* gtk/gtkclist.c (gtk_clist_get_row_style) (gtk_clist_set_row_style)
	(gtk_clist_get_cell_style) (gtk_clist_set_cell_style): new functions
	to set/get row/cell styles.
	(gtk_clist_realize): attach row and cell style, allocate row colors.
	(gtk_clist_unrealize): detach row and cell styles.
	(get_cell_style): new function. get correct cell style.
	(draw_cell_pixmap): new function.
	(draw_row): draw cells with row or cell styles.
	(row_new): set cell and row styles to NULL.
	(row_delete): detach & unref cell and row styles.

	* gtk/gtkctree.c (ctree_detach_styles) (ctree_attach_styles):
	new functions to attach/detach styles and allocate colors.
	(gtk_ctree_realize) (gtk_ctree_unrealize): attach/detach cell and row
	styles of invisible nodes.
	(draw_cell_pixmap): new function.
	(get_cell_style):  new function. get correct cell style.
	(gtk_ctree_draw_expander): new function. draw tree expander.
	(gtk_ctree_draw_lines): new function.draw tree lines.
	(draw_row): draw cells with row or cell styles.
	(row_new): set cell and row styles to NULL.
	(row_delete): detach & unref cell and row styles.
	(gtk_ctree_node_get_row_style) (gtk_ctree_node_set_row_style)
	(gtk_ctree_node_get_cell_style) (gtk_ctree_node_set_cell_style):
	Analogons of GtkCList functions
	(gtk_ctree_set_spacing): new function. set spacing between
	tree expander and cell contents
	(gtk_ctree_set_expander_style): new function. set expander style
	of ctree.
	(ctree_is_hot_spot): few changes due to draw_row modifications.
1998-10-16 15:00:05 +00:00
Tim Janik
c3a163b021 use g_free to free g_malloced memory (Martin Pool
Tue Oct  6 14:05:00 1998  Tim Janik  <timj@gtk.org>

        * gtk/testgtk.c (cb_tree_destroy_event): use g_free to free g_malloced
        memory (Martin Pool <mbp@wistful.humbug.org.au>).
1998-10-06 12:36:17 +00:00
Tim Janik
c961dd184b new function to get the *real* geometry position of a window, taken
Sat Sep 25 23:33:55 1998  Tim Janik  <timj@gtk.org>

        * gdk/gdkwindow.c (gdk_window_get_root_origin): new function to get
        the *real* geometry position of a window, taken possible window
        manager offsets into account.
        this has been succesfully tested with fvwm, fvwm-2, bowman, olwm,
        olvwm, twm, ctwm, mlvwm, windowmaker and enlightenment.
        it does fail though for amiwm which adds windows to a pseudo root
        window, and for icewm by a small offset because it defines the
        geometry position whithin its border.

        * gtk/testgtk.c: added "saved position" test to figure how
        gdk_window_get_root_origin() interacts with window managers (repopup
        this window to figure ;).
1998-09-25 23:04:32 +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
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
Raph Levien
e946fcf69d Change to testgtk to go along with GdkRgb integration into gtk_preview. 1998-08-20 06:59:26 +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
dceb6a11c8 remove the ugly HAVE_LIBGLE test (last time i typed that word!). 1998-08-17 03:54:27 +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
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
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
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
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
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
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
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
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
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
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
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
Manish Singh
4b7bbd4434 use rand() instead of random() for portability
-Yosh
1998-06-28 06:24:49 +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
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
Lars Hamann
1b5a1e1acb new CTree line style GTK_CTREE_LINES_TABBED 1998-06-22 17:00:21 +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
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
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
7cb2ce4d11 Changed GtkSpinButtonUpdatePolicy enum, added keyboard
acceleration, new API gtk_spin_button_set_snap_to_ticks.
1998-06-17 20:07:31 +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
Stefan Jeske
b39687aac8 New API to set the shadow type of the arrow panel. 1998-06-13 08:56:27 +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
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
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
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
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
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
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
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
Stefan Jeske
cb12593d57 Started documentation of GtkCTree. 1998-05-10 17:05:39 +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
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
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
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
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
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
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
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
05bc6a5b36 Merged changes from gtk-1-0. Check ChangeLog for details. 1998-05-01 04:23:59 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
782dcc834b api changes to GtkToolBar to support the private tooltips text also.
-guess who ;)
1998-02-21 04:46:21 +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
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
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
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
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
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
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
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
4af33fa24d hm, initital refcount revolution commit ;)
still some gnits left, but keep working on it ;)
-timj
1998-01-30 23:47:09 +00:00
Owen Taylor
0dae051ddd Conversion to use Paolo Molaro's GtkCombo instead of GtkComboBox 1998-01-20 21:40:38 +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
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
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
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
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
f873f58d5b a few modifications, blah blah 1998-01-08 20:25:33 +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
Elliot Lee
51a481d9e8 Added gtk_entry_set_editable() 1998-01-07 00:04:19 +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
0e3e5eed78 Better Clist test in testgtk.c. -Jay 1998-01-03 23:28:28 +00:00
Jay Painter
948a3620cf Added column list widget GtkCList. -Jay Painter 1998-01-03 03:31:03 +00:00
Elliot Lee
2b65feb5a5 Fix warnings in testgtk 1998-01-02 04:31:37 +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
Arturo Espinosa
104f72cf95 Added "orientation_changed" and "style_changed" signals to GtkToolbar.
Fixed some nits. - Federico
1997-12-23 06:11:36 +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
61124945c0 more gtkhandlebox work.. 1997-12-19 19:17:45 +00:00
Owen Taylor
d5d01a5af9 It's all in the changelog. Well, almost all.
-owt
1997-12-18 02:17:14 +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
Elliot Lee
9508b76bd2 Initial revision 1997-11-24 22:37:52 +00:00