#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 }, composite_widget_add_child } }; void desktop_init( desktop_t *desktop, const int w, const int h, const vga_color_t background_color ) { memset( desktop, 0, sizeof( desktop_t ) ); composite_widget_init( &desktop->base, NULL, 0, 0, w, h, background_color ); desktop->vtable = &desktop_vtable; } void desktop_draw( void *obj, graphics_context_t *context ) { desktop_t *desktop = obj; vga_clear_screen( context, desktop->base.base.background_color ); ((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 ) { }