BOXED,BOXED,BOXED,BOXED): new marshaller.

Mon Apr  2 16:56:15 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
	marshaller.

	* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
	"changed" signal to "range_changed".

	* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
	removing a tree from one model would remove all trees from that
	model.
	* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
	changed signal instead.
This commit is contained in:
Jonathan Blandford 2001-04-02 20:56:55 +00:00 committed by Jonathan Blandford
parent ea78922f17
commit 29985af0fa
21 changed files with 281 additions and 152 deletions

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -1,3 +1,17 @@
Mon Apr 2 16:56:15 2001 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new
marshaller.
* gtk/gtktreemodel.c (gtk_tree_model_range_changed): change
"changed" signal to "range_changed".
* gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where
removing a tree from one model would remove all trees from that
model.
* gtk/gtktreeview.c (gtk_tree_view_range_changed): use range
changed signal instead.
Mon Apr 2 16:13:58 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid

View File

@ -6,6 +6,7 @@ GObject
GdkPixmap
GdkColormap
GtkSettings
GtkRcStyle
GtkObject
GtkWidget
GtkMisc

View File

@ -756,6 +756,14 @@ produce superscript and subscript.
@widget: the object which received the signal.
<!-- ##### SIGNAL GtkWidget::size-request ##### -->
<para>
</para>
@widget: the object which received the signal.
@requisition:
<!-- ##### FUNCTION gtk_button_box_child_requisition ##### -->
<para>
This is an internally used function and should never be called from an

View File

@ -496,7 +496,6 @@ This can later be composited together with other
#GtkRcStyle structures to form a #GtkStyle.
</para>
@parent_instance:
@name:
@bg_pixmap_name:
@font_desc:

View File

