# HG changeset patch # User Jiang Jiang # Date 1246464720 0 # Node ID 84119fe89d26cfa0ffab4f6dc14d2e6993f7e2e5 # Parent 88861448961fd9d87ebb898cdcd4eb73c7c45c80 Draw cursor, underline marked text diff -r 88861448961f -r 84119fe89d26 test/testime.c --- a/test/testime.c Wed Jul 01 07:33:58 2009 +0000 +++ b/test/testime.c Wed Jul 01 16:12:00 2009 +0000 @@ -63,8 +63,9 @@ } /* Prepare a rect for text input */ - SDL_Rect textRect = { 100, 80, 300, 50 }, markedRect; + SDL_Rect textRect = { 100, 80, 300, 50 }, markedRect, underlineRect, cursorRect; Uint32 backColor = SDL_MapRGB(screen->format, 0xFF, 0xFF, 0xFF); + Uint32 lineColor = SDL_MapRGB(screen->format, 0x0, 0x0, 0x0); SDL_Color textColor = { 0, 0, 0 }; SDL_FillRect(screen, &textRect, backColor); @@ -106,6 +107,11 @@ render_text(screen, font, text, textRect.x, textRect.y, textColor); TTF_SizeUTF8(font, text, &w, &h); markedRect.x = textRect.x + w; + + cursorRect = markedRect; + cursorRect.w = 2; + cursorRect.h = h; + SDL_FillRect(screen, &cursorRect, lineColor); SDL_Flip(screen); SDL_StartTextInput(&markedRect); @@ -117,6 +123,13 @@ SDL_FillRect(screen, &markedRect, backColor); render_text(screen, font, event.edit.text, markedRect.x, markedRect.y, textColor); + TTF_SizeUTF8(font, event.edit.text, &w, &h); + underlineRect = markedRect; + underlineRect.y += (h - 2); + underlineRect.h = 2; + underlineRect.w = w; + SDL_FillRect(screen, &underlineRect, lineColor); + SDL_Flip(screen); break;