aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llconsole.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llconsole.cpp')
-rw-r--r--linden/indra/newview/llconsole.cpp36
1 files changed, 23 insertions, 13 deletions
diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp
index b0f1988..58cda1c 100644
--- a/linden/indra/newview/llconsole.cpp
+++ b/linden/indra/newview/llconsole.cpp
@@ -55,8 +55,13 @@ extern void AddNewDebugConsoleToLCD(const LLWString &newLine);
55LLConsole* gConsole = NULL; // Created and destroyed in LLViewerWindow. 55LLConsole* gConsole = NULL; // Created and destroyed in LLViewerWindow.
56 56
57const F32 FADE_DURATION = 2.f; 57const F32 FADE_DURATION = 2.f;
58const S32 MIN_CONSOLE_WIDTH = 200; 58const S32 MIN_CONSOLE_WIDTH = 50;
59 59
60// Why don't these match?
61const S32 CONSOLE_GUTTER_LEFT = 14;
62const S32 CONSOLE_GUTTER_RIGHT = 15;
63
64
60LLConsole::LLConsole(const std::string& name, const U32 max_lines, const LLRect &rect, 65LLConsole::LLConsole(const std::string& name, const U32 max_lines, const LLRect &rect,
61 S32 font_size_index, F32 persist_time ) 66 S32 font_size_index, F32 persist_time )
62 : 67 :
@@ -78,7 +83,7 @@ void LLConsole::setLinePersistTime(F32 seconds)
78 83
79void LLConsole::reshape(S32 width, S32 height, BOOL called_from_parent) 84void LLConsole::reshape(S32 width, S32 height, BOOL called_from_parent)
80{ 85{
81 S32 new_width = llmax(50, llmin(getRect().getWidth(), gViewerWindow->getWindowWidth())); 86 S32 new_width = llmax(MIN_CONSOLE_WIDTH, llmin(getRect().getWidth(), gViewerWindow->getWindowWidth()));
82 S32 new_height = llmax(llfloor(mFont->getLineHeight()) + 15, llmin(getRect().getHeight(), gViewerWindow->getWindowHeight())); 87 S32 new_height = llmax(llfloor(mFont->getLineHeight()) + 15, llmin(getRect().getHeight(), gViewerWindow->getWindowHeight()));
83 88
84 if ( mConsoleWidth == new_width 89 if ( mConsoleWidth == new_width
@@ -185,15 +190,19 @@ void LLConsole::draw()
185 for(paragraph_it = mParagraphs.rbegin(); paragraph_it != mParagraphs.rend(); paragraph_it++) 190 for(paragraph_it = mParagraphs.rbegin(); paragraph_it != mParagraphs.rend(); paragraph_it++)
186 { 191 {
187 S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + message_spacing); 192 S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + message_spacing);
188 S32 target_width = llfloor( (*paragraph_it).mMaxWidth +15); 193 S32 target_width = llfloor( (*paragraph_it).mMaxWidth + CONSOLE_GUTTER_RIGHT);
189 194
190 bkg_height+= target_height; 195 bkg_height+= target_height;
191 if (target_width > bkg_width) bkg_width=target_width; 196 if (target_width > bkg_width)
197 {
198 bkg_width=target_width;
199 }
192 200
201 // Why is this not using llfloor as above?
193 y_pos += ((*paragraph_it).mLines.size()) * line_height; 202 y_pos += ((*paragraph_it).mLines.size()) * line_height;
194 y_pos += message_spacing; //Extra spacing between messages. 203 y_pos += message_spacing; //Extra spacing between messages.
195 } 204 }
196 imagep->drawSolid(-14, (S32)(y_pos + line_height - bkg_height - message_spacing), bkg_width, bkg_height, color); 205 imagep->drawSolid(-CONSOLE_GUTTER_LEFT, (S32)(y_pos + line_height - bkg_height - message_spacing), bkg_width, bkg_height, color);
197 y_pos = 0.f; 206 y_pos = 0.f;
198//End screen-eating black void 207//End screen-eating black void
199 208
@@ -201,7 +210,7 @@ void LLConsole::draw()
201 { 210 {
202//080813 Spatters: Dainty per-message block boxes 211//080813 Spatters: Dainty per-message block boxes
203// S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + 8); 212// S32 target_height = llfloor( (*paragraph_it).mLines.size() * line_height + 8);
204 S32 target_width = llfloor( (*paragraph_it).mMaxWidth +15); 213 S32 target_width = llfloor( (*paragraph_it).mMaxWidth + CONSOLE_GUTTER_RIGHT);
205 214
206 y_pos += ((*paragraph_it).mLines.size()) * line_height; 215 y_pos += ((*paragraph_it).mLines.size()) * line_height;
207//080813 Spatters: Dainty per-message block boxes 216//080813 Spatters: Dainty per-message block boxes
@@ -325,17 +334,17 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, LLFontGL* font, bool fo
325 // Wrap lines that are longer than the view is wide. 334 // Wrap lines that are longer than the view is wide.
326 while( paragraph_offset < (S32)mParagraphText.length() ) 335 while( paragraph_offset < (S32)mParagraphText.length() )
327 { 336 {
328 S32 skip_chars; // skip '\n' 337 S32 skip_newline_chars; // skip '\n'
329 // Figure out if a word-wrapped line fits here. 338 // Figure out if a word-wrapped line fits here.
330 LLWString::size_type line_end = mParagraphText.find_first_of(llwchar('\n'), paragraph_offset); 339 LLWString::size_type line_end = mParagraphText.find_first_of(llwchar('\n'), paragraph_offset);
331 if (line_end != LLWString::npos) 340 if (line_end != LLWString::npos)
332 { 341 {
333 skip_chars = 1; // skip '\n' 342 skip_newline_chars = 1; // skip '\n'
334 } 343 }
335 else 344 else
336 { 345 {
337 line_end = mParagraphText.size(); 346 line_end = mParagraphText.size();
338 skip_chars = 0; 347 skip_newline_chars = 0;
339 } 348 }
340 349
341 U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, TRUE); 350 U32 drawable = font->maxDrawableChars(mParagraphText.c_str()+paragraph_offset, screen_width, line_end - paragraph_offset, TRUE);
@@ -385,9 +394,10 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, LLFontGL* font, bool fo
385 } 394 }
386 else 395 else
387 { 396 {
388 break; // Nothing more to print 397 if( !skip_newline_chars )
398 break; // Nothing more to print
389 } 399 }
390 paragraph_offset += (drawable + skip_chars); 400 paragraph_offset += (drawable + skip_newline_chars);
391 } 401 }
392} 402}
393 403