GtkNodesNode

GtkNodesNode — A node container

Functions

Properties

int height Read / Write
guint id Read / Write
int width Read / Write
int x Read / Write
int y Read / Write

Signals

Types and Values

#define GTK_COMPILATION

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBox
                    ╰── GtkNodesNode

Description

Overview

The GtkNodesNode widget is a widget container drived from GtkBox. Widgets added to the node are assigned a GtkNodesNodeSocket. The user must configure the type of socket and connect to the socket-incoming signal in order to be able to receive the data passed through a connection.

The Node can be collapsed by clicking the GtkExpander which will hide the node items, and show a compact representation of the node with just the GtkExpander and the sockets visible.


Notes

While possible, using a GtkNodesNode outside of a GtkNodesNodeView does not make much sense.

The placement of sockets is currently only properly supported for the GTK_ORIENTATION_VERTICAL orientation

Custom GtkNodesNode widgets can save and restore their internal child widget states and other properties and special tags by by implementing the proper GtkBuildable interfaces. To export the configuration, node_export_properties() must be implemented and is expected to return valid xml output which is integrated into the xml output produced by GtkNodesNodeView.

For example, to restore the value of an internal spin button widget, the function would return an allocated string containing:

<child> <object> 5 </object> </child>

Functions

gtk_nodes_node_new ()

GtkWidget *
gtk_nodes_node_new (void);

Creates a new node.

Returns

the new GtkNodesNode.

[transfer full]


gtk_nodes_node_item_add ()

GtkWidget *
gtk_nodes_node_item_add (GtkNodesNode *node,
                         GtkWidget *widget,
                         GtkNodesNodeSocketIO type);

Parameters

node

a GtkNodesNode

 

widget

a widget to add

 

type

the type of the node

 

Returns

the reference to the socket widget.

[transfer none]


gtk_nodes_node_item_remove ()

void
gtk_nodes_node_item_remove (GtkNodesNode *node,
                            GtkWidget *widget);

This removes an item and its corresponding socket from a GtkNodesNode ´

Parameters

node

a GtkNodesNode

 

widget

a widget to remove

 

gtk_nodes_node_item_set_expand ()

void
gtk_nodes_node_item_set_expand (GtkNodesNode *node,
                                GtkWidget *child,
                                gboolean expand);

gtk_nodes_node_item_set_fill ()

void
gtk_nodes_node_item_set_fill (GtkNodesNode *node,
                              GtkWidget *child,
                              gboolean fill);

gtk_nodes_node_item_set_packing ()

void
gtk_nodes_node_item_set_packing (GtkNodesNode *node,
                                 GtkWidget *child,
                                 GtkPackType pack_type);

gtk_nodes_node_set_label ()

void
gtk_nodes_node_set_label (GtkNodesNode *node,
                          const gchar *label);

Parameters

node

a GtkNodesNode

 

label

the label text to set

 

gtk_nodes_node_get_socket_radius ()

gdouble
gtk_nodes_node_get_socket_radius (GtkNodesNode *node);

Parameters

node

a GtkNodesNode

 

Returns

the radius of any socket on this node, 0 on error


gtk_nodes_node_set_socket_radius ()

void
gtk_nodes_node_set_socket_radius (GtkNodesNode *node,
                                  const gdouble radius);

Parameters

node

a GtkNodesNode

 

radius

the radius of any socket on this node

 

gtk_nodes_node_get_expanded ()

gboolean
gtk_nodes_node_get_expanded (GtkNodesNode *node);

Parameters

node

a GtkNodesNode

 

Returns

the state of expansion


gtk_nodes_node_set_expanded ()

void
gtk_nodes_node_set_expanded (GtkNodesNode *node,
                             gboolean expanded);

Parameters

node

a GtkNodesNode

 

expanded

the expansion state

 

gtk_nodes_node_block_expander ()

void
gtk_nodes_node_block_expander (GtkNodesNode *node);

The expander is very very nasty in that it responds to an isolated "release" event, which I'm apparently unable to block. If the node is contained in a GtkNodesNodeView, it will therefore expand/contract if someone clicks the label when executing a node "drag" motion.

