EphyNodeView 3 EPIPHANY Library
EphyNodeView A GtkTreeView displaying a collection of EphyNode elements.

## Synopsis

                        EphyNodeView;
    enum                EphyNodeViewPriority;
    enum                EphyNodeViewFlags;
    GtkWidget *         ephy_node_view_new                  (EphyNode *root,
                                                             EphyNodeFilter *filter);
    void                ephy_node_view_add_toggle           (EphyNodeView *view,
                                                             EphyTreeModelNodeValueFunc value_func,
                                                             gpointer data);
    int                 ephy_node_view_add_column           (EphyNodeView *view,
                                                             const char *title,
                                                             GType value_type,
                                                             guint prop_id,
                                                             EphyNodeViewFlags flags,
                                                             EphyTreeModelNodeValueFunc icon_func,
                                                             GtkTreeViewColumn **ret);
    int                 ephy_node_view_add_data_column      (EphyNodeView *view,
                                                             GType value_type,
                                                             guint prop_id,
                                                             EphyTreeModelNodeValueFunc func,
                                                             gpointer data);
    void                ephy_node_view_set_sort             (EphyNodeView *view,
                                                             GType value_type,
                                                             guint prop_id,
                                                             GtkSortType sort_type);
    void                ephy_node_view_set_priority         (EphyNodeView *view,
                                                             EphyNodeViewPriority priority_prop_id);
    void                ephy_node_view_remove               (EphyNodeView *view);
    GList *             ephy_node_view_get_selection        (EphyNodeView *view);
    void                ephy_node_view_select_node          (EphyNodeView *view,
                                                             EphyNode *node);
    void                ephy_node_view_enable_drag_source   (EphyNodeView *view,
                                                             const GtkTargetEntry *types,
                                                             int n_types,
                                                             int base_drag_column_id,
                                                             int extra_drag_column_id);
    void                ephy_node_view_enable_drag_dest     (EphyNodeView *view,
                                                             const GtkTargetEntry *types,
                                                             int n_types);
    void                ephy_node_view_edit                 (EphyNodeView *view,
                                                             gboolean remove_if_cancelled);
    gboolean            ephy_node_view_is_target            (EphyNodeView *view);
    void                ephy_node_view_popup                (EphyNodeView *view,
                                                             GtkWidget *menu);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkTreeView
                                     +----EphyNodeView

## Implemented Interfaces

EphyNodeView implements AtkImplementorIface and GtkBuildable.

## Properties

      "filter"                   EphyNodeFilter*       : Read / Write
      "root"                     gpointer              : Read / Write / Construct Only

## Signals

      "node-activated"                                 : Run Last
      "node-dropped"                                   : Run Last
      "node-middle-clicked"                            : Run Last
      "node-selected"                                  : Run Last
      "node-toggled"                                   : Run Last

## Description

EphyNodeView implements a GtkTreeView displaying a given set of EphyNode elements. It implements drag and dropping.

## Details

### EphyNodeView

    typedef struct _EphyNodeView EphyNodeView;

EphyNodeView

### enum EphyNodeViewPriority

    typedef enum
    {
    	EPHY_NODE_VIEW_ALL_PRIORITY,
    	EPHY_NODE_VIEW_SPECIAL_PRIORITY,
    	EPHY_NODE_VIEW_NORMAL_PRIORITY
    } EphyNodeViewPriority;

EphyNodeViewPriority

### enum EphyNodeViewFlags

    typedef enum
    {
    	EPHY_NODE_VIEW_SHOW_PRIORITY = 1 << 0,
    	EPHY_NODE_VIEW_SORTABLE = 1 << 1,
    	EPHY_NODE_VIEW_EDITABLE = 1 << 2,
    	EPHY_NODE_VIEW_SEARCHABLE = 1 << 3,
    	EPHY_NODE_VIEW_ELLIPSIZED = 1 << 4
    } EphyNodeViewFlags;

EphyNodeViewFlags

### ephy_node_view_new ()

    GtkWidget *         ephy_node_view_new                  (EphyNode *root,
                                                             EphyNodeFilter *filter);

