40 lines
		
	
	
		
			873 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			873 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include "gui_i.h"
 | |
| #include "view_port.h"
 | |
| 
 | |
| struct ViewPort {
 | |
|     Gui* gui;
 | |
|     bool is_enabled;
 | |
| 
 | |
|     uint8_t width;
 | |
|     uint8_t height;
 | |
| 
 | |
|     ViewPortDrawCallback draw_callback;
 | |
|     void* draw_callback_context;
 | |
| 
 | |
|     ViewPortInputCallback input_callback;
 | |
|     void* input_callback_context;
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * Set GUI reference.
 | |
|  * To be used by GUI, called upon view_port tree insert
 | |
|  * @param gui - gui instance pointer.
 | |
|  */
 | |
| void view_port_gui_set(ViewPort* view_port, Gui* gui);
 | |
| 
 | |
| /*
 | |
|  * Process draw call. Calls draw callback.
 | |
|  * To be used by GUI, called on tree redraw.
 | |
|  * @param canvas - canvas to draw at.
 | |
|  */
 | |
| void view_port_draw(ViewPort* view_port, Canvas* canvas);
 | |
| 
 | |
| /*
 | |
|  * Process input. Calls input callbac
 | |
|  * To be used by GUI, called on input dispatch.
 | |
|  * @param event - pointer to input event.
 | |
|  */
 | |
| void view_port_input(ViewPort* view_port, InputEvent* event);
 | 
