The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

gii_pmove_event (9)
  • >> gii_pmove_event (9) ( Linux man: Ядро )
  •  

    NAME

    gii_pmove_event - LibGII pointer movement events
     
    

    SYNOPSIS

    #include <ggi/events.h>
    
    
     

    DESCRIPTION

    The gii_pmove_event structure is used to report change of pointer position. Depending on the event type, the values are either absolute or relative.  

    GENERATED EVENTS

    This structure is used for evPtrRelative and evPtrAbsolute events.  

    STRUCTURE MEMBERS

    typedef struct gii_pmove_event {
    
            COMMON_DATA;
    
            sint32  x, y;           /* absolute/relative position   */
            sint32  z, wheel;
    
    } gii_pmove_event;
    
    

    The gii_pmove_event structure describes pointer (mice, etc.) motion in terms of the x, y, z coordinates and the wheel values of the device. The motion described may be relative (offset from the current location) or absolute (a specific location on the 'screen'), depending on whether the event is of type evPtrRelative or evPtrAbsolute, respectively.

    LibGII does not attempt to interpolate or keep track of the 'current' pointer position. (This is the application's responsability.) LibGII may also report both relative and absolute pointer motion for the same input, which may happen when the mouse is being emulated using a keyboard on an input/target that is normally reports absolute motion.  

    EXAMPLES

     

    INPUT HANDLING FOR APPLICATIONS EXPECTING ABSOLUTE POINTER POSITION

    {
      static int mousex,mousey;
    
      ggiEventPoll(vis, emKey|emPointer, NULL);
      events = ggiEventsQueued(vis, emKey|emPointer);
    
      while (events--) {
        ggiEventRead(vis, &event, emKey|emPointer);
    
        switch(event.any.type) {
          case evPtrButtonPress:
            switch(event.pbutton.button) {
              case GII_PBUTTON_FIRST:
                do_something_as_appropriate(mousex,mousey);
                break;
              case GII_PBUTTON_SECOND:
                ...
            }
            break;
          case evPtrButtonRelease:
            ... if needed ...
            break;
          case evPtrAbsolute:
            mousex = event.pmove.x;
            mousey = event.pmove.y;
            break;
          case evPtrRelative:
            mousex += event.pmove.x;
            mousey += event.pmove.y;
            break;
        }
        /* Constrain mouse in any case */
        if (mousex < 0) mousex = 0;
        if (mousey < 0) mousey = 0;
        if (mousex > xmax) mousex = xmax;
        if (mousey > ymax) mousey = ymax;
    
      } /* while */
    }
    
    
     

    SEE ALSO

    gii_event(9)


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    GENERATED EVENTS
    STRUCTURE MEMBERS
    EXAMPLES
    INPUT HANDLING FOR APPLICATIONS EXPECTING ABSOLUTE POINTER POSITION
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру