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

FreeBSD Manual Pages

  
 
  

home | help
AG_KEYBOARD(3)		     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 ac-
     cessed 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)

     char * AG_LookupKeyMod(AG_KeyMod mod)

     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 pointer to a statically-allo-
     cated, user-readable string describing the given AG_KeySym(3) (or	NULL  if
     the argument is out of range).

     The  AG_LookupKeyMod() function returns a dynamically-allocated, user-read-
     able string describing the given AG_KeyMod(3).

     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 num-
     ber 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_Key-
     Mod(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)

     void   AG_KeyboardUpdate(AG_Keyboard   *kbd,   AG_KeyboardAction	 action,
     AG_KeySym sym)

     int  AG_ProcessKey(AG_Keyboard  *kbd, AG_Window *win, AG_KeyboardAction ac-
     tion, 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_Key-
     boardUpdate() to update Agar's internal keyboard  status  as  soon  as  the
     event is received.  Typically, AG_KeyboardUpdate() is called by the GetNex-
     tEvent() 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)).   The
     agDrivers must be locked.

     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 character 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.0 and the widget in-
     terface was first documented in Agar 1.5.0.

Agar 1.7			December 21, 2022		  AG_KEYBOARD(3)

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

home | help