forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <kinc/global.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*! \file surface.h
							 | 
						||
| 
								 | 
							
								    \brief Provides touch-support.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/// <summary>
							 | 
						||
| 
								 | 
							
								/// Sets the surface-touch-start-callback which is called when a finger-touch is detected.
							 | 
						||
| 
								 | 
							
								/// </summary>
							 | 
						||
| 
								 | 
							
								/// <param name="value">The callback</param>
							 | 
						||
| 
								 | 
							
								KINC_FUNC void kinc_surface_set_touch_start_callback(void (*value)(int /*index*/, int /*x*/, int /*y*/));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/// <summary>
							 | 
						||
| 
								 | 
							
								/// Sets the surface-move-callback which is called when a finger is moving around.
							 | 
						||
| 
								 | 
							
								/// </summary>
							 | 
						||
| 
								 | 
							
								/// <param name="value">The callback</param>
							 | 
						||
| 
								 | 
							
								KINC_FUNC void kinc_surface_set_move_callback(void (*value)(int /*index*/, int /*x*/, int /*y*/));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/// <summary>
							 | 
						||
| 
								 | 
							
								/// Sets the surface-touch-end-callback which is called when a finger disappears. This is usually not a medical emergency.
							 | 
						||
| 
								 | 
							
								/// </summary>
							 | 
						||
| 
								 | 
							
								/// <param name="value">The callback</param>
							 | 
						||
| 
								 | 
							
								KINC_FUNC void kinc_surface_set_touch_end_callback(void (*value)(int /*index*/, int /*x*/, int /*y*/));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_internal_surface_trigger_touch_start(int index, int x, int y);
							 | 
						||
| 
								 | 
							
								void kinc_internal_surface_trigger_move(int index, int x, int y);
							 | 
						||
| 
								 | 
							
								void kinc_internal_surface_trigger_touch_end(int index, int x, int y);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef KINC_IMPLEMENTATION_INPUT
							 | 
						||
| 
								 | 
							
								#define KINC_IMPLEMENTATION
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef KINC_IMPLEMENTATION
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <memory.h>
							 | 
						||
| 
								 | 
							
								#include <stddef.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static void (*surface_touch_start_callback)(int /*index*/, int /*x*/, int /*y*/) = NULL;
							 | 
						||
| 
								 | 
							
								static void (*surface_move_callback)(int /*index*/, int /*x*/, int /*y*/) = NULL;
							 | 
						||
| 
								 | 
							
								static void (*surface_touch_end_callback)(int /*index*/, int /*x*/, int /*y*/) = NULL;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_surface_set_touch_start_callback(void (*value)(int /*index*/, int /*x*/, int /*y*/)) {
							 | 
						||
| 
								 | 
							
									surface_touch_start_callback = value;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_surface_set_move_callback(void (*value)(int /*index*/, int /*x*/, int /*y*/)) {
							 | 
						||
| 
								 | 
							
									surface_move_callback = value;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_surface_set_touch_end_callback(void (*value)(int /*index*/, int /*x*/, int /*y*/)) {
							 | 
						||
| 
								 | 
							
									surface_touch_end_callback = value;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_internal_surface_trigger_touch_start(int index, int x, int y) {
							 | 
						||
| 
								 | 
							
									if (surface_touch_start_callback != NULL) {
							 | 
						||
| 
								 | 
							
										surface_touch_start_callback(index, x, y);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_internal_surface_trigger_move(int index, int x, int y) {
							 | 
						||
| 
								 | 
							
									if (surface_move_callback != NULL) {
							 | 
						||
| 
								 | 
							
										surface_move_callback(index, x, y);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void kinc_internal_surface_trigger_touch_end(int index, int x, int y) {
							 | 
						||
| 
								 | 
							
									if (surface_touch_end_callback != NULL) {
							 | 
						||
| 
								 | 
							
										surface_touch_end_callback(index, x, y);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 |