#line 2340 "/home/travis/build/felix-lang/felix/src/packages/sdl.fdoc"
  
  
  
  open class SDL_mouse_h
  {
    requires package "sdl2";
  
    // mouse button state things
    const SDL_BUTTON_RMASK : uint8;
    const SDL_BUTTON_MMASK : uint8;
    const SDL_BUTTON_LMASK : uint8;
    const SDL_BUTTON_X1MASK : uint8;
    const SDL_BUTTON_X2MASK : uint8;
  
    const SDL_BUTTON_RIGHT : uint8;
    const SDL_BUTTON_MIDDLE : uint8;
    const SDL_BUTTON_LEFT   : uint8;
    const SDL_BUTTON_X1   : uint8;
    const SDL_BUTTON_X2   : uint8;
  
    // platform cursor
    cenum SDL_SystemCursor =
        SDL_SYSTEM_CURSOR_ARROW,     /**< Arrow */
        SDL_SYSTEM_CURSOR_IBEAM,     /**< I-beam */
        SDL_SYSTEM_CURSOR_WAIT,      /**< Wait */
        SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */
        SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */
        SDL_SYSTEM_CURSOR_SIZENWSE,  /**< Double arrow pointing northwest and southeast */
        SDL_SYSTEM_CURSOR_SIZENESW,  /**< Double arrow pointing northeast and southwest */
        SDL_SYSTEM_CURSOR_SIZEWE,    /**< Double arrow pointing west and east */
        SDL_SYSTEM_CURSOR_SIZENS,    /**< Double arrow pointing north and south */
        SDL_SYSTEM_CURSOR_SIZEALL,   /**< Four pointed arrow pointing north, south, east, and west */
        SDL_SYSTEM_CURSOR_NO,        /**< Slashed circle or crossbones */
        SDL_SYSTEM_CURSOR_HAND,      /**< Hand */
        SDL_NUM_SYSTEM_CURSORS
    ;
  
    type SDL_Cursor = "SDL_Cursor*";
  
    //PROCEDURES
    proc SDL_FreeCursor: SDL_Cursor;
    proc SDL_SetCursor: SDL_Cursor;
    proc SDL_WarpMouseInWindow: &SDL_Window * uint16 * uint16;
  
    //FUNCTIONS
    fun SDL_CreateCursor: &uint8 * &uint8 * int * int * int * int -> SDL_Cursor;
    fun SDL_CreateColorCursor : &SDL_Surface * int * int -> SDL_Cursor;
    fun SDL_CreateSystemCursor : SDL_SystemCursor -> SDL_Cursor;
    fun SDL_GetCursor: 1 -> SDL_Cursor;
    fun SDL_GetDefaultCursor: 1 -> SDL_Cursor;
    fun SDL_ShowCursor: int -> int;
  
    fun SDL_GetMouseState: &int * &int -> uint8;
    fun SDL_GetRelativeMouseState: &int * &int -> uint8;
    fun SDL_GetMouseFocus : 1 -> &SDL_Window;
    fun SDL_SetRelativeMouseMode : bool -> int;
    fun SDL_GetRelativeMouseMode : 1 -> bool;
  }