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.
Use GSlice to allocate all types of segments:
- char
- toggle
- mark
- pixbuf
- child widget
Char segments are a bit more complicated because the length of the text
is determined at run time and stored in the 'byte_count' field. If the
text is long, GSlice will call the system malloc() anyway, so it's
better to always use GSlice for GtkTextLineSegment.
Toggle segments are also freed in gtktextbtree.c, hence the function
_gtk_toggle_segment_free() (for a later commit it would be nice to
rename those functions with the _gtk_text prefix).
https://bugzilla.gnome.org/show_bug.cgi?id=727908
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API
https://bugzilla.gnome.org/show_bug.cgi?id=610474
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations. Merge those into the GTK source files.
Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
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
2005-09-01 Matthias Clasen <mclasen@redhat.com>
* gdk/*.c: Intern some more strings.
* gtk/gtkintl.h:
* gtk/*.c: Define an I_() macro and use it instead of the
bulky g_intern_static_string().
2005-08-31 Matthias Clasen <mclasen@redhat.com>
* gdk/Makefile.am:
* gtk/Makefile.am: Intern type names in code generated by
glib-mkenums, too.
* gtk/*.c:
* gdk/x11/*.c:
* gdk/*.c: Intern type names before registering the type to avoid
unnecessary copies.
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.
Mon Aug 9 12:48:04 2004 Matthias Clasen <maclas@gmx.de>
Add hidden aliases for exported symbols which are
used internally in order to get rid of many PLT
entries. (#145519, Arjan van de Ven)
* gtk/Makefile.am: Add rules to generate gtk.def and
from gtk.symbols, and make make check check the abi
with abicheck.sh.
(gtk_private_h_sources): Add gtkinternals.h
(gtk_built_private_headers): Add gtkalias.h
(gtk_extra_sources): Add gtk.symbols
(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh
* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
The file can be processed by cpp to filter out certain
subsets of symbols.
* gtk/abicheck.sh: New file. Script to check the actually
symbols exported from libgtk-x11.2.0.so against the symbols
found in gtk.symbols.
* gtk/makegtkalias.pl: New file. Perl script to generate the
header containing the alias definitions for internally used
exported symbols from a list of symbols.
* gtk/gtkinternals.h: New file. An uninstalled header listing
symbols which must be exported for some reason and do not appear
in any other header.
* gtk/*.c: Include gtkalias.h
2004-03-05 Federico Mena Quintero <federico@ximian.com>
Fixes#136082 and #135265, patch by Morten Welinder.
* configure.in: Use AC_SYS_LARGEFILE.
* */*.c: #include <config.h>
2002-01-01 Havoc Pennington <hp@pobox.com>
* gtk/framebuffer.sgml: move README.linux-fb in here
* gtk/tmpl/gtkpreview.sgml: explain what to use instead
* gtk/tmpl/gtkseparator.sgml: typo fix
* gtk/tmpl/gtkstock.sgml: add some overview docs
* gtk/Makefile.am (content_files): add new files
* gtk/changes-1.2.sgml: move Changes-1.2.txt in here
* gtk/changes-2.0.sgml: move Changes-2.0.txt in here
* gdk/tmpl/threads.sgml: mention gdk_threads_init() in the
overview docs, copy in the examples from the FAQ
* gtk/gtk-docs.sgml: change DTD to 3.1, and add
question_index.sgml and changes-1.2, changes-2.0
* gtk/tmpl/gtkdrawingarea.sgml: fixups to reflect 2.0 changes
* gtk/question_index.sgml: new section with question-based
index of the manual
* gtk/text_widget.sgml: fix some cross-references
2002-01-01 Havoc Pennington <hp@pobox.com>
* docs/README.linux-fb: note that this file is obsolete
* docs/Changes-2.0.txt, docs/Changes-1.2.txt: Add notes to these
files that they should not be edited and look in the reference
manual instead. Probably these files should just be replaced by
the note, and their main contents deleted.
* gtk/gtktextview.c: docs
* gtk/gtktextmark.c: docs
* gtk/gtktextchild.c: docs
* gtk/gtktextbuffer.c: docs stuff
* gtk/gtkclipboard.c (gtk_clipboard_get): fool with docs to maybe
give people more leads in sorting out PRIMARY vs. CLIPBOARD
2001-10-22 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.h: add a #error unless you define
GTK_TEXT_USE_INTERNAL_UNSUPPORTED_API, so people don't use this accidentally
* gtk/gtktext*.c: #define GTK_TEXT_USE_INTERNAL_UNSUPPORTED_API as appropriate.
Thu Aug 23 16:26:47 2001 Tim Janik <timj@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_finalize):
* gtk/gtktextmark.c (gtk_text_mark_finalize): chain parent class
handlers, pointed out by Joshua N Pritikin <vishnu@pobox.com>.
2001-01-12 Havoc Pennington <hp@redhat.com>
* gdk/x11/gdkgeometry-x11.c (gdk_window_scroll): offset the
current invalid region, fixes redraw bug while scrolling the
text widget
* gtk/gtktextview.c, gtk/gtktextview.h:
Rearrange the scrolling/validation/etc. code in a major way,
so it seems to make sense to me. Probably isn't genuinely that
much better, but...
* gtk/gtktexttag.c (set_fg_color): fix name of property used for
notifies
* gtk/gtktextmark.c (gtk_text_mark_get_left_gravity): new function
2000-12-13 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.h: Put _ in front of every function in this
header file
* gtk/gtktext*.[hc]: update to reflect renamed btree functions
2000-11-30 Havoc Pennington <hp@pobox.com>
* gtk/gtktextdisplay.c (gtk_text_layout_draw): don't create
dangling pointers to the appearance attributes from the
line display
* gdk/gdkdraw.c (gdk_drawable_get_image): allow negative
width/height to mean "full width/height of drawable"
* gtk/gtktextview.h, gtk/gtktextview.c: Implement double/triple
click to select word/line
* gtk/gtktextiter.c (test_log_attrs): include paragraph delimiters
when getting log attrs. Get a slice, so that pixmaps and stuff
are properly handled.
* gtk/gtktextbuffer.c (paste): Fix pasting to work properly if you
paste into the selection (replaces selection now, previously
crashed or added to selection). Reveals longstanding btree bug -
select multiple lines, middle-click on the selection, boom. This
isn't related to my changes though.
* gtk/gtkentry.c (gtk_entry_move_forward_word): Update to reflect
PangoLogAttrs changes
(gtk_entry_move_backward_word): ditto
* gtk/gtktextlayout.h, gtk/gtktextlayout.c: Make the iter motion
functions return bool whether the iter moved onto a
dereferenceable position.
* gtk/gtktextview.h, gtk/gtktextview.c: Add a bunch of public
functions for motion in terms of display lines.
* gtk/gtktextmark.c (gtk_text_mark_get_buffer): Add function to
get the buffer a mark is inside
2000-11-07 Havoc Pennington <hp@redhat.com>
* gtk/gtktextmark.c (gtk_text_mark_is_visible): rename
to gtk_text_mark_get_visible
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): fix
bug that was generating an invalid iterator
* gtk/gtktextiter.c (gtk_text_iter_get_offset): move call to
ensure_char_offsets() in front of code placing the iter in an
invalid state.
* gtk/gtktextbuffer.c (gtk_text_buffer_paste_primary):
make override_location arg const
(paste): Replace the selection if we paste into the
current selection
* gtk/gtkselection.h: Remove "GtkSelectioData"
(struct _GtkSelectionData): move the definition here.
* gtk/gtktextbuffer.c (gtk_text_buffer_update_primary_selection):
Export the GTK_TEXT_BUFFER_CONTENTS target for in-process copies
* gtk/gtktextiter.c (gtk_text_iter_get_tags): New function
* gtk/gtktextbuffer.c (gtk_text_buffer_insert_range): implement
(gtk_text_buffer_insert_range_interactive): implement
(gtk_text_buffer_get_tags): Remove, replaced by
gtk_text_iter_get_tags()
* gtk/gtktextiter.c (gtk_text_iter_forward_search): Add a search
limit parameter, to avoid infinite linear scan.
(gtk_text_iter_backward_search): Add search limit
(gtk_text_iter_forward_find_char): Add search limit
(gtk_text_iter_backward_find_char): Add search limit
2000-11-03 Havoc Pennington <hp@redhat.com>
* gtk/gtktexttagtable.c: Docs
(gtk_text_tag_table_size): return a signed int
* gtk/gtktexttag.c: s/tkxt/text/g; write documentation
(gtk_text_tag_event): make the event_object a GObject
* gtk/gtktextview.c: Write API docs for all functions.
* gtk/gtktextview.h: add GTK_TEXT_WINDOW_PRIVATE as return value
for gtk_text_view_get_window_type() called on one of the private
windows.
* gtk/gtktextview.c: Instead of accessing text_view->buffer
directly, call get_buffer() which demand-creates a default
buffer. So gtk_text_view_new() can be used to create a view with a
default buffer in it, if you just want an empty text box users can
put data in. Useful for GUI builders also.
Wed Oct 25 20:47:41 2000 Tim Janik <timj@gtk.org>
* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed
implementation of gtk_marshal_VOID__INT_INT_INT_INT. if people do that,
couldn't they at least give it a non-standard name?
* gtk/gtktextlayout.c: arg! yet another implementation of
gtk_marshal_VOID__INT_INT_INT_INT(), is this a conspiracy?
* gtk/gtktextbuffer.c: gotcha! captured a vagabonding
gtk_marshal_VOID__INT_POINTER_INT() implementation, braught it back
home. now i know this _is_ a conspiracy.
* gtk/gtkwidget.c (gtk_widget_class_init): marshaller fixups for
::state-changed.
* gtk/gtkaccelgroup.c (gtk_accel_group_create_remove):
(gtk_accel_group_create_add): marshaller signature fixups.
* gtk/gtklistitem.c (gtk_list_item_class_init): signal creation fixups,
pass in GTK_TYPE_SCROLL_TYPE instead of GTK_TYPE_ENUM.
* gtk/gtkobject.[hc]: removed GTK_CONNECTED flag, it's not valid
anymore.
Tue Oct 24 23:59:21 2000 Tim Janik <timj@gtk.org>
* docs/reference/Makefile.am: disabled SUBDIRS for the moment, since
due to the signal system changes, it wouldn't build currently. to
be fixed soon.
* docs/Changes-2.0.txt: GtkSignal/GSignal updates.
* gtk/gtkwidget.c: ::direction_changed takes an enum as argument,
so it needs gtk_marshal_VOID__ENUM() instead of
gtk_marshal_NONE__UINT().
* gdk/gdk*.c: adapted type registration functions.
* gtk/gtkbindings.c:
* gtk/gtkaccelgroup.c: operate on GSignalQuery, GtkSignalQuery is
gone.
* gtk/gtkenums.h: define GtkSignalRunType in terms of GSignalType.
* gtk/gtkobject.c:
(gtk_object_destroy):
(gtk_object_shutdown): fixed recursion guards. basically we have to
catch the case where any of GObject.shutdown() or gtk_object_destroy()
is called during ::destroy, and avoid recursion there.
* gtk/gtktypeutils.c:
* gtk/maketypes.awk: awk-script hackup to provide gtk_type_init() with
boxed_copy/boxed_free. this needs a more general solution based on a
publically installed code-generator utility.
* gtk/gtktypeutils.[hc]: compat aliased GTK_TYPE_BOXED to G_TYPE_BOXED,
glib's gobject has support for that now.
define GtkSignalMarshaller in terms of GSignalCMarshaller.
Mon Oct 23 09:36:42 2000 Tim Janik <timj@gtk.org>
* gtk/gtksignal.[hc]:
* gtk/gtkmarshal.[hc]:
* gtk/Makefile.am: generate marshallers with glib-genmarshal and don't
compile gtkmarshal.c on its own anymore, just include it in gtksignal.c.
removed #include <gtkmarshal.h>s all over the place, gtksignal.h takes
care of that.
* *.c: marshaller name fixups.
* gtk/gtkmarshal.list: added a comment briefing the format.
Sun Oct 22 23:14:39 2000 Tim Janik <timj@gtk.org>
* gtk/gtksignal.[hc]: nuked old implementation. we mostly have
compatibility macros here now. more specifically, most of
the API is preserved (yes, _most_, nonwithstanding the
following exceptions listed, the API is stil lHUGE ;)
things that got removed completely:
GtkSignalQuery, gtk_signal_query(), gtk_signal_n_emissions(),
gtk_signal_n_emissions_by_name(), gtk_signal_handlers_destroy(),
gtk_signal_set_funcs(), gtk_signal_handler_pending_by_id(),
gtk_signal_add_emission_hook(), gtk_signal_add_emission_hook_full(),
gtk_signal_remove_emission_hook().
non-functional functions variants:
gtk_signal_add_emission_hook(), gtk_signal_remove_emission_hook().
the GtkCallbackMarshal argument to gtk_signal_connect_full() is
not supported anymore.
(gtk_signal_compat_matched): new internal function to aid
implementation of the compatibility macros, it provides
functionality to block/unblock/disconnect handlers based
on func/data.
* gtk/gtkenums.h: define GtkSignalRunType in terms of GSignalType,
* *.c: adaptions to new type registration API signatures.
Fri Oct 20 15:26:33 2000 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.[hc]: removed G_TYPE_GTK_POINTER cludge.
2000-10-24 Havoc Pennington <hp@redhat.com>
* gtk/gtktextview.c (gtk_text_view_scroll_to_mark_adjusted): make
it a static function
* gtk/gtktextbtree.c (gtk_text_btree_tag): Gee, maybe we should
redraw text when a tag is applied to it.
* gtk/gtktexttag.c (gtk_text_tag_affects_size)
(gtk_text_tag_affects_nonsize_appearance): private functions to
see if a tag requires various kinds of redraw/layout to be queued
up.
* gtk/gtktexttag.h (struct _GtkTextTag): Remove relief crackrock
* gtk/testtext.c (fill_example_buffer): Put the cursor
at the start of the buffer, so search works by default
* gtk/gtktextiter.c (lines_match): init match_start always
* gtk/gtktextbuffer.c (gtk_text_buffer_get_iter_at_line_index): New
function, get iter at a line + a byte index
* gtk/gtktextiter.c (gtk_text_iter_set_line_index): New function,
to set byte position within a line
(gtk_text_iter_check): remove leftover G_BREAKPOINT thing
2000-10-02 Havoc Pennington <hp@pobox.com>
* gtk/gtktextview.c: text_window_* weren't static and should have
been.
Start work on child widgets; not yet complete,
syncing to
office computer.
* gtk/gtktextchild.h: change this to contain a public interface,
starting work on child interfaces.
* gtk/gtktextchildprivate.h: move private interfaces here
* gtk/Makefile.am: update to reflect gtktextchildprivate.h
* gtk/gtktextview.h, gtk/gtktextview.c, gtk/gtktextbuffer.h,
gtk/gtktextbuffer.c, gtk/gtktextiter.h, gtk/gtk/textiter.c,
gtk/gtktextmark.c: copyright notices
* gtk/gtktextmarkprivate.h: reformat, and put _ in
front of
internal functions
* gtk/gtktextchild.c (_pixbuf_segment_new): put _ in front of
internal function
* gtk/gtktextlayout.c (gtk_text_layout_get_line_display):
Reformatting
2000-09-30 Havoc Pennington <hp@pobox.com>
* gtk/gtktextbtree.c (gtk_text_btree_get_selection_bounds): Handle
NULL start/end pointers
* gtk/gtktextbuffer.c: Write some docs
(gtk_text_buffer_get_selection_bounds): Allow start/end to be
NULL, so you can just check whether there's a selection.
* gtk/gtktextbtree.c (gtk_text_btree_remove_mark): No need to
cleanup_line or segments_changed ourselves, it gets done
in unlink_segment
* gtk/gtktextmark.h:
s/gtk_text_mark_deleted/gtk_text_mark_get_deleted/
* gtk/gtktextsegment.h: Clean up some indentation and naming mess
* gtk/gtktextmark.c: delete some more old Tk cruft
* gtk/gtktextbuffer.c (gtk_text_buffer_delete_mark): add ref to
mark before removing it, so we can emit MARK_DELETED with a valid
pointer.
(gtk_text_buffer_mark_set): hold ref across signal emission
* gtk/gtktextbtree.c (gtk_text_btree_remove_mark): improve
whining about attempts to delete special marks
* gtk/gtktextbuffer.c (_gtk_text_buffer_spew): Prepend with
underscore, since it's internal.
* gtk/gtktextbuffer.h: Remove find_string prototype, this is
now implemented in terms of iterators in gtktextiter.h
* gtk/gtktextbuffer.c (gtk_text_buffer_set_text):
New function, destructively sets contents of buffer. Also
a convenient way to clear the buffer by setting text to ""
* gtk/gtktextiter.c (gtk_text_iter_make_surreal): reformat
multiline string literal
* gtk/testtext.c (text_changed_callback): Redraw line numbers if
text changes.
* gtk/gtktextiter.c (forward_char): Return FALSE if new location
is not dereferenceable
(gtk_text_iter_forward_lines): fix return value
2000-09-29 Havoc Pennington <hp@redhat.com>
* gtk/gtktexttag.c (gtk_text_tag_set_priority): fix indentation
* gtk/gtktextview.c: Implement drag thresholding; change functions
that set border window size to have nicer name
(gtk_text_view_mark_set_handler): Fix this to have the
right signature.
* gtk/testtextbuffer.c (fill_buffer): Update with pixbuf changes
* gtk/testtext.c: Update with API changes, put line numbers on
both sides.
* gtk/gtktextiter.c (gtk_text_iter_get_pixbuf): Replace get_pixmap
with this
* gtk/gtktextchild.h, gtk/gtktextchild.c: replace all pixmap with
pixbuf; delete a big block of #if 0 Tk code
* gtk/gtktextbuffer.c (gtk_text_buffer_insert_pixbuf): Replace
insert_pixmap with insert_pixbuf
2000-07-25 Havoc Pennington <hp@redhat.com>
* gtk/testtext.c, gtk/testtextbuffer.c: update to reflect text
widget changes.
* gtk/gtktextview.h: To be consistent with usage of "line"
throughout the API to mean "newline-terminated thingy", change
MOVEMENT_LINE to be MOVEMENT_WRAPPED_LINE, and MOVEMENT_PARAGRAPH
to MOVEMENT_LINE.
(GtkTextView): Add flags for default editability, and whether to
show the cursor. Add functions to get/set that. Add
(gtk_text_view_get_iter_location): new function
* gtk/gtktexttypes.h: Move GtkTextLine typedef from here to
gtktextlayout.h
(g_convert): Add g_convert temporarily, will go in glib in a bit
* gtk/gtktexttagtable.h: include gtktexttag.h, and define
GtkTextTagTableForeach instead of brokenly using GHFunc.
Change gtk_text_tag_table_foreach() so it doesn't use GHFunc.
* gtk/gtktexttagprivate.h: Remove GtkTextStyleValues from here,
moved to public header.
* gtk/gtktexttag.h: Rename the "elide" attribute of tags to
"invisible", since "elide" was a bad name.
(gtk_text_tag_get_priority): Added
(GtkTextStyleValues): put this in public header, along with
functions to use it.
* gtk/gtktextmarkprivate.h: Include more headers, since we no
longer include gtktextbtree.h.
* gtk/gtktextmark.h: Add gtk_text_mark_ref, gtk_text_mark_unref,
gtk_text_mark_deleted
* gtk/gtktextlayout.h: Don't include the "really private" headers,
only buffer/iter. Forward declare GtkTextLIne and GtkTextLineData
to make this possible. Now we only need to install
gtktextlayout.h, not gtktextbtree.h and gtktext*private.h.
(However the Makefile.am isn't changed yet because of the
logistics of merging gtk-hp-patches piecemeal)
* gtk/gtktextiterprivate.h: include btree header, so it compiles;
rename gtk_text_iter_get_line to gtk_text_iter_get_text_line since
gtk_text_iter_get_line is now used in the public API for a
different purpose.
* gtk/gtktextiter.h: Clean up function names to be more
consistent. Always call char offset "offset" and byte index
"index". A "line" is always a line number.
(gtk_text_iter_is_last): new function, more efficient than
the existing way to check
(gtk_text_iter_is_first): new function, also more efficient
(gtk_text_iter_up_lines, gtk_text_iter_down_lines): Remove these
(gtk_text_iter_next_char, gtk_text_iter_prev_char): Renamed from
gtk_text_iter_forward_char, etc.
(gtk_text_iter_forward_to_tag_toggle): Renamed from
forward_find_tag_toggle, since this isn't a linear search
(GtkTextCharPredicate): rename from GtkTextViewCharPredicate
(gtk_text_iter_forward_search, gtk_text_iter_backward_search):
New functions, search for a buffer substring.
* gtk/gtktextbuffer.h: Add fields to store whether a paste is
interactive and default editable (since we need to store that info
until we receive the selection data).
Remove all the _at_char and at_line etc. versions of functions;
only have iterator versions.
Add _interactive() versions of functions, that consider the
editability of text. (FIXME add interactive flag to the
insert/delete signals per Darin's suggestion)
(gtk_text_buffer_get_tag_table): new function, demand-creates the
tag table if necessary
Remove declaration of gtk_text_buffer_get_iter_from_string
(_gtk_text_buffer_get_btree): private/internal function, added.
* gtk/gtktextbtree.h: Remove forward decl of GtkTextLineData.
(gtk_text_line_is_last): new function
2000-06-02 Havoc Pennington <hp@pobox.com>
* gtk/testtextbuffer.c: Test program to make sure GtkTextBuffer
is in working order.
* gtk/testtext.c: Change to reflect anonymous mark API
* gtk/gtktextview.c: Convert from mark names to GtkTextMark*.
* gtk/gtktexttag.h (struct _GtkTextTag): remove the affects_size
field, which was unused.
* gtk/gtktextmarkprivate.h (GTK_IS_TEXT_MARK): add this macro,
saves some typing.
* gtk/gtktextbuffer.c: Switch from mark names to GtkTextMark*
* gtk/gtktextbtree.c (gtk_text_btree_new): set the not_deleteable
flag on the insertion point and selection bound
Throughout, use GtkTextMark instead of GtkTextLineSegment, and
make mark-manipulation functions take a GtkTextMark* instead of a
mark name.
* gtk/gtktextmarkprivate.h: Add a "not_deleteable" flag to
GtkTextMarkBody; will be used to detect attempts to delete
the permanent marks (insert and selection bound)