mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-07 15:35:16 +00:00
96 lines
1.9 KiB
C
96 lines
1.9 KiB
C
/**
|
|
* @file mouse.c
|
|
*
|
|
*/
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "mouse.h"
|
|
#if USE_MOUSE != 0
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
#ifndef MONITOR_ZOOM
|
|
#define MONITOR_ZOOM 1
|
|
#endif
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
|
|
/**********************
|
|
* STATIC PROTOTYPES
|
|
**********************/
|
|
|
|
/**********************
|
|
* STATIC VARIABLES
|
|
**********************/
|
|
static bool left_button_down = false;
|
|
static int16_t last_x = 0;
|
|
static int16_t last_y = 0;
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
/**********************
|
|
* GLOBAL FUNCTIONS
|
|
**********************/
|
|
|
|
/**
|
|
* Initialize the mouse
|
|
*/
|
|
void mouse_init(void)
|
|
{
|
|
|
|
}
|
|
|
|
/**
|
|
* Get the current position and state of the mouse
|
|
* @param data store the mouse data here
|
|
* @return false: because the points are not buffered, so no more data to be read
|
|
*/
|
|
bool mouse_read(lv_indev_data_t * data)
|
|
{
|
|
/*Store the collected data*/
|
|
data->point.x = last_x;
|
|
data->point.y = last_y;
|
|
data->state = left_button_down ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* It will be called from the main SDL thread
|
|
*/
|
|
void mouse_handler(SDL_Event * event)
|
|
{
|
|
switch (event->type) {
|
|
case SDL_MOUSEBUTTONUP:
|
|
if (event->button.button == SDL_BUTTON_LEFT)
|
|
left_button_down = false;
|
|
break;
|
|
case SDL_MOUSEBUTTONDOWN:
|
|
if (event->button.button == SDL_BUTTON_LEFT) {
|
|
left_button_down = true;
|
|
last_x = event->motion.x / MONITOR_ZOOM;
|
|
last_y = event->motion.y / MONITOR_ZOOM;
|
|
}
|
|
break;
|
|
case SDL_MOUSEMOTION:
|
|
last_x = event->motion.x / MONITOR_ZOOM;
|
|
last_y = event->motion.y / MONITOR_ZOOM;
|
|
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
/**********************
|
|
* STATIC FUNCTIONS
|
|
**********************/
|
|
|
|
#endif
|