### Function

# Gtk TreeRowReference new_proxy

deprecated: 4.10

#### Declaration [src]

    GtkTreeRowReference*
    gtk_tree_row_reference_new_proxy (
      GObject* proxy,
      GtkTreeModel* model,
      GtkTreePath* path
    )

#### Description [src]

You do not need to use this function.

Creates a row reference based on `path`.

This reference will keep pointing to the node pointed to by `path`, so long as it exists. If `path` isn’t a valid path in `model`, then `NULL` is returned. However, unlike references created with gtk_tree_row_reference_new(), it does not listen to the model for changes. The creator of the row reference must do this explicitly using gtk_tree_row_reference_inserted(), gtk_tree_row_reference_deleted(), gtk_tree_row_reference_reordered().

These functions must be called exactly once per proxy when the corresponding signal on the model is emitted. This single call updates all row references for that proxy. Since built-in GTK objects like `GtkTreeView` already use this mechanism internally, using them as the proxy object will produce unpredictable results. Further more, passing the same object as `model` and `proxy` doesn’t work for reasons of internal implementation.

This type of row reference is primarily meant by structures that need to carefully monitor exactly when a row reference updates itself, and is not generally needed by most applications.

Deprecated since: 4.10

Please do not use it in newly written code.

#### Parameters

`proxy`

  Type: `GObject`

  A proxy `GObject`

  The data is owned by the caller of the function.

`model`

  Type: `GtkTreeModel`

  A `GtkTreeModel`

  The data is owned by the caller of the function.

`path`

  Type: `GtkTreePath`

  A valid `GtkTreePath` to monitor.

  The data is owned by the caller of the function.

#### Return value

Type: `GtkTreeRowReference`

A newly allocated `GtkTreeRowReference`

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.