### Method

# Gtk Expressionwatch

#### Declaration [src]

    GtkExpressionWatch*
    gtk_expression_watch (
      GtkExpression* self,
      GObject* this_,
      GtkExpressionNotify notify,
      gpointer user_data,
      GDestroyNotify user_destroy
    )

#### Description [src]

Watch the given `expression` for changes.

The `notify` function will be called whenever the evaluation of `self` may have changed.

GTK cannot guarantee that the evaluation did indeed change when the `notify` gets invoked, but it guarantees the opposite: When it did in fact change, the `notify` will be invoked.

#### Parameters

`this_`

  Type: `GObject`

  The `this` argument to watch.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`notify`

  Type: `GtkExpressionNotify`

  Callback to invoke when the expression changes.

`user_data`

  Type: `gpointer`

  User data to pass to the `notify` callback.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`user_destroy`

  Type: `GDestroyNotify`

  Destroy notify for `user_data`

#### Return value

Type: `GtkExpressionWatch`

The newly installed watch. Note that the only reference held to the watch will be released when the watch is unwatched which can happen automatically, and not just via `gtk_expression_watch_unwatch()`. You should call `gtk_expression_watch_ref()` if you want to keep the watch around.

The data is owned by the instance.