Note: gtk_nodes_node_block_expander() repeatedly will affect the state only once

Parameters

node

a GtkNodesNode

 

gtk_nodes_node_unblock_expander ()

void
gtk_nodes_node_unblock_expander (GtkNodesNode *node);

Unblocks the expander from receiving signals

Parameters

node

a GtkNodesNode

 

gtk_nodes_node_get_sinks ()

GList *
gtk_nodes_node_get_sinks (GtkNodesNode *node);

Parameters

node

a GtkNodesNode

 

Returns

a list of this node's sockets in sink mode.

[element-type GtkNodesNodeSocket][transfer container]


gtk_nodes_node_get_sources ()

GList *
gtk_nodes_node_get_sources (GtkNodesNode *node);

Parameters

node

a GtkNodesNode

 

Returns

a list of this node's sockets in source mode.

[element-type GtkNodesNodeSocket][transfer container]


gtk_nodes_node_export_properties ()

gchar *
gtk_nodes_node_export_properties (GtkNodesNode *node);

This returns an XML description of the internal state configuration, so it can be restored with GtkBuilder. NULL will be returned if the derived GtkNodesNode subclass did not implement this function

[virtual export_properties]

Parameters

node

a GtkNodesNode

 

Returns

an XML string describing the internal configuration; may be NULL.

[transfer full]


gtk_nodes_node_set_icon_name ()

void
gtk_nodes_node_set_icon_name (GtkNodesNode *node,
                              const gchar *icon_name);

Parameters

node

a GtkNodesNode

 

icon_name

the name of the icon to display

 

Types and Values

GTK_COMPILATION

#define             GTK_COMPILATION

Property Details

The “height” property

  “height”                   int

The height of the node

Owner: GtkNodesNode

Flags: Read / Write

Default value: 0


The “id” property

  “id”                       guint

The numeric identifier of the node

Owner: GtkNodesNode

Flags: Read / Write

Default value: 0


The “width” property

  “width”                    int

The width of the node

Owner: GtkNodesNode

Flags: Read / Write

Default value: 0


The “x” property

  “x”                        int

The x position of the node

Owner: GtkNodesNode

Flags: Read / Write

Default value: 0


The “y” property

  “y”                        int

The y position of the node

Owner: GtkNodesNode

Flags: Read / Write

Default value: 0

Signal Details

The “node-func-clicked” signal

void
user_function (GtkNodesNode *widget,
               gpointer      user_data)

The ::node-func-clicked signal is emitted when the user clicks the functional node button on a node socket.

Parameters

widget

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “node-socket-connect” signal

void
user_function (GtkNodesNode *widget,
               GtkWidget    *sink,
               GtkWidget    *source,
               gpointer      user_data)

The ::node-socket-connect signal is emitted when a drag on a node socket results in a successful connection

Parameters

widget

the object which received the signal.

 

sink

the socket which emitted the signal.

 

source

the source which connected to the sink

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “node-socket-destroyed” signal

void
user_function (GtkNodesNode *widget,
               GtkWidget    *socket,
               gpointer      user_data)

The ::node-socket-destroyed signal is emitted when a node socket disconnects from a source socket

Parameters

widget

the object which received the signal.

 

socket

the socket which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “node-socket-disconnect” signal

void
user_function (GtkNodesNode *widget,
               GtkWidget    *sink,
               GtkWidget    *source,
               gpointer      user_data)

The ::node-socket-disconnect signal is emitted when a node socket disconnects from a source socket

Parameters

widget

the object which received the signal.

 

sink

the socket which emitted the signal.

 

source

the source which was connected to the sink

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “node-socket-drag-begin” signal

void
user_function (GtkNodesNode *widget,
               int           x,
               int           y,
               gpointer      user_data)

The ::node-socket-drag-begin signal is emitted when the user initiates a drag on a node socket. Coordinates are given with respect to the parent.

Parameters

widget

the object which received the signal.

 

x

the x coordinate of the event

 

y

the y coordinate of the event

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “node-socket-drag-end” signal

void
user_function (GtkNodesNode *widget,
               gpointer      user_data)

The ::node-socket-drag-end signal is emitted when the user ends a drag operation on a node socket.

Parameters

widget

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First