Commit Graph

69 Commits

Author SHA1 Message Date
Christian Hergert
15b3c0f563 textview: add undo/redo support to GtkTextView
This builds upon the GtkTextHistory helper to provide undo and redo support
for the GtkTextView widget and GtkTextBuffer object.

You can undo/redo using familiar shortcuts such as Primary+Z,
Primary+Shift+Z, ad Primary+Y.

Developers that wish to disable undo, should set the
GtkTextBuffer:enable-undo property to FALSE.

You can wrap irreversible actions
gtk_text_buffer_begin_irreversible_action() and
gtk_text_buffer_end_irreversible_action(). This will cause the undo stack
to drop all undo/redo actions and the changes made between them will be
the "initial state" of the buffer.

Calling gtk_text_buffer_set_text() will do this automatically for you.
2019-11-05 09:34:29 -08:00
Matthias Clasen
4c150d8eb5 The big versioning cleanup
Remove all the old 2.x and 3.x version annotations.
GTK+ 4 is a new start, and from the perspective of a
GTK+ 4 developer all these APIs have been around since
the beginning.
2018-02-06 01:16:32 -05:00
Benjamin Otte
f53848c360 textview: Redo clipboard handling
Instead of using GtkClipboard and handling everything ourselves, we now
put GtkTextBuffer into the GdkClipboard and register (de)serializers for
text/plain.
2017-12-03 05:46:48 +01:00
Matthias Clasen
0b39631464 textview: Replace pixbufs by textures
This affects a few apis, such as gtk_text_iter_get_pixbuf,
gtk_text_buffer_insert_pixbuf and GtkTextBuffer::insert-pixbuf,
which have all been replaced by texture equivalents.

Update all callers.
2017-11-29 23:22:13 -05:00
Benjamin Otte
9a6ec4e959 contentformats: Rename GtkTargetList
It's now called GdkContentsFormat
2017-11-20 23:12:33 +01:00
Matthias Clasen
fde91c3bec Revert "textbuffer: nicer get_iter functions"
This reverts commit a9a1c00cc9.

Unfortunately, adding the boolean return broke both the python
and javascript bindings, since they now return a tuple consisting
of the boolean and the out argument.
2015-11-12 09:58:28 -05:00
Sébastien Wilmet
a9a1c00cc9 textbuffer: nicer get_iter functions
Avoid crashes when passing an invalid location to a
gtk_text_buffer_get_iter_at_*() function.

A boolean is returned to know if @iter has been set to the exact
location.

Unit tests are added.

https://bugzilla.gnome.org/show_bug.cgi?id=735341
2015-10-16 08:43:27 +02:00
Matthias Clasen
c264cd6785 Split off a private header for GtkTextBuffer
This avoids polluting the installed header with private symbols.
2015-10-15 23:04:44 -04:00
Matthias Clasen
3d4bcf55a5 Allow inserting Pango markup in text buffers
This has been a very long-standing feature request.

