gpm: Concepts

 
 4.3.1 Concepts
 --------------
 
 The high-level library is completely independent of the low-level one,
 so it uses 'gpm_handler' and 'gpm_data' as connection point with
 'Gpm_Getc()'.
 
    All the functionality is based on the concept of RoI's.  each RoI is
 described by a 'Gpm_Roi' structure, which is made up by the following
 fields:
 
 'short xMin, xMax'
      These numbers identify the upper-left corner of the region.  When
      events are reported to the region, the event coordinate will be
      relative to this position (zero-based).
 
 'short yMin, yMax'
      These numbers identify the lower-right corner of the region.
 
 'unsigned short minMod, maxMod'
      These modifier masks have the same role within the application as
      the same fields have in inter-application multiplexing.
 
 'unsigned short eventMask'
      It is the mask of events which are to be reported to the current
      region.
 
 'unsigned short owned'
      This is a bit, used to know if the region is owned by the library
      or the application, in order to issue 'free(0' when needed.
 
 'Gpm_Handler *handler'
      The function to be called when events are to be reported to the
      current region.
 
 'void *clientdata'
      The clientdata to be passed to the handler
 
 'Gpm_Roi *next, *prev'
      Links to the RoI chain.