summaryrefslogtreecommitdiff
path: root/src/kernel
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-01 21:17:05 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-01 21:17:05 +0200
commite6503671eecc2026130fe3544d79d644c1657b4c (patch)
tree9e3ee3350c60b8a97a4026724e12839cbaa76b50 /src/kernel
parentf8181f1355cf8218daf2ee2153606b7eccf1cb18 (diff)
downloadabaos-e6503671eecc2026130fe3544d79d644c1657b4c.tar.gz
abaos-e6503671eecc2026130fe3544d79d644c1657b4c.tar.bz2
replaced some strange access to .base.base with casts of the class to the class needed to
access the proper vtable
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/kernel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c
index 12fc33f..81266b1 100644
--- a/src/kernel/kernel.c
+++ b/src/kernel/kernel.c
@@ -153,7 +153,7 @@ void kernel_main( void )
interrupts_disable( );
// as vga_t is equals to the graphical context for now
- ((widget_vtable_t *)global_context.desktop.base.base.vtable)->draw( &global_context.desktop, &global_context.vga );
+ ((widget_t *)&global_context.desktop)->vtable->draw( &global_context.desktop, &global_context.vga );
vga_refresh( &global_context.vga );
@@ -236,6 +236,7 @@ static void handle_keyboard_event( keyboard_event_t *event, void *context )
desktop_init( &global_context->desktop, 320, 200, VGA_COLOR_BLUE );
window_init( &global_context->window1, (widget_t *)&global_context->desktop, 60, 90, 60, 70, VGA_COLOR_LIGHT_GREY );
+ // TODO: this looks clunky!
((composite_widget_vtable_t *)global_context->desktop.base.base.vtable)->add_child( &global_context->desktop, (widget_t *)&global_context->window1 );
window_init( &global_context->window2, (widget_t *)&global_context->desktop, 130, 80, 60, 70, VGA_COLOR_GREEN );