Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AG_GRAPH(3)		    Library Functions Manual		   AG_GRAPH(3)

NAME
       AG_Graph	-- agar	graph view widget

SYNOPSIS
       #include	<agar/core.h>
       #include	<agar/gui.h>

DESCRIPTION
       The  AG_Graph widget displays a graph.  A graph is composed of vertices
       (or `nodes') and	edges that connect pairs of vertices.

       Edges may be either directed or undirected.  Labels and colors  can  be
       associated with edges or	vertices.

INHERITANCE HIERARCHY
       AG_Object(3) -> AG_Widget(3) -> AG_Graph.

INITIALIZATION
       AG_Graph	* AG_GraphNew(AG_Widget	*parent, Uint flags)

       void AG_GraphSizeHint(AG_Graph *graph, Uint width, Uint height)

       The  AG_GraphNew()  function allocates, initializes, and	attaches a new
       AG_Graph	widget.	 Acceptable flags include:

       AG_GRAPH_NO_MOVE	    User cannot	move vertices.

       AG_GRAPH_NO_SELECT   User cannot	select vertices.

       AG_GRAPH_NO_MENUS    Disable popup menus.

       AG_GRAPH_READONLY    Implies AG_GRAPH_NO_MOVE,  AG_GRAPH_NO_SELECT  and
			    AG_GRAPH_NO_MENUS.

       AG_GRAPH_HFILL	    Expand horizontally	in parent container.

       AG_GRAPH_VFILL	    Expand vertically in parent	container.

       AG_GRAPH_EXPAND	    Shorthand for AG_GRAPH_HFILL | AG_GRAPH_VFILL.

       The AG_GraphSizeHint() function requests	an initial widget size in pix-
       els.

VERTICES
       AG_GraphVertex *	AG_GraphVertexNew(AG_Graph *graph, void	*userPtr)

       AG_GraphVertex *	AG_GraphVertexFind(AG_Graph *graph, void *userPtr)

       void  AG_GraphVertexLabel(AG_GraphVertex	 *vertex,  const char *format,
       ...)

       void AG_GraphVertexLabelS(AG_GraphVertex	*vertex, const char *text)

       void AG_GraphVertexColorLabel(AG_GraphVertex *vertex, Uint8 r, Uint8 g,
       Uint8 b)

       void AG_GraphVertexColorBG(AG_GraphVertex *vertex, Uint8	 r,  Uint8  g,
       Uint8 b)

       void   AG_GraphVertexSize(AG_GraphVertex	  *vertex,  Uint  width,  Uint
       height)

       void AG_GraphVertexPosition(AG_GraphVertex *vertex, int x, int y)

       void AG_GraphVertexPopupMenu(AG_GraphVertex *vertex, AG_PopupMenu *pm)

       The AG_GraphVertexNew() function	creates	a new vertex in	the  specified
       graph.	userPtr	is an optional user pointer to associate with the ver-
       tex.

       AG_GraphVertexFind() returns the	vertex	matching  the  specified  user
       pointer,	or NULL	if no match exists.

       AG_GraphVertexLabel() sets the text label associated with a vertex.

       AG_GraphVertexColorLabel()   sets   the	 color	 of  the  text	label.
       AG_GraphVertexColorBG() sets the	background color for the node item.

       AG_GraphVertexSize() changes the	default	size of	the node item.

       AG_GraphVertexPosition()	moves the node item to the given  position  in
       the view.

       AG_GraphVertexPopupMenu()  arranges for the given popup menu to be dis-
       played when the user right clicks on the	vertex.

EDGES
       AG_GraphEdge *  AG_GraphEdgeNew(AG_Graph	 *graph,  AG_GraphVertex  *v1,
       AG_GraphVertex *v2, void	*userPtr)

       AG_GraphEdge  * AG_DirectedGraphEdgeNew(AG_Graph	*graph,	AG_GraphVertex
       *v1, AG_GraphVertex *v2,	void *userPtr)

       AG_GraphEdge * AG_GraphEdgeFind(AG_Graph	*graph,	void *userPtr)

       void AG_GraphEdgeLabel(AG_GraphEdge *edge, const	char *format, ...)

       void AG_GraphEdgeLabelS(AG_GraphEdge *edge, const char *text)

       void AG_GraphEdgeColorLabel(AG_GraphEdge	*edge, Uint8 r,	Uint8 g, Uint8
       b)

       void AG_GraphEdgeColor(AG_GraphEdge *edge, Uint8	r, Uint8 g, Uint8 b)

       void AG_GraphEdgePopupMenu(AG_GraphEdge *edge, AG_PopupMenu *menu)

       The AG_GraphEdgeNew() function creates a	new edge  connecting  vertices
       v1  and	v2.  If	the two	vertices are already connected by an edge, the
       function	fails and returns NULL.	 userPtr is an optional	 user  pointer
       to associated with the edge.

       AG_DirectedGraphEdgeNew() identical to AG_GraphEdgeNew, but the edge is
       marked  as  being  directed.  Directed graph edges are assumed to point
       "to" v2.	Directed graph edges are displayed with	an arrowhead  pointing
       towards v2 (only	on systems with	floating point support).

       AG_GraphEdgeFind()  returns  the	 vertex	 matching  the	specified user
       pointer,	or NULL	if no match exists.

       The AG_GraphEdgeLabel() sets the	text label to display along the	 given
       edge.

       AG_GraphEdgeColorLabel()	  sets	 the   color   of   the	  text	label.
       AG_GraphEdgeColor() sets	the color of the line representing  the	 edge.
       AG_GraphEdgePopupMenu()	arranges  for  the given popup menu to be dis-
       played when the user right clicks on the	edge.

EVENTS
       The AG_Graph widget generates the following events:

       graph-vertex-selected(AG_GraphVertex *vtx)
	   The specified vertex	is now selected.
       graph-vertex-unselected(AG_GraphVertex *vtx)
	   The specified vertex	is no longer selected.
       graph-edge-selected(AG_GraphEdge	*edge)
	   The specified edge is now selected.
       graph-edge-unselected(AG_GraphEdge *edge)
	   The specified edge is no longer selected.

STRUCTURE DATA
       For the AG_Graph	object:

       int xOffs, yOffs	  Display offset in pixels.
       Uint nVertices	  Vertex count (read-only).
       Uint nEdges	  Edge count (read-only)
       TAILQ vertices	  List of AG_GraphVertex items (read-only)
       TAILQ edges	  List of AG_GraphEdge items (read-only).

       For the AG_GraphVertex structure:

       int x, y	       Pixel coordinates of vertex in the graph.
       Uint w, h       Bounding	box for	graphical representation of  the  ver-
		       tex.
       void *userPtr   Generic user pointer.
       TAILQ edges     List  of	AG_GraphEdge(3)	objects	connected to this ver-
		       tex.

       For the AG_GraphEdge structure:

       AG_GraphVertex *v1, *v2	 Vertices connected by edge
       void *userPtr		 User pointer
       enum ag_graph_edge_type type
				 Either	     AG_GRAPH_EDGE_UNDIRECTED	    or
				 AG_GRAPH_EDGE_DIRECTED	 to  indicate an undi-
				 rected	or directed edge respectively

SEE ALSO
       AG_Intro(3), AG_Menu(3),	AG_Widget(3), AG_Window(3)

HISTORY
       The AG_Graph widget first appeared in Agar 1.3.4.  Support for directed
       graphs appeared in Agar 1.6.0.

Agar 1.7		       December	21, 2022		   AG_GRAPH(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_Graph&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help