Creates a new EphyNodeView using filter as the model and root as the root node.

root :

  the root EphyNode for the view

filter :

  a filter model for the view

Returns :

  a new EphyNodeView as a GtkWidget

ephy_node_view_new

### ephy_node_view_add_toggle ()

    void                ephy_node_view_add_toggle           (EphyNodeView *view,
                                                             EphyTreeModelNodeValueFunc value_func,
                                                             gpointer data);

Append a new toggle column to view with its value set by value_func which can receive the optional data parameter.

view :

  an EphyNodeView widget

value_func :

  an EphyTreeModelNodeValueFunc function to set column values

data :

  user_data to be passed to value_func

ephy_node_view_add_toggle

### ephy_node_view_add_column ()

    int                 ephy_node_view_add_column           (EphyNodeView *view,
                                                             const char *title,
                                                             GType value_type,
                                                             guint prop_id,
                                                             EphyNodeViewFlags flags,
                                                             EphyTreeModelNodeValueFunc icon_func,
                                                             GtkTreeViewColumn **ret);

Adds a new column, corresponding to a prop_id of the model, to the view.

view :

  an EphyNodeView

title :

  title for the column

value_type :

  type to be held by the column

prop_id :

  numeric id corresponding to the column in the model to be shown

flags :

  flags for the new column

icon_func :

  a function providing the icon for the column

ret :

  location to store the created column

Returns :

  the id of the new column

ephy_node_view_add_column

### ephy_node_view_add_data_column ()

    int                 ephy_node_view_add_data_column      (EphyNodeView *view,
                                                             GType value_type,
                                                             guint prop_id,
                                                             EphyTreeModelNodeValueFunc func,
                                                             gpointer data);

Adds a new column to view, taking its value from a column in the model defined by prop_id, or from func.

view :

  an EphyNodeView

value_type :

  type to be held by the column

prop_id :

  property corresponding to the model behind view

func :

  a data function for the column or `NULL`

data :

  optional data for func

Returns :

  the id of the new column

ephy_node_view_add_data_column

### ephy_node_view_set_sort ()

    void                ephy_node_view_set_sort             (EphyNodeView *view,
                                                             GType value_type,
                                                             guint prop_id,
                                                             GtkSortType sort_type);

Adds a sort column to the view corresponding to prop_id in the model.

view :

  an EphyNodeView

value_type :

  type of the value held at prop_id by the model

prop_id :

  column id in the model

sort_type :

  the sort mode

ephy_node_view_set_sort

### ephy_node_view_set_priority ()

    void                ephy_node_view_set_priority         (EphyNodeView *view,
                                                             EphyNodeViewPriority priority_prop_id);

Adds a priority column to the view with priority_prop_id as the value.

view :

  an EphyNodeView

priority_prop_id :

  one of EphyNodeViewPriority

ephy_node_view_set_priority

### ephy_node_view_remove ()

    void                ephy_node_view_remove               (EphyNodeView *view);

Remove the currently selected nodes from view.

view :

  an EphyNodeView

ephy_node_view_remove

### ephy_node_view_get_selection ()

    GList *             ephy_node_view_get_selection        (EphyNodeView *view);

Returns the selected elements of view as a GList of EphyNode elements.

view :

  an EphyNodeView

Returns :

  a GList of EphyNode elements

ephy_node_view_get_selection

### ephy_node_view_select_node ()

    void                ephy_node_view_select_node          (EphyNodeView *view,
                                                             EphyNode *node);

Puts the selection of view on node.

view :

  an EphyNodeView

node :

  the EphyNode in the view to be selected

ephy_node_view_select_node

### ephy_node_view_enable_drag_source ()

    void                ephy_node_view_enable_drag_source   (EphyNodeView *view,
                                                             const GtkTargetEntry *types,
                                                             int n_types,
                                                             int base_drag_column_id,
                                                             int extra_drag_column_id);

Sets view as a drag source.

view :

  an EphyNodeView

