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

FreeBSD Manual Pages

  
 
  

home | help
AG_KEYBOARD(3)	       FreeBSD Library Functions Manual		AG_KEYBOARD(3)

NAME
     AG_Keyboard -- agar direct	keyboard interface

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

DESCRIPTION
     The AG_Keyboard interface provides	a direct interface to keyboard status.
     This manual page also documents a few utility routines for	dealing	with
     Agar keyboard symbols.  The AG_Keyboard object itself is registered and
     accessed through the AG_Driver(3) interface.

INHERITANCE HIERARCHY
     AG_Object(3) -> AG_InputDevice(3) -> AG_Keyboard.

WIDGET INTERFACE
     const char	* AG_LookupKeyName(AG_KeySym sym)

     AG_KeySym AG_LookupKeySym(const char *name)

     int * AG_GetKeyState(AG_Widget *widget)

     int AG_GetKeyCount(AG_Widget *widget)

     void AG_SetKeyState(AG_Widget *widget, int	*keyState)

     Uint AG_GetModState(AG_Widget *widget)

     void AG_SetModState(AG_Widget *widget, Uint modState)

     int AG_CompareKeyMods(Uint	modState, const	char *flags)

     The AG_LookupKeyName() function returns a short string describing the
     given AG_KeySym(3)	value (or NULL if the argument is out of range).
     AG_LookupKeySym() returns a keysym	value for the specified	name (or
     AG_KEY_NONE if no match was found).

     The AG_GetKeyState() function returns a pointer to	an array of integers
     which represent the current keyboard status.  The array has up to
     AG_KEY_LAST entries (see AG_KeySym(3)).  AG_GetKeyCount() returns the
     number of entries in the keyboard status array.

     The AG_SetKeyState() routine overwrites the keyboard status array with
     the contents of keyState (which should have AG_KEY_LAST entries).

     AG_GetModState() returns the current keyboard modifier status (see
     AG_KeyMod(3)).  AG_SetModState() overwrites the current modifier status
     with the value of modState.

     The AG_CompareKeyMods() function compares a modifier status against a
     string of flags, returning	1 if any of the	modifiers described by the
     string are	active,	or 0 otherwise.	 No distinction	is made	between	left
     and right-sided modifiers.	 The string may	contain	"C" for	CTRL, "A" for
     ALT, "S" for SHIFT, and "M" for META.

INTERNAL DRIVER	INTERFACE
     AG_Keyboard * AG_KeyboardNew(AG_Driver *drv, const	char *descr)

     int AG_KeyboardUpdate(AG_Keyboard *kbd, AG_KeyboardAction action,
     AG_KeySym sym, Uint32 unicode)

     int AG_ProcessKey(AG_Keyboard *kbd, AG_Window *win, AG_KeyboardAction
     action, AG_KeySym sym, Uint32 unicode)

     The AG_KeyboardNew() function registers a new keyboard device under the
     specified AG_Driver(3).

     When a keyboard event is received by the driver, it should	call
     AG_KeyboardUpdate() to update Agar's internal keyboard status as soon as
     the event is received.  Typically,	AG_KeyboardUpdate() is called by the
     GetNextEvent() routine of the driver (see AG_GetNextEvent(3)).

     The AG_ProcessKey() function is called to perform final processing	of key
     press and key release events (sending `key-up' and	`key-down' events to
     the appropriate Agar widgets).  Typically,	AG_ProcessKey()	is called from
     the ProcessEvent()	routine	of the driver (see AG_ProcessEvent(3)).

     AG_KeyboardUpdate() and AG_ProcessKey() accept the	same arguments.
     action should be AG_KEY_PRESSED or	AG_KEY_RELEASED.  The sym argument is
     the Agar virtual key (see AG_KeySym(3)), and unicode is the Unicode char-
     acter value.  Either (but not both) arguments may be undefined.  sym may
     be	set to AG_KEY_NONE if there is no corresponding	Agar virtual key, and
     unicode may be set	to 0 if	there is no corresponding Unicode character
     (as should	be the case for	function keys).

SEE ALSO
     AG_Intro(3), AG_KeyMod(3),	AG_KeySym(3), AG_Widget(3), AG_Window(3)

HISTORY
     The AG_Keyboard interface first appeared in Agar 1.4, and the widget in-
     terface was first documented in Agar 1.5.0.

FreeBSD	13.0			January	1, 2012			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | INHERITANCE HIERARCHY | WIDGET INTERFACE | INTERNAL DRIVER INTERFACE | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=AG_Keyboard&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help