From f05524445914e31891ec227520d9bb3fe5857e2c Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Wed, 21 Jun 2017 17:39:00 +0200 Subject: improved VGA colors added basics of a desktop widget class --- src/gui/desktop.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/gui/desktop.c (limited to 'src/gui/desktop.c') diff --git a/src/gui/desktop.c b/src/gui/desktop.c new file mode 100644 index 0000000..39235d2 --- /dev/null +++ b/src/gui/desktop.c @@ -0,0 +1,54 @@ +#include "desktop.h" + +#include "string.h" +#include "stddef.h" + +static desktop_vtable_t desktop_vtable = { + { + desktop_draw, + composite_widget_get_focus, + widget_model_to_screen, + widget_contains_coordinate, + desktop_on_mouse_down, + desktop_on_mouse_up, + desktop_on_mouse_move, + composite_widget_on_key_down, + composite_widget_on_key_up + } +}; + +void desktop_init( desktop_t *desktop, const int w, const int h ) +{ + memset( desktop, 0, sizeof( desktop_t ) ); + + composite_widget_init( &desktop->base, NULL, 0, 0, w, h ); + + desktop->vtable = &desktop_vtable; +} + +void desktop_draw( void *obj, graphics_context_t *context ) +{ + desktop_t *desktop = obj; + + ((widget_vtable_t *)(desktop->base.vtable))->draw( obj, context ); + + // TODO: use a mouse bitmap and copy it +/* + for( int i = 0; i < 4; i++ ) { + vga_set_pixel( context, +void vga_set_pixel( vga_t *vga, const int x, const int y, const vga_color_t color ); + } +*/ +} + +void desktop_on_mouse_down( void *obj, const int x, const int y ) +{ +} + +void desktop_on_mouse_up( void *obj, const int x, const int y ) +{ +} + +void desktop_on_mouse_move( void *obj, const int old_x, const int old_y, const int x, const int y ) +{ +} -- cgit v1.2.3-54-g00ecf