@ -289,7 +289,7 @@ you don't want a return value.
the callbacks.
<!-- ##### FUNCTION gtk_signal_lookup ##### -->
<!-- ##### MACRO gtk_signal_lookup ##### -->
<para>
Given the name of the signal and the type of object it connects
to, get the signal's identifying integer. Emitting the signal
@ -299,12 +299,13 @@ by number is somewhat faster than using the name each time.
It also tries the ancestors of the given type.
</para>
@Returns: the signal's identifying number, or 0 if no signal was found.
<!-- # Unused Parameters # -->
@name: the signal's name, e.g. clicked.
@object_type: the type that the signal operates on, e.g. #GTK_TYPE_BUTTON.
@Returns: the signal's identifying number, or 0 if no signal was found.
<!-- ##### FUNCTION gtk_signal_name ##### -->
<!-- ##### MACRO gtk_signal_name ##### -->
<para>
Given the signal's identifier, find its name.
</para>
@ -312,8 +313,9 @@ Given the signal's identifier, find its name.
Two different signals may have the same name, if they have differing types.
</para>
@signal_id: the signal's identifying number.
@Returns: the signal name, or NULL if the signal number was invalid.
<!-- # Unused Parameters # -->
@signal_id: the signal's identifying number.
<!-- ##### FUNCTION gtk_signal_emit ##### -->
@ -381,7 +383,7 @@ an array of GtkArgs instead of using C's varargs mechanism.
followed by one which is a pointer to the return type.
<!-- ##### FUNCTION gtk_signal_emit_stop ##### -->
<!-- ##### MACRO gtk_signal_emit_stop ##### -->
<para>
This function aborts a signal's current emission.
</para>
@ -395,11 +397,11 @@ It will print a warning if used on a signal which
isn't being emitted.
</para>
@object: the object whose signal handlers you wish to stop.
@signal_id: the signal identifier, as returned by gtk_signal_lookup().
<!-- # Unused Parameters # -->
@i:
@s:
<!-- # Unused Parameters # -->
@object: the object whose signal handlers you wish to stop.
@signal_id: the signal identifier, as returned by gtk_signal_lookup().
<!-- ##### FUNCTION gtk_signal_emit_stop_by_name ##### -->
@ -415,7 +417,7 @@ except it will lookup the signal id for you.
@name: the name of the signal you wish to stop.
<!-- ##### FUNCTION gtk_signal_connect ##### -->
<!-- ##### MACRO gtk_signal_connect ##### -->
<para>
Attach a function pointer and user data to a signal for
a particular object.
@ -454,38 +456,38 @@ static void attach_print_signal(GtkButton* button, gint to_print)
</programlisting>
</informalexample>
@o:
@s:
@f:
@d:
@Returns: the connection id.
<!-- # Unused Parameters # -->
@object: the object associated with the signal, e.g. if a button
is getting pressed, this is that button.
@name: name of the signal.
@func: function pointer to attach to the signal.
@func_data: value to pass as to your function (through the marshaller).
@Returns: the connection id.
<!-- # Unused Parameters # -->
@o:
@s:
@f:
@d:
<!-- ##### FUNCTION gtk_signal_connect_after ##### -->
<!-- ##### MACRO gtk_signal_connect_after ##### -->
<para>
Attach a function pointer and user data to a signal
so that this handler will be called after the other handlers.
</para>
@object: the object associated with the signal.
@name: name of the signal.
@func: function pointer to attach to the signal.
@func_data: value to pass as to your function (through the marshaller).
@Returns: the unique identifier for this attachment: the connection id.
<!-- # Unused Parameters # -->
@o:
@s:
@f:
@d:
@Returns: the unique identifier for this attachment: the connection id.
<!-- # Unused Parameters # -->
@object: the object associated with the signal.
@name: name of the signal.
@func: function pointer to attach to the signal.
@func_data: value to pass as to your function (through the marshaller).
<!-- ##### FUNCTION gtk_signal_connect_object ##### -->
<!-- ##### MACRO gtk_signal_connect_object ##### -->
<para>
This function is for registering a callback that will
call another object's callback. That is,
@ -506,21 +508,21 @@ gtk_signal_connect_object(button, "clicked", gtk_widget_show, window);
</programlisting>
</informalexample>
@o:
@s:
@f:
@d:
@Returns: the connection id.
<!-- # Unused Parameters # -->
@object: the object which emits the signal.
@name: the name of the signal.
@func: the function to callback.
@slot_object: the object to pass as the first parameter to func.
(Though it pretends to take an object, you can
really pass any gpointer as the #slot_object .)
@Returns: the connection id.
<!-- # Unused Parameters # -->
@o:
@s:
@f:
@d:
<!-- ##### FUNCTION gtk_signal_connect_object_after ##### -->
<!-- ##### MACRO gtk_signal_connect_object_after ##### -->
<para>
Attach a signal hook to a signal, passing in an alternate
object as the first parameter, and guaranteeing
@ -528,16 +530,16 @@ that the default handler and all normal
handlers are called first.
</para>
@object: the object associated with the signal.
@name: name of the signal.
@func: function pointer to attach to the signal.
@slot_object: the object to pass as the first parameter to #func.
@Returns: the connection id.
<!-- # Unused Parameters # -->
@o:
@s:
@f:
@d:
@Returns: the connection id.
<!-- # Unused Parameters # -->
@object: the object associated with the signal.
@name: name of the signal.
@func: function pointer to attach to the signal.
@slot_object: the object to pass as the first parameter to #func.
<!-- ##### FUNCTION gtk_signal_connect_full ##### -->
@ -626,95 +628,98 @@ should signal the removal of this signal.
@name: name of the signal.
<!-- ##### FUNCTION gtk_signal_disconnect ##### -->
<!-- ##### MACRO gtk_signal_disconnect ##### -->
<para>
Destroy a user-defined handler connection.
</para>
<!-- # Unused Parameters # -->
@object: the object which the handler pertains to.
@handler_id: the connection id.
<!-- ##### FUNCTION gtk_signal_disconnect_by_func ##### -->
<!-- ##### MACRO gtk_signal_disconnect_by_func ##### -->
<para>
Destroy all connections for a particular object, with
the given function-pointer and user-data.
</para>
@object: the object which emits the signal.
@func: the function pointer to search for.
@data: the user data to search for.
<!-- # Unused Parameters # -->
@o:
@f:
@d:
<!-- # Unused Parameters # -->
@object: the object which emits the signal.
@func: the function pointer to search for.
@data: the user data to search for.
<!-- ##### FUNCTION gtk_signal_disconnect_by_data ##### -->
<!-- ##### MACRO gtk_signal_disconnect_by_data ##### -->
<para>
Destroy all connections for a particular object, with
the given user-data.
</para>
@object: the object which emits the signal.
@data: the user data to search for.
<!-- # Unused Parameters # -->
@o:
@d:
<!-- # Unused Parameters # -->
@object: the object which emits the signal.
@data: the user data to search for.
<!-- ##### FUNCTION gtk_signal_handler_block ##### -->
<!-- ##### MACRO gtk_signal_handler_block ##### -->
<para>
Prevent an user-defined handler from being invoked. All other
signal processing will go on as normal, but this particular
handler will ignore it.
</para>
<!-- # Unused Parameters # -->
@object: the object which emits the signal to block.
@handler_id: the connection id.
<!-- ##### FUNCTION gtk_signal_handler_block_by_func ##### -->
<!-- ##### MACRO gtk_signal_handler_block_by_func ##### -->
<para>
Prevent a user-defined handler from being invoked, by reference to
the user-defined handler's function pointer and user data. (It may result in
multiple hooks being blocked, if you've called connect multiple times.)
</para>
@object: the object which emits the signal to block.
@func: the function pointer of the handler to block.
@data: the user data of the handler to block.
<!-- # Unused Parameters # -->
@o:
@f:
@d:
<!-- # Unused Parameters # -->
@object: the object which emits the signal to block.
@func: the function pointer of the handler to block.
@data: the user data of the handler to block.
<!-- ##### FUNCTION gtk_signal_handler_block_by_data ##### -->
<!-- ##### MACRO gtk_signal_handler_block_by_data ##### -->
<para>
Prevent all user-defined handlers with a certain user data from being invoked.
</para>
@object: the object which emits the signal we want to block.
@data: the user data of the handlers to block.
<!-- # Unused Parameters # -->
@o:
@d:
<!-- # Unused Parameters # -->
@object: the object which emits the signal we want to block.
@data: the user data of the handlers to block.
<!-- ##### FUNCTION gtk_signal_handler_unblock ##### -->
<!-- ##### MACRO gtk_signal_handler_unblock ##### -->
<para>
Undo a block, by connection id. Note that undoing a block doesn't
necessarily make the hook callable, because if you block a
hook twice, you must unblock it twice.
</para>
<!-- # Unused Parameters # -->
@object: the object which emits the signal we want to unblock.
@handler_id: the emission handler identifier, as returned by
gtk_signal_connect(), etc.
<!-- ##### FUNCTION gtk_signal_handler_unblock_by_func ##### -->
<!-- ##### MACRO gtk_signal_handler_unblock_by_func ##### -->
<para>
Undo a block, by function pointer and data.
Note that undoing a block doesn't
@ -722,29 +727,29 @@ necessarily make the hook callable, because if you block a
hook twice, you must unblock it twice.
</para>
@object: the object which emits the signal we want to unblock.
@func: the function pointer to search for.
@data: the user data to search for.
<!-- # Unused Parameters # -->
@o:
@f:
@d:
<!-- # Unused Parameters # -->
@object: the object which emits the signal we want to unblock.
@func: the function pointer to search for.
@data: the user data to search for.
<!-- ##### FUNCTION gtk_signal_handler_unblock_by_data ##### -->
<!-- ##### MACRO gtk_signal_handler_unblock_by_data ##### -->
<para>
Undo block(s), to all signals for a particular object
with a particular user-data pointer
</para>
@object: the object which emits the signal we want to unblock.
@data: the user data to search for.
<!-- # Unused Parameters # -->
@o:
@d:
<!-- # Unused Parameters # -->
@object: the object which emits the signal we want to unblock.
@data: the user data to search for.
<!-- ##### FUNCTION gtk_signal_handler_pending ##### -->
<!-- ##### MACRO gtk_signal_handler_pending ##### -->
<para>
Returns a connection id corresponding to a given signal id and object.
</para>
@ -755,36 +760,36 @@ may opt to not emit the signal if no one is attached anyway,
thus saving the cost of building the arguments.
</para>
@i:
@s:
@b:
@Returns: the connection id, if a connection was found. 0 otherwise.
<!-- # Unused Parameters # -->
@object: the object to search for the desired user-defined handler.
@signal_id: the number of the signal to search for.
@may_be_blocked: whether it is acceptable to return a blocked
handler.
@Returns: the connection id, if a connection was found. 0 otherwise.
<!-- # Unused Parameters # -->
@i:
@s:
@b:
<!-- ##### FUNCTION gtk_signal_handler_pending_by_func ##### -->
<!-- ##### MACRO gtk_signal_handler_pending_by_func ##### -->
<para>
Returns a connection id corresponding to a given signal id, object, function
pointer and user data.
</para>
@o:
@s:
@b:
@f:
@d:
@Returns: the connection id, if a handler was found. 0 otherwise.
<!-- # Unused Parameters # -->
@object: the object to search for the desired handler.
@signal_id: the number of the signal to search for.
@may_be_blocked: whether it is acceptable to return a blocked
handler.
@func: the function pointer to search for.
@data: the user data to search for.
@Returns: the connection id, if a handler was found. 0 otherwise.
<!-- # Unused Parameters # -->
@o:
@s:
@b:
@f:
@d:
<!-- ##### MACRO gtk_signal_default_marshaller ##### -->

View File

@ -560,30 +560,33 @@ Create a new, unique type.
@type_info: must not be null, and @type_info->type_name must also not be null.
<!-- ##### FUNCTION gtk_type_name ##### -->
<!-- ##### MACRO gtk_type_name ##### -->
<para>
</para>
@type: a GtkType
@Returns: a pointer to the name of a type, or NULL if it has none.
<!-- # Unused Parameters # -->
@type: a GtkType
<!-- ##### FUNCTION gtk_type_from_name ##### -->
<!-- ##### MACRO gtk_type_from_name ##### -->
<para>
Get the internal representation of a type given its name.
</para>
@name: the name of a gtk type
@Returns: a GtkType
<!-- # Unused Parameters # -->
@name: the name of a gtk type
<!-- ##### FUNCTION gtk_type_parent ##### -->
<!-- ##### MACRO gtk_type_parent ##### -->
<para>
</para>
@type: a GtkType
@Returns: the GtkType of the parent
<!-- # Unused Parameters # -->
@type: a GtkType
<!-- ##### FUNCTION gtk_type_class ##### -->
@ -608,15 +611,16 @@ has all the proper initializers called.
@Returns: gpointer to a GtkTypeObject
<!-- ##### FUNCTION gtk_type_is_a ##### -->
<!-- ##### MACRO gtk_type_is_a ##### -->
<para>
Look in the type hierarchy to see if @type has @is_a_type among its
ancestors. Do so with a simple lookup, not a loop.
</para>
@Returns:
<!-- # Unused Parameters # -->
@type: GtkType
@is_a_type: GtkType
@Returns:
<!-- ##### FUNCTION gtk_type_enum_get_values ##### -->

View File

@ -1736,14 +1736,6 @@ a widget changes from un-anchored to anchored or vice-versa.
@widget: the object which received the signal.
@allocation:
<!-- ##### SIGNAL GtkWidget::size-request ##### -->
<para>
</para>
@widget: the object which received the signal.
@requisition:
<!-- ##### SIGNAL GtkWidget::state-changed ##### -->
<para>

View File

@ -633,7 +633,7 @@ gtk_list_store_set_value (GtkListStore *list_store,
_gtk_tree_data_list_value_to_node (list, &real_value);
else
_gtk_tree_data_list_value_to_node (list, value);
gtk_tree_model_changed (GTK_TREE_MODEL (list_store), path, iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (list_store), path, iter, path, iter);
gtk_tree_path_free (path);
if (converted)
g_value_unset (&real_value);
@ -669,7 +669,7 @@ gtk_list_store_set_value (GtkListStore *list_store,
_gtk_tree_data_list_value_to_node (list, &real_value);
else
_gtk_tree_data_list_value_to_node (list, value);
gtk_tree_model_changed (GTK_TREE_MODEL (list_store), path, iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (list_store), path, iter, path, iter);
gtk_tree_path_free (path);
if (converted)
g_value_unset (&real_value);
@ -1295,7 +1295,7 @@ gtk_list_store_drag_data_received (GtkTreeDragDest *drag_dest,
G_SLIST (dest_iter.user_data)->data = copy_head;
path = gtk_list_store_get_path (GTK_TREE_MODEL (tree_model), &dest_iter);
gtk_tree_model_changed (GTK_TREE_MODEL (tree_model), path, &dest_iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_model), path, &dest_iter, path, &dest_iter);
gtk_tree_path_free (path);
}
}

View File

@ -38,6 +38,7 @@ NONE:STRING,INT,POINTER
VOID:BOOLEAN
VOID:BOXED
VOID:BOXED,BOXED
VOID:BOXED,BOXED,BOXED,BOXED
VOID:BOXED,BOXED,POINTER
VOID:BOXED,POINTER
VOID:BOXED,OBJECT

View File

@ -38,6 +38,7 @@ NONE:STRING,INT,POINTER
VOID:BOOLEAN
VOID:BOXED
VOID:BOXED,BOXED
VOID:BOXED,BOXED,BOXED,BOXED
VOID:BOXED,BOXED,POINTER
VOID:BOXED,POINTER
VOID:BOXED,OBJECT

View File

@ -72,13 +72,15 @@ gtk_tree_model_base_init (gpointer g_class)
if (! initialized)
{
g_signal_newc ("changed",
g_signal_newc ("range_changed",
GTK_TYPE_TREE_MODEL,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GtkTreeModelIface, changed),
G_STRUCT_OFFSET (GtkTreeModelIface, range_changed),
NULL, NULL,
gtk_marshal_VOID__BOXED_BOXED,
G_TYPE_NONE, 2,
gtk_marshal_VOID__BOXED_BOXED_BOXED_BOXED,
G_TYPE_NONE, 4,
GTK_TYPE_TREE_PATH,
GTK_TYPE_TREE_ITER,
GTK_TYPE_TREE_PATH,
GTK_TYPE_TREE_ITER);
g_signal_newc ("inserted",
@ -1018,16 +1020,22 @@ gtk_tree_model_get_valist (GtkTreeModel *tree_model,
}
void
gtk_tree_model_changed (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter)
gtk_tree_model_range_changed (GtkTreeModel *tree_model,
GtkTreePath *start_path,
GtkTreeIter *start_iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter)
{
g_return_if_fail (tree_model != NULL);
g_return_if_fail (GTK_IS_TREE_MODEL (tree_model));
g_return_if_fail (path != NULL);
g_return_if_fail (iter != NULL);
g_return_if_fail (start_path != NULL);
g_return_if_fail (start_iter != NULL);
g_return_if_fail (end_path != NULL);
g_return_if_fail (end_iter != NULL);
g_signal_emit_by_name (tree_model, "changed", path, iter);
g_signal_emit_by_name (tree_model, "range_changed",
start_path, start_iter,
end_path, end_iter);
}
void

View File

@ -56,9 +56,11 @@ struct _GtkTreeModelIface
GTypeInterface g_iface;
/* Signals */
void (* changed) (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
void (* range_changed) (GtkTreeModel *tree_model,
GtkTreePath *start_path,
GtkTreeIter *start_iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter);
void (* inserted) (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
@ -211,9 +213,11 @@ void gtk_tree_model_get_valist (GtkTreeModel *tree_model,
/* Signals */
void gtk_tree_model_changed (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
void gtk_tree_model_range_changed (GtkTreeModel *tree_model,
GtkTreePath *start_path,
GtkTreeIter *start_iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter);
void gtk_tree_model_inserted (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);

View File

@ -54,9 +54,11 @@ static void gtk_tree_model_sort_init (GtkTreeModelSort *
static void gtk_tree_model_sort_class_init (GtkTreeModelSortClass *tree_model_sort_class);
static void gtk_tree_model_sort_tree_model_init (GtkTreeModelIface *iface);
static void gtk_tree_model_sort_finalize (GObject *object);
static void gtk_tree_model_sort_changed (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
static void gtk_tree_model_sort_range_changed (GtkTreeModel *model,
GtkTreePath *start_path,
GtkTreeIter *start_iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter,
gpointer data);
static void gtk_tree_model_sort_inserted (GtkTreeModel *model,
GtkTreePath *path,
@ -253,8 +255,8 @@ gtk_tree_model_sort_set_model (GtkTreeModelSort *tree_model_sort,
{
tree_model_sort->changed_id =
g_signal_connectc (child_model,
"changed",
gtk_tree_model_sort_changed,
"range_changed",
gtk_tree_model_sort_range_changed,
tree_model_sort,
FALSE);
tree_model_sort->inserted_id =
@ -334,10 +336,12 @@ gtk_tree_model_sort_finalize (GObject *object)
}
static void
gtk_tree_model_sort_changed (GtkTreeModel *s_model,
GtkTreePath *s_path,
GtkTreeIter *s_iter,
gpointer data)
gtk_tree_model_sort_range_changed (GtkTreeModel *s_model,
GtkTreePath *s_start_path,
GtkTreeIter *s_start_iter,
GtkTreePath *s_end_path,
GtkTreeIter *s_end_iter,
gpointer data)
{
GtkTreeModelSort *tree_model_sort = GTK_TREE_MODEL_SORT (data);
GtkTreePath *path;
@ -347,19 +351,19 @@ gtk_tree_model_sort_changed (GtkTreeModel *s_model,
gboolean free_s_path = FALSE;
gint index;
g_return_if_fail (s_path != NULL || s_iter != NULL);
g_return_if_fail (s_start_path != NULL || s_start_iter != NULL);
if (s_path == NULL)
if (s_start_path == NULL)
{
free_s_path = TRUE;
s_path = gtk_tree_model_get_path (s_model, s_iter);
s_start_path = gtk_tree_model_get_path (s_model, s_start_iter);
}
path = gtk_tree_model_sort_convert_path_real (tree_model_sort, s_path, FALSE);
path = gtk_tree_model_sort_convert_path_real (tree_model_sort, s_start_path, FALSE);
if (path == NULL)
{
if (free_s_path)
gtk_tree_path_free (s_path);
gtk_tree_path_free (s_start_path);
return;
}
@ -378,11 +382,11 @@ gtk_tree_model_sort_changed (GtkTreeModel *s_model,
(GtkTreeIter *) elt,
TRUE);
g_signal_emit_by_name (G_OBJECT (data), "changed", path, &iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (data), path, &iter, path, &iter);
gtk_tree_path_free (path);
if (free_s_path)
gtk_tree_path_free (s_path);
gtk_tree_path_free (s_start_path);
}
/* FALSE if the value was inserted, TRUE otherwise */

View File

@ -652,7 +652,7 @@ gtk_tree_store_set_value (GtkTreeStore *tree_store,
_gtk_tree_data_list_value_to_node (list, &real_value);
else
_gtk_tree_data_list_value_to_node (list, value);
gtk_tree_model_changed (GTK_TREE_MODEL (tree_store), path, iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_store), path, iter, path, iter);
gtk_tree_path_free (path);
if (converted)
g_value_unset (&real_value);
@ -686,7 +686,7 @@ gtk_tree_store_set_value (GtkTreeStore *tree_store,
_gtk_tree_data_list_value_to_node (list, &real_value);
else
_gtk_tree_data_list_value_to_node (list, value);
gtk_tree_model_changed (GTK_TREE_MODEL (tree_store), path, iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_store), path, iter, path, iter);
gtk_tree_path_free (path);
if (converted)
g_value_unset (&real_value);
@ -1136,7 +1136,7 @@ copy_node_data (GtkTreeStore *tree_store,
G_NODE (dest_iter->user_data)->data = copy_head;
path = gtk_tree_store_get_path (GTK_TREE_MODEL (tree_store), dest_iter);
gtk_tree_model_changed (GTK_TREE_MODEL (tree_store), path, dest_iter);
gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_store), path, dest_iter, path, dest_iter);
gtk_tree_path_free (path);
}

View File

@ -171,9 +171,11 @@ static void gtk_tree_view_drag_data_received (GtkWidget *widget,
static void gtk_tree_view_set_adjustments (GtkTreeView *tree_view,
GtkAdjustment *hadj,
GtkAdjustment *vadj);
static void gtk_tree_view_changed (GtkTreeModel *model,
static void gtk_tree_view_range_changed (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter,
gpointer data);
static void gtk_tree_view_inserted (GtkTreeModel *model,
GtkTreePath *path,
@ -2709,10 +2711,12 @@ gtk_tree_view_row_activated (GtkTreeView *tree_view,
*/
static void
gtk_tree_view_changed (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer data)
gtk_tree_view_range_changed (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter,
gpointer data)
{
GtkTreeView *tree_view = (GtkTreeView *)data;
GtkRBTree *tree;
@ -3897,8 +3901,8 @@ gtk_tree_view_setup_model (GtkTreeView *tree_view)
tree_view->priv->tree = NULL;
g_signal_connectc (tree_view->priv->model,
"changed",
gtk_tree_view_changed,
"range_changed",
gtk_tree_view_range_changed,
tree_view,
FALSE);
g_signal_connectc (tree_view->priv->model,
@ -3966,25 +3970,25 @@ gtk_tree_view_set_model (GtkTreeView *tree_view,
if (GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_MODEL_SETUP))
{
g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model),
G_SIGNAL_MATCH_FUNC,
G_SIGNAL_MATCH_DATA,
0, 0, NULL,
gtk_tree_view_changed, NULL);
NULL, tree_view);
g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model),
G_SIGNAL_MATCH_FUNC,
G_SIGNAL_MATCH_DATA,
0, 0, NULL,
gtk_tree_view_inserted, NULL);
NULL, tree_view);
g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model),
G_SIGNAL_MATCH_FUNC,
G_SIGNAL_MATCH_DATA,
0, 0, NULL,
gtk_tree_view_has_child_toggled, NULL);
NULL, tree_view);
g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model),
G_SIGNAL_MATCH_FUNC,
G_SIGNAL_MATCH_DATA,
0, 0, NULL,
gtk_tree_view_deleted, NULL);
NULL, tree_view);
g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model),
G_SIGNAL_MATCH_FUNC,
G_SIGNAL_MATCH_DATA,
0, 0, NULL,
gtk_tree_view_reordered, NULL);
NULL, tree_view);
_gtk_rbtree_free (tree_view->priv->tree);
}