summaryrefslogtreecommitdiff
path: root/src/gui/text_widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/text_widget.c')
-rw-r--r--src/gui/text_widget.c9
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;