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

FreeBSD Manual Pages

  
 
  

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

NAME
       AG_Socket -- agar socket	widget

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

DESCRIPTION
       The  AG_Socket  widget is a place holder	for one	or more	drag-and-drop-
       pable AG_Icon(3)	widgets	(or subclasses of it).	 AG_Socket  also  pro-
       vides a boolean `state' binding and a numerical `count' binding.

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

INITIALIZATION
       AG_Socket * AG_SocketNew(AG_Widget *parent, Uint	flags)

       AG_Socket   *   AG_SocketFromSurface(AG_Widget	*parent,  Uint	flags,
       AG_Surface *s)

       AG_Socket * AG_SocketFromBMP(AG_Widget *parent, Uint flags, const  char
       *file)

       void   AG_SocketInsertFn(AG_Socket   *socket,  int  (*fn)(AG_Socket  *,
       AG_Icon *))

       void  AG_SocketRemoveFn(AG_Socket  *socket,  void  (*fn)(AG_Socket   *,
       AG_Icon *))

       void  AG_SocketOverlayFn(AG_Socket  *socket,  AG_EventFn	fn, const char
       *fmt, ...)

       void AG_SocketSetPadding(AG_Socket *socket, int left,  int  right,  int
       top, int	bottom)

       void AG_SocketBgRect(AG_Socket *socket, Uint width, Uint	height)

       void AG_SocketBgCircle(AG_Socket	*socket, Uint radius)

       void AG_SocketBgPixmap(AG_Socket	*socket, const AG_Surface *s)

       void AG_SocketBgPixmapNODUP(AG_Socket *socket, AG_Surface *s)

       The  AG_SocketNew() function allocates, initializes, and	attaches a new
       AG_Socket widget.  The  AG_SocketFromSurface()  and  AG_SocketFromBMP()
       variants	 also set a background image for the socket, typically used to
       show the	type of	icons that can be drag-and-dropped  onto  the  socket.
       Acceptable flags	include:

       AG_SOCKET_STICKY_STATE	Mouse click should toggle the boolean state.

       AG_SOCKET_HFILL		Expand horizontally in parent container.

       AG_SOCKET_VFILL		Expand vertically in parent container.

       AG_SOCKET_EXPAND		Shorthand      for	AG_SOCKET_HFILL	     |
				AG_SOCKET_VFILL.

       The AG_SocketInsertFn() function	configures  a  callback	 routine  fn()
       that  will  be invoked whenever the user	tries to drop an icon onto the
       socket.	A pointer to the socket	and the	icon  being  dropped  will  be
       passed	to   that   function.	 Typically,   this  routine  will  use
       AG_SocketInsertIcon() to	assign the icon	to the socket.	 If  fn()  re-
       turns 1,	the drag-and-drop item will be destroyed.

       The AG_SocketRemoveFn() function	registers a callback routine that will
       be invoked before an icon is removed from a socket.

       The  AG_SocketOverlayFn()  registers  a routine that will be invoked in
       rendering context to draw items on top of the socket (and any contained
       icons).

       The AG_SocketSetPadding() function sets the padding around the socket's
       icon area in pixels.

       AG_SocketBgRect() configures the	socket to use a	rectangular  shape  of
       the given dimensions in pixels.

       AG_SocketBgCircle()  arranges for the socket to use a circular shape of
       the given radius	in pixels.

       AG_SocketBgPixmap() uses	(a duplicate of) the given  surface  as	 back-
       ground  image.	The  AG_SocketBgPixmapNODUP() variant uses the surface
       without copy (potentially unsafe).

EVENTS
       The AG_Socket widget generates the following events:

       socket-mouseoverlap(int state)
	   Cursor has moved inside or outside socket area.
       socket-click(int	state)
	   User	has clicked on the socket area.

BINDINGS
       The AG_Socket widget provides the following bindings.

       BOOL *state   A generic boolean state associated	with the socket.
       INT *count    A generic "count" associated with the socket.   Typically
		     used when the socket contains a stack of items.

EXAMPLES
       See tests/sockets.c in the Agar source distribution.

STRUCTURE DATA
       For the AG_Socket object:

       AG_Icon *icon   Icon in socket or NULL (read-only).

SEE ALSO
       AG_Button(3),  AG_Intro(3),  AG_Pixmap(3), AG_Surface(3), AG_Widget(3),
       AG_Window(3)

HISTORY
       The AG_Socket widget first appeared in Agar 1.0.

Agar 1.7		       December	21, 2022		  AG_SOCKET(3)

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

home | help