Mercurial > sdl-ios-xcode
diff test/testime.c @ 3133:84119fe89d26 gsoc2009_IME
Draw cursor, underline marked text
author | Jiang Jiang <gzjjgod@gmail.com> |
---|---|
date | Wed, 01 Jul 2009 16:12:00 +0000 |
parents | 88861448961f |
children | f896821736fb |
line wrap: on
line diff
--- 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;