Proper word-wrapping in Verbose_error_message() box.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1133 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2009-11-01 14:28:48 +00:00
parent 373e39abe8
commit fffb90dfaf

View File

@ -914,28 +914,42 @@ void Verbose_error_message(const char * message)
{
short clicked_button;
int line;
int i;
char buffer[36]; // 35 characters + \0
int last_space;
int nb_char;
char buffer[36];
Open_window(300,160,"Error!");
// Word-wrap the message
for (line=0; line < 10; line++)
for (line=0; line < 12 && *message!='\0'; line++)
{
for (i=0;i<35 && *message!='\0';i++)
last_space = -1;
for (nb_char=0; nb_char<35 && message[nb_char]!='\0'; nb_char++)
{
if (*message == '\n')
buffer[nb_char]=message[nb_char];
if (message[nb_char] == ' ')
{
message++;
last_space = nb_char;
}
else if (message[nb_char] == '\n')
{
last_space = nb_char;
break;
}
buffer[i]=*message;
message++;
}
buffer[i]='\0';
// Close line buffer
if (last_space == -1)
last_space = 34;
buffer[last_space]='\0';
// Print
Print_in_window(10,20+line*8,buffer,MC_Black,MC_Light);
if (*message=='\0')
break;
// Next line
message=message+last_space+1;
// Strip leading spaces
while (*message == ' ')
message++;
}
Window_set_normal_button(300/2-20,160-23,40,14,"OK",1,1,SDLK_RETURN); // 1