diff options
Diffstat (limited to 'src/gui/text_widget.c')
-rw-r--r-- | src/gui/text_widget.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/gui/text_widget.c b/src/gui/text_widget.c index 2567df3..170066a 100644 --- a/src/gui/text_widget.c +++ b/src/gui/text_widget.c @@ -13,7 +13,7 @@ static text_widget_vtable_t text_widget_vtable = { widget_on_mouse_up, widget_on_mouse_move, text_widget_on_key_down, - text_widget_on_key_up + widget_on_key_up }, text_widget_set_text }; @@ -28,7 +28,7 @@ void text_widget_init( text_widget_t *widget, widget_t *parent, const int x, con widget->base.focusable = true; - widget->base.vtable = (widget_vtable_t *)&text_widget_vtable; + ((widget_t *)widget)->vtable = (widget_vtable_t *)&text_widget_vtable; } void text_widget_draw( void *obj, graphics_context_t *context ) @@ -42,13 +42,14 @@ void text_widget_draw( void *obj, graphics_context_t *context ) int w = 0; int h = 0; - widget->base.vtable->model_to_screen( widget, &x, &y ); + ((widget_t *)widget)->vtable->model_to_screen( widget, &x, &y ); for( const char *p = widget->s; *p != '\0'; p++ ) { - vga_draw_char( context, *p, x + w, y + h, widget->base.background_color, + vga_draw_char( context, *p, x + w, y + h, + ((widget_t *)widget)->background_color, VGA_COLOR_WHITE ); w += 9; - if( w >= widget->base.w - 10 ) { + if( w >= ((widget_t *)widget)->w - 10 ) { h += 16; w = 0; } @@ -72,7 +73,3 @@ void text_widget_on_key_down( void *obj, char c ) widget->s[strlen( widget->s )+1] = '\0'; } } - -void text_widget_on_key_up( void *obj, char c ) -{ -} |