diff options
Diffstat (limited to 'src/gui/text_widget.c')
-rw-r--r-- | src/gui/text_widget.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gui/text_widget.c b/src/gui/text_widget.c index fbb3754..6071fd1 100644 --- a/src/gui/text_widget.c +++ b/src/gui/text_widget.c @@ -28,6 +28,7 @@ void text_widget_init( text_widget_t *widget, widget_t *parent, const int x, con // maybe with memory manager in place we can do this with a strdup widget->s = s; + widget->base.vtable = (widget_vtable_t *)&text_widget_vtable; widget->vtable = &text_widget_vtable; } @@ -35,16 +36,16 @@ void text_widget_draw( void *obj, graphics_context_t *context ) { text_widget_t *widget = obj; - widget->base.vtable->draw( obj, context ); + widget_draw( obj, context ); int x = 0; int y = 0; widget->base.vtable->model_to_screen( widget, &x, &y ); - for( char c = widget->s[0]; c != '\0'; c++ ) { - vga_draw_char( context, c, x, y, widget->base.background_color, - VGA_COLOR_WHITE ); + for( const char *p = widget->s; *p != '\0'; p++ ) { + vga_draw_char( context, *p, x, y, widget->base.background_color, + VGA_COLOR_WHITE ); x += 9; if( x >= widget->base.w - 9 ) { y += 16; |