summaryrefslogtreecommitdiff
path: root/apps/gui/textarea.c
diff options
context:
space:
mode:
authorStéphane Doyon <s.doyon@videotron.ca>2007-11-07 01:37:00 +0000
committerStéphane Doyon <s.doyon@videotron.ca>2007-11-07 01:37:00 +0000
commit6f4c6ed99007f89099b74bfbb95f5ca58b0ead3c (patch)
treef524bf0c6e865b3be8fee11da4210fd7666a8798 /apps/gui/textarea.c
parentfbdc0e6b57f326fccefaf044bd70f1072653db00 (diff)
downloadrockbox-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.c20
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;
+ }
+ }
+}