https://bugzilla.gnome.org/show_bug.cgi?id=59390
2014-12-04 00:09:44 -05:00
Sébastien Wilmet
2e68e4fc09 docs: documentation for GtkTextBufferClass
It'll most probably be more useful in the near future.
2014-10-18 19:28:40 +02:00
William Jon McCann
2a45418b67 docs: use proper quotes 2014-02-05 15:08:42 -05:00
William Jon McCann
a22358c0c0 docs: use ` instead of <literal> 2014-02-04 18:24:29 -05:00
William Jon McCann
885d8df39c docs: add docs GtkTextBufferTargetInfo 2014-01-21 13:33:19 -05:00
Matthias Clasen
20c8c8b91c Add annotations to gtk headers
Add annotations to all exported functions in GTK+ headers.
2013-05-05 15:38:47 -04:00
Matthias Clasen
5adecf183b Move single-include guards inside include guards
gcc has optimizations for include guards that only work
if they are outermost in the the header.
https://bugzilla.gnome.org/show_bug.cgi?id=689810
2012-12-28 09:57:56 -05:00
Javier Jardón
9d0febc9a6 Change FSF Address 2012-02-27 17:06:11 +00:00
Matthias Clasen
aa291863bb GtkTextBuffer: Add accessible api
These functions match closely to the AtkText interface;
they will be used in the GtkTextView accessible implementation.
Keep them private for now.
2011-07-05 16:08:53 -04:00
Pavel Holejsovsky
204d1fd0a6 [GI] Make argument names in vfunc decls consistent with invoker docs 2011-01-18 17:28:35 +01:00
Matthias Clasen
4824a73084 Add padding to class structs 2010-10-19 19:07:36 +02:00
Ignacio Casal Quinteiro
a1be4eccb0 Move GtkTextBuffer sealed attributes to private struct. 2010-07-17 10:39:37 +02:00
Michael Natterer
5e29973773 Remove all traces of GDK_PIXBUF/GTK_DISABLE_SINGLE_INCLUDES
...and disallow inclusion of individual files unconditionally.
2010-05-03 01:51:18 +02:00
Paolo Borelli
1a7c0ed099 Bug 492794 – Pasting external text at end of view yields wrong scrolling
2009-01-12  Paolo Borelli  <pborelli@katamail.com>

	Bug 492794 – Pasting external text at end of view yields wrong
	scrolling to mark

	* gtk/gtktextbuffer.[ch]:
	* gtk/gtktextview.c:
	Add a "paste-done" signal and use it to propelry scroll the
	view at the end of the pasted text in the case of an async
	paste. Patch by Ignacio Casal Quintero based on a patch by
	Yevgen Muntyan.


svn path=/trunk/; revision=22100
2009-01-12 17:07:35 +00:00
Cody Russell
57223c9a05 Revert name change
svn path=/trunk/; revision=20724
2008-07-01 22:57:50 +00:00
Cody Russell
fce9c8b7d4 Practically everything changed.
2008-06-30  Cody Russell  <bratsche@gnome.org>

        * Practically everything changed.

        Change	all references	of GIMP	Toolkit	(and variations	of it)
        to GTK+	Toolkit, showing no mercy at all to our	beloved
	ancestry. (#540529)


svn path=/trunk/; revision=20709
2008-06-30 23:01:56 +00:00
Tim Janik
cd19149ad5 Switch to "guint GSEAL (foo) : width;" when packing fields in guints.
* gtk/gtkbox.h:
* gtk/gtkbutton.h:
* gtk/gtkcellrenderer.h:
* gtk/gtkcellrenderertext.h:
* gtk/gtkcheckmenuitem.h:
* gtk/gtkcontainer.h:
* gtk/gtkentry.h:
* gtk/gtkhandlebox.h:
* gtk/gtkimcontextsimple.h:
* gtk/gtklabel.h:
* gtk/gtkliststore.h:
* gtk/gtkmenu.h:
* gtk/gtkmenuitem.h:
* gtk/gtkmenushell.h:
* gtk/gtknotebook.h:
* gtk/gtkpaned.h:
* gtk/gtkplug.h:
* gtk/gtkprintjob.h:
* gtk/gtkprogressbar.h:
* gtk/gtkrange.h:
* gtk/gtkscale.h:
* gtk/gtkscrolledwindow.h:
* gtk/gtksizegroup.h:
* gtk/gtksocket.h:
* gtk/gtkspinbutton.h:
* gtk/gtkstatusbar.h:
* gtk/gtktable.h:
* gtk/gtktearoffmenuitem.h:
* gtk/gtktextbuffer.h:
* gtk/gtktextview.h:
* gtk/gtktogglebutton.h:
* gtk/gtktoolbar.h:
* gtk/gtktreestore.h:
* gtk/gtktreeviewcolumn.h:
* gtk/gtkwindow.h: Do not specify width inside GSEAL() when packing fields in guints.

svn path=/trunk/; revision=20621
2008-06-20 11:09:49 +00:00
Tim Janik
ad8fcdd70a Seal GtkTextBuffer.
svn path=/trunk/; revision=20598
2008-06-20 11:07:40 +00:00
Michael Natterer
2c5f8a5c2b whitespace cleanup: remove trailing whitespace and excess newlines and
2008-05-28  Michael Natterer  <mitch@imendio.com>

	* gtk/gtk*.h: whitespace cleanup: remove trailing whitespace and
	excess newlines and sprinkled some newlines where needed. Zero
	code or formatting changes included.


svn path=/trunk/; revision=20225
2008-05-28 15:35:43 +00:00
Michael Natterer
eff99c282c define __GTK_H_INSIDE__ around including all other headers.
2008-05-28  Michael Natterer  <mitch@imendio.com>

	* gtk/gtk.h: define __GTK_H_INSIDE__ around including all other
	headers.

	* gtk/gtktypebuiltins.h.template
	* gtk/gtkversion.h.in
	* gtk/gtk*.h: add single-include guards that #error out if
	GTK_DISABLE_SINGLE_INCLUDES is defined and any of these files is
	included individually.

	* gtk/gtkprintbackend.h
	* gtk/gtkprinter-private.h
	* gtk/gtktextlayout.h
	* gtk/gtktexttagprivate.h
	* gtk/gtktexttypes.h
	* gtk/gtktreedatalist.h: include <gtk/gtk.h> instead of individual
	headers in these private or semi-private headers.

	* gtk/gtkimmodule.h: also here because it's not in gtk.h.

	* gtk/gtkpagesetupunixdialog.h
	* gtk/gtkprinter.h
	* gtk/gtkprintjob.h
	* gtk/gtkprintunixdialog.h: likewise in the gtkunixprint headers.

	* gtk/gtkclist.h
	* gtk/gtkcombo.h
	* gtk/gtkctree.h
	* gtk/gtkfilesel.h
	* gtk/gtkitemfactory.h
	* gtk/gtklist.h
	* gtk/gtklistitem.h
	* gtk/gtkoldeditable.h
	* gtk/gtkoptionmenu.h
	* gtk/gtkpixmap.h
	* gtk/gtkpreview.h
	* gtk/gtksignal.h
	* gtk/gtktipsquery.h: whenever possible, include only <gtk/gtk.h>
	instead of individual headers in these deprecated headers. They
	don't get included at all when GTK_DISABLE_DEPRECATED is defined,
	so if an app needs them anyway, it must undef GTK_DISABLE_DEPRECATED
	and include them individually, which should continue to work.

	* gtk/gtkclist.c: include "gtkctree.h" because of the change
	above.


svn path=/trunk/; revision=20221
2008-05-28 15:07:04 +00:00
Matthias Clasen
6ac30db004 Allow to separate GtkTextMark creation from buffer insertion. (#132818,
2007-05-25  Matthias Clasen  <mclasen@redhat.com>

        Allow to separate GtkTextMark creation from buffer insertion.
        (#132818, Gustavo Giráldez, patch by Yevgen Muntyan)

        * gtk/gtktextmarkprivate.h:
        * gtk/gtktextmark.[hc] (gtk_text_mark_new): New function to
        create a GtkTextMark.

        * gtk/gtktextbuffer.[hc] (gtk_text_buffer_add_mark): New
        function to add an existing mark to a buffer.

        * gtk/gtktextbtree.c: Allow adding existing marks.

        * gtk/gtk.symbols: Add new functions.

        * tests/testtextbuffer.c: Add some tests for new mark
        functionality.


svn path=/trunk/; revision=17922
2007-05-26 04:10:42 +00:00
Michael Natterer
aca7e2316a changed values from G_MAXUINT-0, -1, -2 to -1, -2, -3 so we stay within
2007-02-05  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktextbuffer.h (enum GtkTextBufferTargetInfo): changed
	values from G_MAXUINT-0, -1, -2 to -1, -2, -3 so we stay within
	ansi C enum value limits. Fixes bug #46757.


svn path=/trunk/; revision=17260
2007-02-05 10:36:27 +00:00
Michael Natterer
ca658057e5 count down from G_MAXUINT to avoid clashes with application-added DND
2006-03-22  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktextbuffer.h (enum GtkTextBufferTargetInfo): count down
	from G_MAXUINT to avoid clashes with application-added DND
	targets.

	* gtk/gtktextview.c (gtk_text_view_init): set an empty
	GtkTargetList on the drag_dest so it is not NULL when a derived
	class' init() function is called.

	(gtk_text_view_target_list_notify): copy the text buffer's paste
	targets into the view's destinstion target list (preserving
	application-added DND targets), instead of replacing the view's
	target list. Fixes bug #334399.
2006-03-22 10:39:51 +00:00
Michael Natterer
6c1d990adc Add infrastructure for copy/paste and DND of rich text for GtkTextBuffer.
2006-03-07  Michael Natterer  <mitch@imendio.com>

	Add infrastructure for copy/paste and DND of rich text for
	GtkTextBuffer. Fixes bug #324177.

	* gtk/gtktextbufferrichtext.[ch]: new files implementing a
	per-buffer registry of rich text formats.

	* gtk/gtk.h: #include gtktextbufferrichtext.h

	* gtk/gtktextbufferserialize.[ch]: new files implementing an
	internal serialization format that can handle all of a text
	buffer's tags and pixbufs. It's not useful for anything except
	tranfer between instances of GtkTextBuffer (Anders Carlsson).

	* gtk/Makefile.am: build the new files.

	* gtk/gtkclipboard.[ch]: added convenience APIs for rich text,
	just as they exist for plain text and pixbufs.

	* gtk/gtkselection.[ch]: added rich text convenience APIs here
	too.  Return the target list from gtk_target_list_ref(). Register
	GtkTargetList as boxed type. Added
	gtk_target_table_new_from_list() and gtk_target_table_free(),
	which make converting between GtkTargetList and arrays of
	GtkTargetEntry considerably easier.

	* gtk/gtktextutil.[ch]: added _gtk_text_util_create_rich_drag_icon()
	which creates a fancy rich text icon (Matthias Clasen).

	* gtk/gtktextbuffer.[ch]: use all the new stuff above and
	implement copy and paste of rich text. Added APIs for getting the
	target lists used for copy and paste. Added public enum
	GtkTextBufferTargetInfo which contains the "info" IDs associated
	with the entries of the target lists.

	* gtk/gtktextview.c: use the new rich text APIs and
	GtkTextBuffer's new target list API to enable DND of rich text
	chunks.

	* gtk/gtk.symbols: export all the new symbols added.

	* tests/testtext.c: added rich text testing stuff.
2006-03-07 13:46:11 +00:00
Matthias Clasen
b863d24089 Add a has-selection property 2005-10-07 03:38:57 +00:00
Matthias Clasen
888ef22258 Remove G_GNUC_NULL_TERMINATED here as well.
2005-08-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktextbuffer.h:
	* gtk/gtk.symbols: Remove G_GNUC_NULL_TERMINATED here
	as well.
2005-08-01 16:57:42 +00:00
Matthias Clasen
cca8dd6347 Make PLT-reduction work with gcc4, and don't include everything in
2005-03-20  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in gdkalias.h:

	* gtk/grk.symbols: Group symbols by header and source file.
	* gtk/makegtkalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegtkalias.pl -def
	* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
	this file.
	* gtk/*.c: Include gtkalias.h after the other headers,
	include gtkaliasdef.c at the bottom.
	* gtk/*.h: Small cleanups.
2005-03-20 07:01:23 +00:00
Matthias Clasen
c8830f2504 Use G_GNUC_NULL_TERMINATED where appropriate. (#165682, Marc Meissner)
2005-03-08  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkwidget.h:
	* gtk/gtktreeview.h:
	* gtk/gtktreeviewcolumn.h:
	* gtk/gtktextbuffer.h:
	* gtk/gtkobject.h:
	* gtk/gtkfilechooserdialog.h:
	* gtk/gtkdialog.h:
	* gtk/gtkcontainer.h:
	* gtk/gtkcelllayout.h:
	* gtk/gtkaboutdialog.h: Use G_GNUC_NULL_TERMINATED where
	appropriate.  (#165682, Marc Meissner)
2005-03-08 05:52:55 +00:00
Owen Taylor
e0ad07e0b4 #155952
Thu Oct 21 15:01:09 2004  Owen Taylor  <otaylor@redhat.com>

        #155952

        * gtk/gtkentry.c: Fix checking the wrong position for
        the backspace_deletes_character PangoLogAttr.

        * gtk/gtktextbuffer.[ch] gtk/gtk.symbols (gtk_text_buffer_backspace):
        Move backspace logic from GtkTextView to here, check
        backspace_deletes_char.

        * gtk/gtktextview.c: Use gtk_text_buffer_backspace().
2004-10-21 19:13:17 +00:00
Matthias Clasen
bc70dc94bf Implement a utility function proposed in #102534:
2003-01-06  Matthias Clasen  <maclas@gmx.de>

	Implement a utility function proposed in #102534:

	* gtk/gtktextbtree.h:
	* gtk/gtktextbtree.c (_gtk_text_btree_select_range): New function.
	(_gtk_text_btree_place_cursor): Now a simple wrapper around
	_gtk_text_btree_select_range().

	* gtk/gtktextbuffer.h:
	* gtk/gtktextbuffer.c (gtk_text_buffer_select_range): New function.
	(gtk_text_buffer_place_cursor): Now a simple wrapper around
	gtk_text_buffer_select_range().
2003-01-06 22:34:23 +00:00
Owen Taylor
e5d1ea8cfe Massive padding addition to class structures.
Sat Feb 23 11:54:12 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/*.h gdk/*.h: Massive padding addition to class structures.

        * gtk/gtktextmark.h: Fix a FIXME about G_CONST_RETURN.
2002-02-23 20:22:05 +00:00
Havoc Pennington
6b1407a3ec remove g_assert_not_reached() that was bogus, since we demand-create the
2001-12-04  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): remove
	g_assert_not_reached() that was bogus, since we demand-create the
	tag info. reported by Chris Phelps

        Jump through assorted hoops to fix bug from Chris Phelps where
	removing tags from the table resulted in btree trying to
	access tag->table

	* gtk/gtktextbuffer.c: set up mechanics of adding/removing
	ourselves to the tag table

	* gtk/gtktexttagtable.c (_gtk_text_tag_table_add_buffer)
	(_gtk_text_tag_table_remove_buffer): private cruft to
	let us notify buffer of disappearing tags

	* gtk/gtktexttag.h: remove BTreeNode typedef from this public
	header, put it in tagprivate

	* gtk/gtktextbtree.c (_gtk_text_btree_new): don't connect to
	tag_removed; it's emitted too late.
	(_gtk_text_btree_notify_will_remove_tag): rename tag_remove_cb to
	this

	Padding for ABI-compat expansion

	* gtk/gtktexttag.h (struct _GtkTextAttributes): pad this
	(struct _GtkTextAppearance): one pad in here too

	* gtk/gtktextlayout.h (struct _GtkTextLayoutClass): padding here

	* gtk/gtktextview.h (struct _GtkTextViewClass): more padding,
	since action signals etc. seem pretty likely

	* gtk/gtktextbuffer.h (struct _GtkTextBufferClass): padding

	* gtk/gtktexttag.h (struct _GtkTextTagClass): padding

	* gtk/gtktexttagtable.h (struct _GtkTextTagTableClass): padding
2001-12-05 01:43:48 +00:00
Owen Taylor
b97a0a452f Instead of always mirroring the selection to a single PRIMARY selection,
Wed Aug 29 20:40:58 2001  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktextbuffer.[ch] (gtk_text_buffer_add/remove_selection_clipboard):
        Instead of always mirroring the selection to a single PRIMARY
        selection, allow it to be mirrored to any number of clipboards.

        * gtk/gtktextbuffer.[ch] (gtk_text_buffer_paste_primary): Remove,
        just use gtk_text_buffer_paste_clipboard with the appropriate clipboard.

        * gtk/gtktextbuffer.[ch] (gtk_text_buffer_cut/copy/paste_clipboard): Add a
        GtkClipboard argument, and for paste_clipboard, the
        @override_location argument from @paste_primary.

        * gtk/gtktextview.c: Adapt to above change.
2001-08-31 01:33:11 +00:00
Havoc Pennington
7009511a22 added this function
2001-06-08  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbuffer.c (gtk_text_buffer_get_start_iter): added this
	function

	* gtk/gtktextview.c (gtk_text_view_get_default_attributes): added
	this function
2001-06-08 19:03:23 +00:00
Havoc Pennington
b4e4a0ed9d fix some shell typos
2001-05-04  Havoc Pennington  <hp@redhat.com>

	* configure.in: fix some shell typos

	* gtk/gtkcolorsel.c (gtk_color_selection_destroy): warning fix

	* gtk/gtkimage.c: handle animations

	* gtk/gtkcheckbutton.c (gtk_check_button_size_request): request
	border_width * 2, not just border_width

	* gtk/gtkscale.c: add "format_value" signal to allow people
	to override the way values are drawn.
	(gtk_scale_get_value_size): fix width/height mistake,
	and compute size from actual displayed text, not
	from made-up text.

	* gtk/gtktexttag.c (gtk_text_tag_class_init): fix return type in
	signal registration

	* tests/testtext.c: Add "Remove all tags" menu item for testing

	* gtk/gtktextbuffer.c (gtk_text_buffer_remove_all_tags): implement

	* demos/gtk-demo/main.c (main): add hack so we can find modules
	without installing gtk

	* demos/gtk-demo/textview.c (insert_text): demo font scaling

	* gtk/gtkcellrenderertext.c: Add "scale" property (font scaling
	factor)
	(gtk_cell_renderer_text_set_property): remove some bogus
	g_object_notify

	* gtk/gtktexttag.c: add "scale" property which is a font scaling
	factor

	* gtk/gtktextlayout.c (add_text_attrs): add font scale attribute
	to layout

	* gtk/gtktextiter.c (gtk_text_iter_is_start): rename from
	gtk_text_iter_is_first

2001-05-04  Havoc Pennington  <hp@redhat.com>

	* pixops/pixops.c (pixops_process): merge fix from stable: Patch
	 from hoshem@mel.comcen.com.au to fix nonzero X offsets.  Fixes
	 bug #50371.

        * gdk-pixbuf/pixops/pixops.c (pixops_composite_nearest): merge
	from stable: Patch from OKADA Mitsuru <m-okada@fjb.co.jp> to fix
	confusion of using "src" instead of "p".
        (pixops_composite_color_nearest): Use a more accurate (and
	correct, to begin with) compositing method.  This cures checks
	showing through on images with no alpha.

	* gdk-pixbuf.c (gdk_pixbuf_fill): fix bug that left some trailing
	bytes unfilled.

	* gdk-pixbuf-io.h: fix UpdatedNotifyFunc to use signed ints

	* gdk-pixbuf-loader.h (struct _GdkPixbufLoaderClass): Change
	area_updated signal to use signed ints.  Removed animation-related
	signals.

	* io-gif.c, io-gif-animation.h, io-gif-animation.c: Massive
	rewrite action

	* gdk-pixbuf-animation.c: Add GdkPixbufAnimationIter to abstract
	all the pesky details. Remove old frame-based API. Make
	GdkPixbufAnimation an abstract base class, derived by the loaders.
2001-05-07 15:58:47 +00:00
Havoc Pennington
b84d2f1234 handle 0-height empty/invisible lines.
2001-04-21  Havoc Pennington  <hp@pobox.com>

	* gtk/gtktextdisplay.c (gtk_text_layout_draw): handle 0-height
	empty/invisible lines.

	* gtk/gtktextiter.c (gtk_text_iter_set_visible_line_offset)
	(gtk_text_iter_set_visible_line_index): new functions to set
	indexes excluding invisible text

	* gtk/gtktextlayout.c (line_display_iter_to_index): get visible
	index

	* gtk/gtktextiter.c (gtk_text_iter_get_visible_line_index)
	(gtk_text_iter_get_visible_line_offset): new functions to
	get indexes excluding invisible text

	* gtk/gtkmessagedialog.c (gtk_message_dialog_init): strip out a
	bunch of extra padding that served no purpose

	* gtk/gtkdialog.c: Make all the spacings configurable via style
	properties, for chubbiness configuration in themes

	* tests/testtext.c: fix path to the immodules.
2001-04-24 12:24:35 +00:00
Havoc Pennington
e7a21a2eec add varargs for properties to set on the tag.
2001-03-15  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbuffer.c (gtk_text_buffer_create_tag): add varargs
	for properties to set on the tag.

	* gtk/testtext.c: fixups to reflect create_tag change

	* gtk/gtktexttag.c (gtk_text_tag_set_property):
	background/foreground stipple are objects, not boxed.

	* demos/gtk-demo/textview.c: intellihancing
2001-03-16 19:32:20 +00:00
Havoc Pennington
bc31a1bcca add insert_child_anchor signal, bug #50245
2001-02-19  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbuffer.h (struct _GtkTextBufferClass): add
	insert_child_anchor signal, bug #50245

	* gtk/gtktextbtree.c (_gtk_text_btree_insert_child_anchor): change
	from create_child_anchor, so the anchor is passed in

	* gtk/gtktextchild.c (gtk_text_child_anchor_new): new function
	(_gtk_widget_segment_new): have the child anchor object passed in,
	instead of creating it.

	* gtk/gtktextbuffer.c (gtk_text_buffer_modified): rename
	to gtk_text_buffer_get_modified
2001-02-19 23:27:27 +00:00
Havoc Pennington
08add3cd50 convert the X coordinates so they're with respect to the line, rather than
2001-02-15  Havoc Pennington  <hp@redhat.com>

	* gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region): convert
	the X coordinates so they're with respect to the line, rather than
	with respect to the layout.

	* gtk/gtkalignment.c: Convert to new property API, patch from Lee
	Mallabone

	* gtk/testgtk.c (create_range_controls): add vscale tests,
	and inverted test

	* gtk/gtkrange.c (gtk_range_set_inverted): new function to fix
	#50806

	* gtk/gtkentry.c (gtk_entry_get_text): add G_CONST_RETURN

	* gtk/gtktextiter.h (gtk_text_iter_is_last): rename
	gtk_text_iter_is_end

	* gtk/gtktextbuffer.h (gtk_text_buffer_get_last_iter):
	rename gtk_text_buffer_get_end_iter

	* gtk/testgtk.c (create_labels): Add test for selectable

	* gtk/gtkentry.c (gtk_entry_draw_text): Use new GDK API to draw
	the selection stuff. This code is kind of broken since it doesn't
	use the theme engine.

	* gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region):
	fix infinite loop and y offset problem
	(gdk_draw_layout_line_with_colors): fix foreground color handling

        * gtk/gtklabel.h, gtk/gtklabel.c: Implement a "selectable" flag
	that makes the label selectable.

	* gtk/gtklabel.c (gtk_label_style_set): recreate the label's
	layout when the style is set, since fonts etc. could have changed.
2001-02-17 00:11:03 +00:00
Havoc Pennington
2c5d938ff8 CVS is doing its broken pipe thing, this is more of the previous commit
2001-02-02  Havoc Pennington  <hp@redhat.com>
2001-02-03 01:09:41 +00:00
Havoc Pennington
c7826b5f63 Adapt to uscore-ification of gtktextiterprivate
2001-01-03  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c: Adapt to uscore-ification of gtktextiterprivate

	* gtk/gtktextdisplay.c (gtk_text_layout_draw): remove use
	of private functions; remove inclusion of private headers.

	* gtk/gtktextlayout.c (gtk_text_layout_get_iter_at_line): Add this
	function, so we don't need private functions in gtktextdisplay.c

	* gtk/gtktextiterprivate.h: underscore-ification

	* gtk/gtkwidget.c: Clean up a bunch of docs that said "INTERNAL"
	to instead say "only useful to implement widgets"

	* gtk/gtkenums.h (GtkMovementStep): Rename GTK_MOVEMENT_CHARS,
	GTK_MOVEMENT_POSITIONS to GTK_MOVEMENT_LOGICAL_POSITIONS,
	GTK_MOVEMENT_VISUAL_POSITIONS. Resolves bug 40249.

	* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
	This function was completely broken

	* gtk/testtext.c (line_numbers_expose): use gtk_paint_layout

	* gtk/gtkvscale.c (gtk_vscale_draw_value): use gtk_paint_layout

	* gtk/gtkvruler.c (gtk_vruler_draw_ticks): use gtk_paint_layout

	* gtk/gtklabel.c (gtk_label_expose): use gtk_paint_layout

	* gtk/gtkhscale.c (gtk_hscale_draw_value): use gtk_paint_layout

	* gtk/gtkhruler.c (gtk_hruler_draw_ticks): use gtk_paint_layout

	* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render): use
	gtk_paint_layout

	* gtk/gtkaccellabel.c (gtk_accel_label_expose_event): use
	gtk_paint_layout

	* gtk/gtkstyle.h: Add draw/paint expander to draw tree expanders.
	Progress on bug 40103. Add draw_layout to draw a PangoLayout.
	(struct _GtkStyleClass): Remove draw_cross, draw_oval, draw_ramp,
	which were not implemented.

	* gtk/gtktextbuffer.h (struct _GtkTextBufferClass): Add
	insert_pixbuf signal. Rename delete_text to delete_range since it
	also deletes pixbufs and child anchors. This almost closes bug
	40245 (still need to deal with child anchors)

	* gtk/gtktextbuffer.c (gtk_text_buffer_class_init): Add
	insert_pixbuf, change signal names as appropriate, change types of
	signals taking marks/tags to have the specific type, not just
	G_TYPE_OBJECT

	* gtk/gtkmain.c (gtk_get_current_event_state): Add this function;
	closes bug 40051

	* gtk/gtkoptionmenu.c (gtk_option_menu_set_history): clean up
	unnecessary remove_contents() call
	(gtk_option_menu_class_init): add a "changed" signal, closes
	bug 40039
	(gtk_option_menu_update_contents): emit "changed" if the
	active menu item changes

	* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done): fix bad
	cast to GtkObject, reported by Jonas Borgstrom
	(gdk_pixbuf_loader_finalize): don't close the loader on finalize;
	we can't do stuff with side effects in finalize. Instead, spew a
	warning if the loader isn't closed.

	* gdk/x11/gdkdrawable-x11.c (gdk_drawable_impl_x11_finalize): free
	colormap in here, non-X ports probably need to sync to this change

	* gdk/x11/gdkdrawable-x11.c (gdk_x11_set_colormap): remove
	assertion that colormap != NULL, you can set the colormap to NULL
	if you like.

	* Makefile.am: remove gtk-config-2.0

	* configure.in: Use pkg-config to locate GLib. Remove
	separated-out GMODULE_LIBS, GMODULE_CFLAGS; these were not used,
	and the gmodule libs/cflags were in GLIB_LIBS GLIB_CFLAGS anyhow.
	Use pkg-config to locate Pango. Output correct Pango libs to
	gdk-2.0.pc.in. Fix test for FREETYPE_CONFIG (typo fix).

	* Makefile.am (pkgconfig_DATA): install only target-specific pc
	files
	(install-data-local): symlink gtk+-2.0.pc and gdk-2.0.pc to the
	X11 pc files

	* gtk+-2.0.pc.in (Requires): require the GDK for the current target
	unref from here
2001-01-04 17:48:43 +00:00
Havoc Pennington
00a6a1b219 do begin/end user action where appropriate (gtk_text_view_commit_handler):
2000-12-18  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextview.c (gtk_text_view_delete_from_cursor): do
	begin/end user action where appropriate
	(gtk_text_view_commit_handler): add begin/end user action

	* gtk/gtktextbuffer.c: add begin/end user action signals, and
	bracket interactive operations with begin/end user action pair.

	* gtk/gtktextbuffer.h (struct _GtkTextBufferClass): remove
	"interactive" arg from insert_text and delete_text signals.
	Add begin_user_action, end_user_action signals
	(gtk_text_buffer_begin_user_action):
	(gtk_text_buffer_end_user_action): New functions to delimit
	a user-visible action

	* gtk/gtkmarshal.list: update to reflect changes to gtktextbuffer
	signals.
2000-12-18 21:01:17 +00:00