diff options
| author | Stéphane Doyon <s.doyon@videotron.ca> | 2007-11-07 01:37:00 +0000 |
|---|---|---|
| committer | Stéphane Doyon <s.doyon@videotron.ca> | 2007-11-07 01:37:00 +0000 |
| commit | 6f4c6ed99007f89099b74bfbb95f5ca58b0ead3c (patch) | |
| tree | f524bf0c6e865b3be8fee11da4210fd7666a8798 /apps/gui/textarea.c | |
| parent | fbdc0e6b57f326fccefaf044bd70f1072653db00 (diff) | |
| download | rockbox-6f4c6ed99007f89099b74bfbb95f5ca58b0ead3c.zip rockbox-6f4c6ed99007f89099b74bfbb95f5ca58b0ead3c.tar.gz rockbox-6f4c6ed99007f89099b74bfbb95f5ca58b0ead3c.tar.bz2 rockbox-6f4c6ed99007f89099b74bfbb95f5ca58b0ead3c.tar.xz | |
Straighten out voicing of yesno dialogs.
Make it so gui_syncyesno_run() does not modify the text_messages passed
as argument, simplify the code and even reduce size a bit.
The key is to support voicing at the level of the text_message itself.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15505 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/textarea.c')
| -rw-r--r-- | apps/gui/textarea.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/apps/gui/textarea.c b/apps/gui/textarea.c index 0dd063c..b30667d 100644 --- a/apps/gui/textarea.c +++ b/apps/gui/textarea.c @@ -19,6 +19,8 @@ #include "textarea.h" #include "font.h" +#include "lang.h" +#include "talk.h" void gui_textarea_clear(struct screen * display) { @@ -51,7 +53,8 @@ int gui_textarea_put_message(struct screen * display, int i; gui_textarea_clear(display); for(i=0;i<message->nb_lines && i+ystart<display->nb_lines;i++) - display->puts_scroll(0, i+ystart, (unsigned char *)message->message_lines[i]); + display->puts_scroll(0, i+ystart, P2STR((unsigned char *)message-> + message_lines[i])); gui_textarea_update(display); return(i); } @@ -74,3 +77,18 @@ void gui_textarea_update_nblines(struct screen * display) #endif display->nb_lines = height / display->char_height; } + +void talk_text_message(struct text_message * message, bool enqueue) +{ + int line; + if(message) + for(line=0; line<message->nb_lines; line++) + { + long id = P2ID((unsigned char *)message->message_lines[line]); + if(id>=0) + { + talk_id(id, enqueue); + enqueue = true; + } + } +} |