types :

  a GtkTargetEntry for the view

n_types :

  length of types

base_drag_column_id :

  id of the column for ephy_tree_model_sort_set_base_drag_column_id

extra_drag_column_id :

  id of the column for ephy_tree_model_sort_set_extra_drag_column_id

ephy_node_view_enable_drag_source

### ephy_node_view_enable_drag_dest ()

    void                ephy_node_view_enable_drag_dest     (EphyNodeView *view,
                                                             const GtkTargetEntry *types,
                                                             int n_types);

Set the types of drag destination allowed by view.

view :

  the EphyNodeView

types :

  types allowed as GtkTargetEntry

n_types :

  count of types

ephy_node_view_enable_drag_dest

### ephy_node_view_edit ()

    void                ephy_node_view_edit                 (EphyNodeView *view,
                                                             gboolean remove_if_cancelled);

Edits the currently selected node in view, the remove_if_cancelled parameter controls if the node should be removed if editing is cancelled.

view :

  an EphyNodeView

remove_if_cancelled :

  whether the edited node should be removed if editing is cancelled

ephy_node_view_edit

### ephy_node_view_is_target ()

    gboolean            ephy_node_view_is_target            (EphyNodeView *view);

Tells if view is currently focused.

view :

  an EphyNodeView

Returns :

  `TRUE` if view is focused

ephy_node_view_is_target

### ephy_node_view_popup ()

    void                ephy_node_view_popup                (EphyNodeView *view,
                                                             GtkWidget *menu);

Triggers the popup of menu in view.

view :

  an EphyNodeView widget

menu :

  a GtkMenu to be shown

ephy_node_view_popup

## Property Details

### The `"filter"` property

      "filter"                   EphyNodeFilter*       : Read / Write

An EphyNodeFilter object to use in the view.

EphyNodeView:filter

### The `"root"` property

      "root"                     gpointer              : Read / Write / Construct Only

A gpointer to the root node of the EphyNode elements of the view.

EphyNodeView:root

## Signal Details

### The `"node-activated"` signal

    void                user_function                      (EphyNodeView *view,
                                                            gpointer      node,
                                                            gpointer      user_data)      : Run Last

Emitted when a row is activated.

view :

  the object on which the signal is emitted

node :

  the activated EphyNode

user_data :

  user data set when the signal handler was connected.

EphyNodeView::node-activated

### The `"node-dropped"` signal

    void                user_function                      (EphyNodeView *view,
                                                            gpointer      node,
                                                            gpointer      uris,
                                                            gpointer      user_data)      : Run Last

Emitted when an EphyNode is dropped into the EphyNodeView.

view :

  the object on which the signal is emitted

node :

  the dropped EphyNode

uris :

  URIs from the dragged data

user_data :

  user data set when the signal handler was connected.

EphyNodeView::node-dropped

### The `"node-middle-clicked"` signal

    void                user_function                      (EphyNodeView *view,
                                                            gpointer      node,
                                                            gpointer      user_data)      : Run Last

Emitted when the user middle clicks on a row of the EphyNodeView.

view :

  the object on which the signal is emitted

node :

  the clicked EphyNode

user_data :

  user data set when the signal handler was connected.

EphyNodeView::node-middle-clicked

### The `"node-selected"` signal

    void                user_function                      (EphyNodeView *view,
                                                            gpointer      node,
                                                            gpointer      user_data)      : Run Last

Emitted when a row is selected.

view :

  the object on which the signal is emitted

node :

  the selected EphyNode

user_data :

  user data set when the signal handler was connected.

EphyNodeView::node-selected

### The `"node-toggled"` signal

    void                user_function                      (EphyNodeView *view,
                                                            gpointer      node,
                                                            gboolean      checked,
                                                            gpointer      user_data)      : Run Last

Emitted when a row value is toggled, only emitted for toggle columns.

view :

  the object on which the signal is emitted

node :

  the target EphyNode

checked :

  the new value of the toggle column

user_data :

  user data set when the signal handler was connected.

EphyNodeView::node-toggled