summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ChangeLog.pre-2-07
-rw-r--r--ChangeLog.pre-2-107
-rw-r--r--ChangeLog.pre-2-27
-rw-r--r--ChangeLog.pre-2-47
-rw-r--r--ChangeLog.pre-2-67
-rw-r--r--ChangeLog.pre-2-87
-rw-r--r--docs/reference/ChangeLog6
-rw-r--r--docs/reference/gdk/tmpl/windows.sgml119
-rw-r--r--docs/reference/gtk/tmpl/gtk-unused.sgml12
-rw-r--r--docs/reference/gtk/tmpl/gtkmenu.sgml6
-rw-r--r--docs/reference/gtk/tmpl/gtkobject.sgml335
-rw-r--r--docs/reference/gtk/tmpl/gtktreeview.sgml6
-rw-r--r--docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml7
-rw-r--r--docs/reference/gtk/tree_widget.sgml4
-rw-r--r--gdk/x11/gdkwindow-x11.c11
-rw-r--r--tests/testtextbuffer.c88
17 files changed, 374 insertions, 269 deletions
diff --git a/ChangeLog b/ChangeLog
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index ba12c7757c..e4a852514c 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,10 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gdk/x11/gdkwindow-x11.c: docs
+
+ * tests/testtextbuffer.c (logical_motion_tests): add sentence
+ boundary tests
+
Tue Oct 2 20:18:32 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/Makefile.am: add editable_cells.c,
diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog
index 2f0b7ad51b..972026d656 100644
--- a/docs/reference/ChangeLog
+++ b/docs/reference/ChangeLog
@@ -1,3 +1,9 @@
+2001-10-02 Havoc Pennington <hp@redhat.com>
+
+ * gtk/tree_widget.sgml: s/empahsis/emphasis/
+
+ * gtk/tmpl/gtkobject.sgml: update docs
+
2001-10-01 Matthias Clasen <matthiasc@poet.de>
* gtk/gtk-sections.txt: Move standard gobject stuff to
diff --git a/docs/reference/gdk/tmpl/windows.sgml b/docs/reference/gdk/tmpl/windows.sgml
index 6ea5f66efa..8a4eba1703 100644
--- a/docs/reference/gdk/tmpl/windows.sgml
+++ b/docs/reference/gdk/tmpl/windows.sgml
@@ -77,35 +77,102 @@ Windows
<!-- ##### ENUM GdkWindowHints ##### -->
<para>
-
-</para>
-
-@GDK_HINT_POS:
-@GDK_HINT_MIN_SIZE:
-@GDK_HINT_MAX_SIZE:
-@GDK_HINT_BASE_SIZE:
-@GDK_HINT_ASPECT:
-@GDK_HINT_RESIZE_INC:
-@GDK_HINT_WIN_GRAVITY:
-@GDK_HINT_USER_POS:
-@GDK_HINT_USER_SIZE:
+Used to indicate which fields of a #GdkGeometry struct should be paid attention
+to. Also, the presence/absence of @GDK_HINT_POS, @GDK_HINT_USER_POS, and
+@GDK_HINT_USER_SIZE is significant, though they don't directly refer to
+#GdkGeometry fields. @GDK_HINT_USER_POS will be set automatically by #GtkWindow
+if you call gtk_window_move(). @GDK_HINT_USER_POS and @GDK_HINT_USER_SIZE
+should be set if the user specified a size/position using a --geometry
+command-line argument; gtk_window_parse_geometry() automatically sets these
+flags.
+</para>
+
+@GDK_HINT_POS: indicates that the program has positioned the window
+@GDK_HINT_MIN_SIZE: min size fields are set
+@GDK_HINT_MAX_SIZE: max size fields are set
+@GDK_HINT_BASE_SIZE: base size fields are set
+@GDK_HINT_ASPECT: aspect ratio fields are set
+@GDK_HINT_RESIZE_INC: resize increment fields are set
+@GDK_HINT_WIN_GRAVITY: window gravity field is set
+@GDK_HINT_USER_POS: indicates that the window's position was explicitly set by the user
+@GDK_HINT_USER_SIZE: indicates that the window's size was explicitly set by the user
<!-- ##### STRUCT GdkGeometry ##### -->
<para>
-
-</para>
-
-@min_width:
-@min_height:
-@max_width:
-@max_height:
-@base_width:
-@base_height:
-@width_inc:
-@height_inc:
-@min_aspect:
-@max_aspect:
-@win_gravity:
+The #GdkGeometry struct gives the window manager information about
+a window's geometry constraints. Normally you would set these on
+the GTK+ level using gtk_window_set_geometry_hints(). #GtkWindow
+then sets the hints on the #GdkWindow it creates.
+</para>
+
+<para>
+gdk_window_set_geometry_hints() expects the hints to be fully valid already and
+simply passes them to the window manager; in contrast,
+gtk_window_set_geometry_hints() performs some interpretation. For example,
+#GtkWindow will apply the hints to the geometry widget instead of the toplevel
+window, if you set a geometry widget. Also, the
+min_width/min_height/max_width/max_height fields may be set to -1, and
+#GtkWindow will substitute the size request of the window or geometry widget. If
+the minimum size hint is not provided, #GtkWindow will use its requisition as
+the minimum size. If the minimum size is provided and a geometry widget is set,
+#GtkWindow will take the minimum size as the minimum size of the geometry widget
+rather than the entire window. The base size is treated similarly.
+</para>
+
+<para>
+The canonical use-case for gtk_window_set_geometry_hints() is to get a terminal
+widget to resize properly. Here, the terminal text area should be the geometry
+widget; #GtkWindow will then automatically set the base size to the size of
+other widgets in the terminal window, such as the menubar and scrollbar. Then,
+the width_inc and height_inc fields should be set to the size of one character
+in the terminal. Finally, the base size should be set to the size of one
+character. The net effect is that the minimum size of the terminal
+will have a 1x1 character terminal area, and only terminal sizes on
+the "character grid" will be allowed.
+</para>
+
+<para>
+Here's an example of how the terminal example would be implemented, assuming
+a terminal area widget called "terminal" and a toplevel window "toplevel":
+<programlisting>
+ GdkGeometry hints;
+
+ hints.base_width = terminal->char_width;
+ hints.base_height = terminal->char_height;
+ hints.min_width = terminal->char_width;
+ hints.min_height = terminal->char_height;
+ hints.width_inc = terminal->char_width;
+ hints.height_inc = terminal->char_height;
+
+ gtk_window_set_geometry_hints (GTK_WINDOW (toplevel),
+ GTK_WIDGET (terminal),
+ &hints,
+ GDK_HINT_RESIZE_INC |
+ GDK_HINT_MIN_SIZE |
+ GDK_HINT_BASE_SIZE);
+</programlisting>
+</para>
+
+<para>
+The other useful fields are the @min_aspect and @max_aspect fields; these
+contain a width/height ratio as a floating point number. If a geometry widget is
+set, the aspect applies to the geometry widget rather than the entire window.
+The most common use of these hints is probably to set @min_aspect and
+@max_aspect to the same value, thus forcing the window to keep a constant aspect
+ratio.
+</para>
+
+@min_width: minimum width of window (or -1 to use requisition, with #GtkWindow only)
+@min_height minimum height of window (or -1 to use requisition, with #GtkWindow only)
+@max_width: maximum width of window (or -1 to use requisition, with #GtkWindow only)
+@max_height: maximum height of window (or -1 to use requisition, with #GtkWindow only)
+@base_width: allowed window widths are base_width + width_inc * N where N is any integer (-1 allowed with #GtkWindow)
+@base_height: allowed window widths are base_height + height_inc * N where N is any integer (-1 allowed with #GtkWindow)
+@width_inc: width resize increment
+@height_inc: height resize increment
+@min_aspect: minimum width/height ratio
+@max_aspect: maximum width/height ratio
+@win_gravity: window gravity, see gtk_window_set_gravity()
<!-- ##### ENUM GdkGravity ##### -->
<para>
diff --git a/docs/reference/gtk/tmpl/gtk-unused.sgml b/docs/reference/gtk/tmpl/gtk-unused.sgml
index 6597d9a17e..04917c68b8 100644
--- a/docs/reference/gtk/tmpl/gtk-unused.sgml
+++ b/docs/reference/gtk/tmpl/gtk-unused.sgml
@@ -376,6 +376,12 @@ The last structured enumerated type value.
</para>
+<!-- ##### MACRO GTK_TYPE_TREE_VIEW_COLUMN ##### -->
+<para>
+
+</para>
+
+
<!-- ##### MACRO GTK_VALUE_ARGS ##### -->
<para>
Use to get the value of a GtkArg whose GtkType is GTK_TYPE_ARGS
@@ -995,6 +1001,12 @@ produce superscript and subscript.
</para>
+<!-- ##### STRUCT GtkTreeSelectionClass ##### -->
+<para>
+
+</para>
+
+
<!-- ##### ENUM GtkTreeSelectionMode ##### -->
<para>
diff --git a/docs/reference/gtk/tmpl/gtkmenu.sgml b/docs/reference/gtk/tmpl/gtkmenu.sgml
index b8f6c87935..b51c366a4b 100644
--- a/docs/reference/gtk/tmpl/gtkmenu.sgml
+++ b/docs/reference/gtk/tmpl/gtkmenu.sgml
@@ -96,9 +96,9 @@ Creates a new #GtkMenu.
Adds a new #GtkMenuItem to the end of the menu's item list.
</para>
+<!-- # Unused Parameters # -->
@menu: a #GtkMenu.
@child: The #GtkMenuItem to add.
-<!-- # Unused Parameters # -->
@m:
@c:
@@ -108,9 +108,9 @@ Adds a new #GtkMenuItem to the end of the menu's item list.
Adds a new #GtkMenuItem to the beginning of the menu's item list.
</para>
+<!-- # Unused Parameters # -->
@menu: a #GtkMenu.
@child: The #GtkMenuItem to add.
-<!-- # Unused Parameters # -->
@menu_child:
@m:
@c:
@@ -122,10 +122,10 @@ Adds a new #GtkMenuItem to the menu's item list at the position
indicated by @position.
</para>
+<!-- # Unused Parameters # -->
@menu: a #GtkMenu.
@child: The #GtkMenuItem to add.
@pos:
-<!-- # Unused Parameters # -->
@position: The position in the item list where @child is added.
Positions are numbered from 0 to n-1.
diff --git a/docs/reference/gtk/tmpl/gtkobject.sgml b/docs/reference/gtk/tmpl/gtkobject.sgml
index 18a7eace9b..4b95f93d15 100644
--- a/docs/reference/gtk/tmpl/gtkobject.sgml
+++ b/docs/reference/gtk/tmpl/gtkobject.sgml
@@ -8,168 +8,87 @@ The base class of the Gtk type hierarchy.
<refsect2>
<title>Description</title>
<para>
-GtkObject is the root of the gtk+ type hierarchy. It serves
-a similar roles as java's Object class. It is used
-by the type-casting system to represent the base composite type.
-</para>
-<para>
-Objects have <wordasword>arguments</wordasword> that are
-name/typed-value pairs.
-They may be readable or writable (or both or neither).
-The special handlers in every object are responsible for
-setting and getting these parameters.
-If the handler for a given argument <emphasis>must</emphasis>
-be called before the object may be used, be sure the
-#GTK_ARG_CONSTRUCT or #GTK_ARG_CONSTRUCT_ONLY flags
-are set; otherwise they are set only when the user does so.
-</para>
-<para>
-Object also store a simpler association table, sometimes
-called the object_data. This is just an efficient mapping from
-a fixed set of strings to a gpointer. This can be used as
-arbitrary extra members. Notice that each new field name
-allocates a new quark, so it is probably best only to use
-this for fields with fixed names.
-</para>
-<para>
-The primary difference between object_data and arguments is that
-the object defines two functions which set and get each type of argument.
-The object just has a table to store its object data in: it does not
-receive notice when data changes.
-</para>
-<para>
-Objects are reference counted; this means that we maintain
-a count of how many references (usually in the form of a pointer)
-are being held to this object.
-To indicate that you reference an object, call gtk_object_ref().
-The object will not be freed until everyone calls
-gtk_object_unref().
-</para>
-<para>
-In order to reduce the chances of a memory leak, gtk+ defines
-"floating objects". All objects created with gtk_object_new()
-start out floating with a reference count of 1.
-In order to reduce that initial reference count you should gtk_object_sink()
-them, but usually the parent widget you add the child to will
-sink the object.
-</para>
-<para>So, because gtk_widget_set_parent() sinks the object from
-gtk_container_add(), there are no memory leaks in this code:
-<informalexample>
+#GtkObject is the base class for all widgets, and for a few
+non-widget objects such as #GtkAdjustment. #GtkObject predates
+#GObject; non-widgets that derive from #GtkObject rather than
+#GObject do so for backward compatibility reasons.
+</para>
+<para>
+The most interesting difference between #GtkObject and #GObject is the
+"floating" reference count. A #GObject is created with a reference count of 1,
+owned by the creator of the #GObject. (The owner of a reference is the code
+section that has the right to call g_object_unref() in order to remove that
+reference.) A #GtkObject is created with a reference count of 1 also, but it
+isn't owned by anyone; calling g_object_unref() on the newly-created #GtkObject
+is incorrect. Instead, the initial reference count of a #GtkObject is "floating."
+The floating reference can be removed by anyone at any time, by calling
+gtk_object_sink(). gtk_object_sink() does nothing if an object is already
+sunk (has no floating reference).
+</para>
+<para>
+When you add a widget to its parent container, the parent container
+will do this:
<programlisting>
- button = gtk_button_new_with_label("Hi Mom!");
- gtk_container_add(GTK_CONTAINER(window), button);
- /* Button may not be used anymore since we don't retain a reference
- * to it. */
+ g_object_ref (G_OBJECT (child_widget));
+ gtk_object_sink (GTK_OBJECT (child_widget));
</programlisting>
-</informalexample>
-Likewise, the following code attaches the same adjustment to two
-ranges:
-<informalexample>
-<programlisting>
- adjustment = (GtkAdjustment*) gtk_adjustment_new(0,10,0,0,0,0);
- gtk_range_set_adjustment(range1, adjustment);
- gtk_range_set_adjustment(range2, adjustment);
-</programlisting>
-</informalexample>
-Note that we could put as many set_adjustments as we like: cleanup is easy
-because they all retain a reference but only one sinks the initial reference
-count. If it is possible for "range1" to stop retaining its reference
-then we need to enclose the lines using "adjustment" with ref/unref
-to guarantee the the object won't be deleted:
-<informalexample>
+This means that the container now owns a reference to the child widget (since
+it called g_object_ref()), and the child widget has no floating reference.
+</para>
+<para>
+The purpose of the floating reference is to keep the child widget alive
+until you add it to a parent container:
<programlisting>
- adjustment = (GtkAdjustment*) gtk_adjustment_new(0,10,0,0,0,0);
- gtk_object_ref(GTK_OBJECT(adjustment));
- gtk_range_set_adjustment(range1, adjustment);
- gtk_range_set_adjustment(range1, another_adjustment);
- /* With the initial reference, `adjustment' would have
- * been deleted as `range1' lost its reference to it. */
- gtk_range_set_adjustment(range2, adjustment);
- gtk_object_unref(GTK_OBJECT(adjustment));
+ button = gtk_button_new ();
+ /* button has one floating reference to keep it alive */
+ gtk_container_add (GTK_CONTAINER (container), button);
+ /* button has one non-floating reference owned by the container */
</programlisting>
-</informalexample>
</para>
<para>
-Be careful with reference counting: if two objects reference eachother
-then they will always have at least reference count 1, even if
-there are no other pointers to them. This means that they
-will never be freed. More precisely, you must be certain that
-your references <emphasis>never</emphasis> can form cycles.
+#GtkWindow is a special case, because GTK+ itself will ref/sink it on creation.
+That is, after calling gtk_window_new(), the #GtkWindow will have one
+reference which is owned by GTK+, and no floating references.
</para>
+
<para>
-If you find yourself forming cyclic references, perhaps you
-can convert some of them to <wordasword>weak-references</wordasword>.
-A weak-reference is one that holds a pointer to an object,
-but doesn't increase the reference count. To insure
-the object is valid when the referer tries to use it,
-the referer registers a callback that will be invoked
-after the object has been destroyed (but before its memory is actually
-deallocated). This callback must prevent the weak-reference from
-being used again.
+One more factor comes into play: the "destroy" signal, emitted by the
+gtk_object_destroy() method. The "destroy" signal asks all code owning a
+reference to an object to release said reference. So, for example, if you call
+gtk_object_destroy() on a #GtkWindow, GTK+ will release the reference count that
+it owns; if you call gtk_object_destroy() on a #GtkButton, then the button will
+be removed from its parent container and the parent container will release its
+reference to the button. Because these references are released, calling
+gtk_object_destroy() should result in freeing all memory associated with an
+object, unless some buggy code fails to release its references in response to
+the "destroy" signal. Freeing memory (referred to as
+<firstterm>finalization</firstterm> only happens if the reference count reaches
+zero.
</para>
-</refsect2>
-<refsect2>
-<title>Brief Glossary</title>
-<variablelist>
-
-<varlistentry>
-<term>argument</term>
-<listitem><para>
-A typed-variable identified by ObjectType::argument_name. It may be
-readable, writable, both or none. For example,
-"GtkButton::label" is a read/write string-valued argument.
-</para></listitem>
-</varlistentry>
-<varlistentry>
-<term>constructed</term>
-<listitem><para>
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term>destroyed</term>
-<listitem><para>
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term>finalization</term>
-<listitem><para>
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term>floating</term>
-<listitem><para>
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term>object data</term>
-<listitem><para>
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term>reference count</term>
+<para>
+Some simple rules for handling #GtkObject:
+<itemizedlist>
<listitem><para>
+Never call g_object_unref() unless you have previously called g_object_ref(),
+even if you created the #GtkObject. (Note: this is <emphasis>not</emphasis>
+true for #GObject; for #GObject, the creator of the object owns a reference.)
</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term>weak-reference</term>
<listitem><para>
+Call gtk_object_destroy() to get rid of most objects in most cases.
+In particular, widgets are almost always destroyed in this way.
</para></listitem>
-</varlistentry>
+<listitem><para> Because of the floating reference count, you don't need to
+worry about reference counting for widgets and toplevel windows, unless you
+explicitly call g_object_ref() yourself. </para></listitem>
+</itemizedlist>
+</para>
-</variablelist>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
-GtkType, GtkArg, gtk-signals.
+#GObject
</para>
<!-- ##### STRUCT GtkObject ##### -->
@@ -210,8 +129,8 @@ there own references, if they believe they are nearly primary
ownership of the object.
GTK_CONNECTED: refers to whether are signals are connected to this
object.
-@GTK_RESERVED_1:
-@GTK_RESERVED_2:
+@GTK_RESERVED_1: reserved for future use
+@GTK_RESERVED_2: reserved for future use
<!-- ##### MACRO GTK_OBJECT_FLAGS ##### -->
<para>
@@ -224,7 +143,7 @@ accessing its members.
<!-- ##### MACRO GTK_OBJECT_DESTROYED ##### -->
<para>
-Test whether a GtkObject has had gtk_object_destroyed() invoked on it.
+Test whether a GtkObject has had gtk_object_destroy() invoked on it.
</para>
@obj: the object to examine.
@@ -232,9 +151,8 @@ Test whether a GtkObject has had gtk_object_destroyed() invoked on it.
<!-- ##### MACRO GTK_OBJECT_FLOATING ##### -->
<para>
-When an object is created, it has an initial reference count
-of 1 and is floating. <wordasword>Sinking</wordasword> the object
-refers to decrementing that original reference count.
+Evaluates to %TRUE if the object still has its floating reference count.
+See the overview documentation for #GtkObject.
</para>
@obj: the object to examine.
@@ -269,6 +187,7 @@ Turn off certain object flags. (Private)
<!-- ##### ENUM GtkArgFlags ##### -->
<para>
Possible flags indicating how an argument should be treated.
+Deprecated in favor of #GParamSpec features.
</para>
@GTK_ARG_READABLE: the argument is readable. (i.e. can be queried)
@@ -284,7 +203,7 @@ each child. Used by #GtkContainer.
<!-- ##### FUNCTION gtk_object_new ##### -->
<para>
Construct an object given its arguments, enumerated in the call to the
-function.
+function. Deprecated in favor of g_object_new().
</para>
@type: the type identifying this object. Returned by gtk_type_unique()
@@ -301,23 +220,9 @@ the object.
<!-- ##### FUNCTION gtk_object_sink ##### -->
<para>
-Decrement the initial count given to the object.
-Additional invocations have no effect.
-</para>
-<para>
-This is designed to free the user from worrying about
-dereferencing an object that they have just created.
-So long as the object is sunk at some point, the reference count
-will be set properly.
-</para>
-<para>
-furthermore it may be sunk multiple times.
-Only the first time will actually dereference.
-</para>
-<para>
-The basic outline is: when you create an object it is floating.
-Setting its parent causes it to be sunk, however its parent
-has obtained a reference, so its reference count is one.
+Removes the floating reference from a #GtkObject, if it exists;
+otherwise does nothing. See the #GtkObject overview documentation at
+the top of the page.
</para>
@object: the object to sink.
@@ -325,22 +230,20 @@ has obtained a reference, so its reference count is one.
<!-- ##### FUNCTION gtk_object_ref ##### -->
<para>
-Increase the reference count of the object.
+Increase the reference count of the object, simply calls
+g_object_ref() internally.
+Deprecated in favor of g_object_ref().
</para>
@object: the object to reference.
-@Returns:
+@Returns: the object which was referenced
<!-- ##### FUNCTION gtk_object_unref ##### -->
<para>
-Decrease the reference count of an object. When its reference
-count drops to 0, the object is deleted.
-</para>
-<para>
-If it was not already destroyed, it will be, with gtk_object_destroy(),
-then weak links are notified, then the object-data is freed
-and the memory for the object itself is freed using gtk_type_free().
+Decrease the reference count of an object. When its reference count drops to 0,
+the object is finalized (i.e. its memory is freed). Deprecated in favor of
+g_object_unref(). Simply calls g_object_unref() internally.
</para>
@object: the object to dereference.
@@ -348,15 +251,11 @@ and the memory for the object itself is freed using gtk_type_free().
<!-- ##### FUNCTION gtk_object_weakref ##### -->
<para>
-Adds a weak reference callback to an object.
-</para>
-<para>
-Weak references are a mechanism to safely keep a pointer to
-an object without using the reference counting
-mechansim. They use a callback function to receive
-notice that the object is about to be freed (aka finalized).
-This happens <emphasis>after</emphasis> the destroy
-callback has been run.
+Adds a weak reference callback to an object. Deprecated in favor of
+g_object_weak_ref(). Weak references are used for notification when an object is
+finalized. They are called "weak references" because they allow you to safely
+hold a pointer to an object without calling g_object_ref() (g_object_ref() adds
+a strong reference, that is, forces the object to stay alive).
</para>
@object: object to weakly reference.
@@ -376,12 +275,14 @@ Removes a weak reference callback to an object.
<!-- ##### FUNCTION gtk_object_destroy ##### -->
<para>
-Calls the object's shutdown handler.
+Emits the "destroy" signal notifying all reference holders that they should
+release the #GtkObject. See the overview documentation at the top of the
+page for more details.
</para>
<para>
The memory for the object itself won't be deleted until
-its reference count drops to 0, though.
-See gtk_object_unref().
+its reference count actually drops to 0; gtk_object_destroy() merely asks
+reference holders to release their references, it does not free the object.
</para>
@object: the object to destroy.
@@ -389,19 +290,18 @@ See gtk_object_unref().
<!-- ##### FUNCTION gtk_object_get ##### -->
<para>
-
+Get properties of an object. Deprecated in favor of g_object_get(). It takes an
+object, then a list of name/return location pairs in a list, followed by NULL.
</para>
-@object:
-@first_property_name:
-@Varargs:
-<!-- # Unused Parameters # -->
-@first_arg_name:
+@object: a #GtkObject
+@first_property_name: name of first property to get the value for
+@Varargs: list of name-return location pairs.
<!-- ##### FUNCTION gtk_object_set ##### -->
<para>
-This function sets multiple arguments of an object.
+Set properties on an object. Deprecated in favor of g_object_set().
</para>
<para>
It takes an object, then a list of name/value pairs
@@ -421,15 +321,14 @@ void set_box_properties(GtkBox* box)
</para>
@object: the object whose arguments should be set.
-@first_property_name:
+@first_property_name: name of the first property to set
@Varargs: the value of the first argument, followed optionally
by more name/value pairs, followed by NULL.
-<!-- # Unused Parameters # -->
-@first_arg_name: the name of the first argument to set.
<!-- ##### FUNCTION gtk_object_set_data ##### -->
<para>
+Deprecated in favor of g_object_set_data().
Each object carries around a table of associations from
strings to pointers. This function lets you set an association.
</para>
@@ -445,6 +344,7 @@ the old association will be destroyed.
<!-- ##### FUNCTION gtk_object_set_data_full ##### -->
<para>
+Deprecated in favor of g_object_set_data_full().
Like gtk_object_set_data() except it adds notification
for when the association is destroyed, either by
gtk_object_remove_data() or when the object is destroyed.
@@ -458,7 +358,8 @@ gtk_object_remove_data() or when the object is destroyed.
<!-- ##### FUNCTION gtk_object_remove_data ##### -->
<para>
-Remove a specified datum from the object's data associations (the object_data).
+Deprecated in favor of setting object data to %NULL using g_object_set_data().
+Removes a specified datum from the object's data associations (the object_data).
Subsequent calls to gtk_object_get_data() will return NULL.
</para>
<para>
@@ -472,6 +373,7 @@ it will be invoked.
<!-- ##### FUNCTION gtk_object_get_data ##### -->
<para>
+Deprecated in favor of g_object_get_data().
Get a named field from the object's table of associations (the object_data).
</para>
@@ -482,6 +384,7 @@ Get a named field from the object's table of associations (the object_data).
<!-- ##### FUNCTION gtk_object_remove_no_notify ##### -->
<para>
+Deprecated in favor of g_object_steal_data().
Remove a specified datum from the object's data associations (the object_data),
without invoking the association's destroy handler.
</para>
@@ -497,6 +400,7 @@ Therefore this only affects data set using gtk_object_set_data_full().
<!-- ##### FUNCTION gtk_object_set_user_data ##### -->
<para>
+Deprecated in favor of g_object_set_data().
For convenience, every object offers a generic user data
pointer. The function set it.
</para>
@@ -515,6 +419,7 @@ This function is equivalent to:
<!-- ##### FUNCTION gtk_object_get_user_data ##### -->
<para>
+Deprecated in favor of g_object_get_data().
Get the object's user data pointer.
</para>
<para>
@@ -528,6 +433,7 @@ writing applications.
<!-- ##### FUNCTION gtk_object_add_arg_type ##### -->
<para>
+Deprecated in favor of the #GObject property system including #GParamSpec.
Add a new type of argument to an object class.
Usually this is called when registering a new type of object.
</para>
@@ -542,6 +448,7 @@ settable or gettable, whether it is set when the object is constructed.)
<!-- ##### FUNCTION gtk_object_set_data_by_id ##### -->
<para>
+Deprecated in favor of g_object_set_qdata().
Just like gtk_object_set_data() except that it takes
a #GQuark instead of a string, so it is slightly faster.
</para>
@@ -557,6 +464,7 @@ to get an id from a string.
<!-- ##### FUNCTION gtk_object_set_data_by_id_full ##### -->
<para>
+Deprecated in favor of g_object_set_qdata_full().
Just like gtk_object_set_data_full() except that it takes
a #GQuark instead of a string, so it is slightly faster.
</para>
@@ -573,6 +481,7 @@ to get an id from a string.
<!-- ##### FUNCTION gtk_object_get_data_by_id ##### -->
<para>
+Deprecated in favor of g_object_get_qdata().
Just like gtk_object_get_data() except that it takes
a #GQuark instead of a string, so it is slightly faster.
</para>
@@ -588,6 +497,7 @@ to get an id from a string.
<!-- ##### FUNCTION gtk_object_remove_data_by_id ##### -->
<para>
+Deprecated in favor of g_object_set_qdata() called with data of %NULL.
Just like gtk_object_remove_data() except that it takes
a #GQuark instead of a string, so it is slightly faster.
</para>
@@ -606,6 +516,7 @@ to get an id from a string.
<!-- ##### FUNCTION gtk_object_remove_no_notify_by_id ##### -->
<para>
+Deprecated in favor of g_object_steal_qdata().
Just like gtk_object_remove_no_notify() except that it takes
a #GQuark instead of a string, so it is slightly faster.
</para>
@@ -622,34 +533,19 @@ to get an id from a string.
<!-- ##### MACRO gtk_object_data_try_key ##### -->
<para>
-Sees whether a certain quark exists.
-Returns that quark if so.
+Useless deprecated macro. Ignore it.
</para>
-<para>
-Although this is currently the same as g_quark_try_string(),
-it might someday be different, for example, if GQuarks
-and object data are converted to separate mechanisms,
-so it is good to use this macro.
-</para>
-
-
<!-- ##### MACRO gtk_object_data_force_id ##### -->
<para>
-Makes a quark from a string, possibly allocating a new quark.
+Useless deprecated macro. Ignore it.
</para>
-<para>
-Although this is currently the same as g_quark_from_string(),
-it might someday be different, for example, if GQuarks
-and object data are converted to separate mechanisms,
-so it is good to use this macro.
-</para>
-
-
<!-- ##### SIGNAL GtkObject::destroy ##### -->
<para>
-Indicates that an object is being destroyed.
+Signals that all holders of a reference to the #GtkObject should release
+the reference that they hold. May result in finalization of the object
+if all references are released.
</para>
@object: the object which received the signal.
@@ -657,5 +553,6 @@ Indicates that an object is being destroyed.
<!-- ##### ARG GtkObject:user-data ##### -->
<para>
A pointer for convenience when programming applications.
+Deprecated.
</para>
diff --git a/docs/reference/gtk/tmpl/gtktreeview.sgml b/docs/reference/gtk/tmpl/gtktreeview.sgml
index 39c0aa775b..144de496ee 100644
--- a/docs/reference/gtk/tmpl/gtktreeview.sgml
+++ b/docs/reference/gtk/tmpl/gtktreeview.sgml
@@ -36,12 +36,6 @@ GtkTreeView
</para>
-<!-- ##### STRUCT GtkTreeSelectionClass ##### -->
-<para>
-
-</para>
-
-
<!-- ##### USER_FUNCTION GtkTreeViewColumnDropFunc ##### -->
<para>
diff --git a/docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml b/docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml
index bab0d62a4f..11bdc4ea93 100644
--- a/docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml
+++ b/docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml
@@ -14,13 +14,6 @@ GtkTreeViewColumn
</para>
-<!-- ##### MACRO GTK_TYPE_TREE_VIEW_COLUMN ##### -->
-<para>
-
-</para>
-
-
-
<!-- ##### STRUCT GtkTreeViewColumn ##### -->
<para>
diff --git a/docs/reference/gtk/tree_widget.sgml b/docs/reference/gtk/tree_widget.sgml
index c47fc1f646..1c64fbbc60 100644
--- a/docs/reference/gtk/tree_widget.sgml
+++ b/docs/reference/gtk/tree_widget.sgml
@@ -30,8 +30,8 @@
<member>the cell renderers (GtkCellRenderer etc.)</member>
<member>and the model interface (GtkTreeModel)</member>
</simplelist>
- The <emphasis>View</empahsis> is composed of the first three,
- while the last is the <empahsis>Model</empahsis>. One of the
+ The <emphasis>View</emphasis> is composed of the first three,
+ while the last is the <emphasis>Model</emphasis>. One of the
prime benefits of the MVC design is that multiple views can be
created of a single model. For example, a model mapping the file
system could be created for a file manager. Many views could be
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 262aa9f0da..da62210210 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -1374,6 +1374,17 @@ gdk_window_set_modal_hint (GdkWindow *window,
0);
}
+/**
+ * gdk_window_set_geometry_hints:
+ * @window: a #GdkWindow
+ * @geometry: geometry hints
+ * @geom_mask: bitmask indicating fields of @geometry to pay attention to
+ *
+ * Sets the geometry hints for @window. Hints flagged in @geom_mask
+ * are set, hints not flagged in @geom_mask are unset.
+ * To unset all hints, use a @geom_mask of 0 and a @geometry of %NULL.
+ *
+ **/
void
gdk_window_set_geometry_hints (GdkWindow *window,
GdkGeometry *geometry,
diff --git a/tests/testtextbuffer.c b/tests/testtextbuffer.c
index 9f2d332d75..3c6e6f3db6 100644
--- a/tests/testtextbuffer.c
+++ b/tests/testtextbuffer.c
@@ -934,7 +934,7 @@ logical_motion_tests (void)
expected[8] = 11; /* before 'x' */
expected[9] = 12; /* before 'y' */
expected[10] = 13; /* before 'z' */
- expected[11] = 14; /* after 'z' */
+ expected[11] = 14; /* after 'z' (only matters going backward) */
expected_steps = 11;
gtk_text_buffer_get_start_iter (buffer, &iter);
@@ -951,17 +951,15 @@ logical_motion_tests (void)
pos, expected[i]);
}
- /* g_print ("%d = %d\n", pos, expected[i]); */
-
++i;
}
while (gtk_text_iter_forward_cursor_position (&iter));
- if (i != expected_steps)
- g_error ("Expected %d steps, there were actually %d\n", expected_steps, i);
-
if (!gtk_text_iter_is_end (&iter))
g_error ("Expected to stop at the end iterator\n");
+
+ if (i != expected_steps)
+ g_error ("Expected %d steps, there were actually %d\n", expected_steps, i);
i = expected_steps;
do
@@ -987,6 +985,84 @@ logical_motion_tests (void)
if (!gtk_text_iter_is_start (&iter))
g_error ("Expected to stop at the start iterator\n");
+
+
+ /* Check sentence boundaries */
+
+ gtk_text_buffer_set_text (buffer, "Hi.\nHi. \nHi! Hi. Hi? Hi.", -1);
+
+ memset (expected, 0, sizeof (expected));
+
+ expected[0] = 0; /* before first Hi */
+ expected[1] = 3; /* After first . */
+ expected[2] = 7; /* After second . */
+ expected[3] = 12; /* After ! */
+ expected[4] = 16; /* After third . */
+ expected[5] = 20; /* After ? */
+
+ expected_steps = 6;
+
+ gtk_text_buffer_get_start_iter (buffer, &iter);
+ i = 0;
+ do
+ {
+ int pos;
+
+ pos = gtk_text_iter_get_offset (&iter);
+
+ if (pos != expected[i])
+ {
+ g_error ("Sentence position %d, expected %d",
+ pos, expected[i]);
+ }
+
+ ++i;
+ }
+ while (gtk_text_iter_forward_sentence_end (&iter));
+
+ if (i != expected_steps)
+ g_error ("Expected %d steps, there were actually %d\n", expected_steps, i);
+
+ if (!gtk_text_iter_is_end (&iter))
+ g_error ("Expected to stop at the end iterator\n");
+
+ gtk_text_buffer_set_text (buffer, "Hi.\nHi. \nHi! Hi. Hi? Hi.", -1);
+
+ memset (expected, 0, sizeof (expected));
+
+ expected[0] = 24;
+ expected[1] = 22;
+ expected[2] = 17;
+ expected[3] = 14;
+ expected[4] = 9;
+ expected[5] = 4;
+ expected[6] = 0;
+
+ expected_steps = 7;
+
+ gtk_text_buffer_get_end_iter (buffer, &iter);
+ i = 0;
+ do
+ {
+ int pos;
+
+ pos = gtk_text_iter_get_offset (&iter);
+
+ if (pos != expected[i])
+ {
+ g_error ("Sentence position %d, expected %d",
+ pos, expected[i]);
+ }
+
+ ++i;
+ }
+ while (gtk_text_iter_backward_sentence_start (&iter));
+
+ if (i != expected_steps)
+ g_error ("Expected %d steps, there were actually %d\n", expected_steps, i);
+
+ if (gtk_text_iter_get_offset (&iter) != 0)
+ g_error ("Expected to stop at the start iterator\n");
g_print ("Logical motion tests passed\n");