Class TreeRowReference

All Implemented Interfaces:
PointerInterface

public class TreeRowReference extends Record
A GtkTreeRowReference tracks model changes so that it always refers to the
same row (a `GtkTreePath` refers to a position, not a fixed row). Create a
new GtkTreeRowReference with gtk_tree_row_reference_new().

https://docs.gtk.org/gtk4/struct.TreeRowReference.html

  • Constructor Details

    • TreeRowReference

      public TreeRowReference(PointerContainer pointer)
    • TreeRowReference

      public TreeRowReference(@Nonnull TreeModel model, @Nonnull TreePath path)
      Creates a row reference based on @path.

      This reference will keep pointing to the node pointed to
      by @path, so long as it exists. Any changes that occur on @model are
      propagated, and the path is updated appropriately. If
      @path isn’t a valid path in @model, then %NULL is returned.
      Parameters:
      model - a `GtkTreeModel`
      path - a valid `GtkTreePath` to monitor
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newProxyTreeRowReference

      public static TreeRowReference newProxyTreeRowReference(@Nonnull Object proxy, @Nonnull TreeModel model, @Nonnull TreePath path)
      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.
      Parameters:
      proxy - a proxy `GObject`
      model - a `GtkTreeModel`
      path - a valid `GtkTreePath` to monitor
      Returns:
      a newly allocated `GtkTreeRowReference`
    • copy

      public TreeRowReference copy()
      Copies a `GtkTreeRowReference`.
      Returns:
      a copy of @reference
    • free

      public void free()
      Free’s @reference. @reference may be %NULL
    • getModel

      public TreeModel getModel()
      Returns the model that the row reference is monitoring.
      Returns:
      the model
    • getPath

      public TreePath getPath()
      Returns a path that the row reference currently points to,
      or %NULL if the path pointed to is no longer valid.
      Returns:
      a current path
    • valid

      public boolean valid()
      Returns %TRUE if the @reference is non-%NULL and refers to
      a current valid path.
      Returns:
      %TRUE if @reference points to a valid path
    • deleted

      public static void deleted(@Nonnull Object proxy, @Nonnull TreePath path)
      Lets a set of row reference created by
      gtk_tree_row_reference_new_proxy() know that the
      model emitted the ::row-deleted signal.
      Parameters:
      proxy - a `GObject`
      path - the path position that was deleted
    • inserted

      public static void inserted(@Nonnull Object proxy, @Nonnull TreePath path)
      Lets a set of row reference created by
      gtk_tree_row_reference_new_proxy() know that the
      model emitted the ::row-inserted signal.
      Parameters:
      proxy - a `GObject`
      path - the row position that was inserted
    • reordered

      public static void reordered(@Nonnull Object proxy, @Nonnull TreePath path, @Nonnull TreeIter iter, @Nonnull Int new_order)
      Lets a set of row reference created by
      gtk_tree_row_reference_new_proxy() know that the
      model emitted the ::rows-reordered signal.
      Parameters:
      proxy - a `GObject`
      path - the parent path of the reordered signal
      iter - the iter pointing to the parent of the reordered
      new_order - the new order of rows
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()