From: <hei...@us...> - 2008-08-31 14:48:40
|
Revision: 2139 http://planeshift.svn.sourceforge.net/planeshift/?rev=2139&view=rev Author: heinchen Date: 2008-08-31 14:48:48 +0000 (Sun, 31 Aug 2008) Log Message: ----------- removed compiler warning Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2008-08-31 14:17:24 UTC (rev 2138) +++ trunk/src/common/paws/pawstextbox.cpp 2008-08-31 14:48:48 UTC (rev 2139) @@ -477,7 +477,7 @@ while(pos > 0) { int last = (int)message.FindLast("\n"); - if(last == (size_t)-1) + if(last == -1) { cutMessages.Push(message); break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-08-31 15:20:47
|
Revision: 2141 http://planeshift.svn.sourceforge.net/planeshift/?rev=2141&view=rev Author: heinchen Date: 2008-08-31 15:20:55 +0000 (Sun, 31 Aug 2008) Log Message: ----------- minor cleanup Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2008-08-31 15:06:40 UTC (rev 2140) +++ trunk/src/common/paws/pawstextbox.cpp 2008-08-31 15:20:55 UTC (rev 2141) @@ -473,16 +473,16 @@ csString message = data; csArray<csString> cutMessages; - int pos = (int)message.Length(); + size_t pos = message.Length(); while(pos > 0) { - int last = (int)message.FindLast("\n"); - if(last == -1) + size_t last = message.FindLast("\n"); + if(last == (size_t)-1) { cutMessages.Push(message); break; } - if(last != (int)message.Length()-1) + if(last != message.Length()-1) { cutMessages.Push(message.Slice(last+1, pos)); cutMessages.Push(""); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Ven...@us...> - 2009-03-17 19:43:22
|
Revision: 3230 http://planeshift.svn.sourceforge.net/planeshift/?rev=3230&view=rev Author: Vengeance2001 Date: 2009-03-17 19:43:09 +0000 (Tue, 17 Mar 2009) Log Message: ----------- Fixed untested code committed by kougaro, which broke every MessageTextBox including the Loading window and the Chat window. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-03-17 17:03:51 UTC (rev 3229) +++ trunk/src/common/paws/pawstextbox.cpp 2009-03-17 19:43:09 UTC (rev 3230) @@ -640,7 +640,7 @@ void pawsMessageTextBox::SplitMessage( const char* newText, int colour, int size ) { - if ( !newText && strlen(newText) > 0 ) + if (newText && strlen(newText) > 0) { int maxWidth; int maxHeight; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2009-04-23 07:48:42
|
Revision: 3528 http://planeshift.svn.sourceforge.net/planeshift/?rev=3528&view=rev Author: mgist Date: 2009-04-23 07:48:28 +0000 (Thu, 23 Apr 2009) Log Message: ----------- - Crash fix. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-04-22 22:01:18 UTC (rev 3527) +++ trunk/src/common/paws/pawstextbox.cpp 2009-04-23 07:48:28 UTC (rev 3528) @@ -640,6 +640,9 @@ void pawsMessageTextBox::SplitMessage( const char* newText, int colour, int size ) { + if(!newText) + return; + if(strlen(newText) == 0) { MessageLine* msgLine = new MessageLine; @@ -648,7 +651,7 @@ msgLine->colour = colour; adjusted.Push( msgLine ); } - else if (newText && newText[0] != '\0') + else if (newText[0] != '\0') { int maxWidth; int maxHeight; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2009-05-02 20:40:50
|
Revision: 3606 http://planeshift.svn.sourceforge.net/planeshift/?rev=3606&view=rev Author: KhakiLord Date: 2009-05-02 20:40:48 +0000 (Sat, 02 May 2009) Log Message: ----------- Added shadow to chatwindow text. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-05-01 22:19:41 UTC (rev 3605) +++ trunk/src/common/paws/pawstextbox.cpp 2009-05-02 20:40:48 UTC (rev 3606) @@ -452,13 +452,21 @@ { //ChangeFontSize(adjusted[x]->size); } - + // Draw shadow + graphics2D->Write( GetFont(), + screenFrame.xmin + 1, + screenFrame.ymin + yPos*lineHeight + 1, + 0, + -1, + (const char*)adjusted[x]->text ); + // Draw actual text graphics2D->Write( GetFont(), screenFrame.xmin, screenFrame.ymin + yPos*lineHeight, adjusted[x]->colour, -1, (const char*)adjusted[x]->text ); + //ChangeFontSize(oldSize); yPos++; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-10-24 20:19:43
|
Revision: 4686 http://planeshift.svn.sourceforge.net/planeshift/?rev=4686&view=rev Author: weltall2 Date: 2009-10-24 20:19:35 +0000 (Sat, 24 Oct 2009) Log Message: ----------- fixed scroolbar in multilinetextbox Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-10-24 20:02:09 UTC (rev 4685) +++ trunk/src/common/paws/pawstextbox.cpp 2009-10-24 20:19:35 UTC (rev 4686) @@ -1301,9 +1301,11 @@ scrollBar = new pawsScrollBar(); scrollBar->SetParent( this ); scrollBar->SetRelativeFrame( defaultFrame.Width() - 40, 6, 24, defaultFrame.Height() - 12 ); + scrollBar->SetAttachFlags(ATTACH_TOP | ATTACH_BOTTOM | ATTACH_RIGHT); scrollBar->PostSetup(); scrollBar->SetTickValue( 1.0 ); - AddChild( scrollBar ); + AddChild( scrollBar ); + pawsWidget::Resize(); } scrollBar->Show(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2009-11-28 23:18:01
|
Revision: 4817 http://planeshift.svn.sourceforge.net/planeshift/?rev=4817&view=rev Author: Khakilord Date: 2009-11-28 23:17:53 +0000 (Sat, 28 Nov 2009) Log Message: ----------- Fix for PS#3483. First part for changed format for setting colours and text size in text. Requires a corresponding change in pslaunch. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-11-28 22:17:23 UTC (rev 4816) +++ trunk/src/common/paws/pawstextbox.cpp 2009-11-28 23:17:53 UTC (rev 4817) @@ -544,25 +544,22 @@ int colour = msgColour; int size = 0; - size_t pos = messageText.Find("<f "); - if(pos != (size_t)-1) + // 1 is a control character which should be filtered out of user text input. + // Format is 5 bytes. + // 1st byte is 1 which is the control character + // 2nd is R value + // 3rd is G value + // 4th is B value + // 5th is text size + // A value of 1 means that property should not be set. + size_t pos = messageText.FindFirst(1); + if(pos != (size_t)-1 && pos + 5 < messageText.Length()) { - csString fontData = messageText.Slice(pos, messageText.FindFirst('>')+1); - csRef<iDocumentSystem> xml; - xml.AttachNew(new csTinyDocumentSystem); - csRef<iDocument> doc = xml->CreateDocument(); - doc->Parse(fontData); - - if(msgColour == -1) - { - int r = doc->GetRoot()->GetNode("f")->GetAttributeValueAsInt("r"); - int g = doc->GetRoot()->GetNode("f")->GetAttributeValueAsInt("g"); - int b = doc->GetRoot()->GetNode("f")->GetAttributeValueAsInt("b"); - colour = graphics2D->FindRGB(r, g, b); - } - - size = doc->GetRoot()->GetNode("f")->GetAttributeValueAsInt("s"); - messageText = messageText.Slice(messageText.Find(">", pos)+1); + if(messageText[pos + 1] != 1 || messageText[pos + 2] != 1 || messageText[pos + 3] != 1) + colour = graphics2D->FindRGB(messageText[pos + 1], messageText[pos + 2], messageText[pos + 3]); + if(messageText[pos + 4] != 1) + size = messageText[pos + 4]; + messageText = messageText.DeleteAt(pos, 5); } else if(msgColour == -1) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2009-12-27 22:27:46
|
Revision: 5060 http://planeshift.svn.sourceforge.net/planeshift/?rev=5060&view=rev Author: Khakilord Date: 2009-12-27 22:27:37 +0000 (Sun, 27 Dec 2009) Log Message: ----------- Fixed bug where pawsTextBox would ignore empty lines. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-12-27 17:40:22 UTC (rev 5059) +++ trunk/src/common/paws/pawstextbox.cpp 2009-12-27 22:27:37 UTC (rev 5060) @@ -614,6 +614,11 @@ msg->colour = msgColour; msg->text = messageText; + // Empty line is a special case here + if(messageText.Length() == 0) + { + SplitMessage(messageText, colour, size, msgLine, x); + } while(textStart < messageText.Length()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-12-30 09:23:44
|
Revision: 5110 http://planeshift.svn.sourceforge.net/planeshift/?rev=5110&view=rev Author: weltall2 Date: 2009-12-30 09:23:37 +0000 (Wed, 30 Dec 2009) Log Message: ----------- additional fixes related to PS#3738 - Word wrapping issue with own name when highlighted by maru Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2009-12-30 07:18:43 UTC (rev 5109) +++ trunk/src/common/paws/pawstextbox.cpp 2009-12-30 09:23:37 UTC (rev 5110) @@ -738,130 +738,111 @@ } -void pawsMessageTextBox::SplitMessage( const char* newText, int colour, int size, MessageLine*& msgLine, int& startPosition) +void pawsMessageTextBox::SplitMessage(const char* newText, int colour, + int size, MessageLine*& msgLine, int& startPosition) { - if(!newText) - return; + csString stringBuffer = newText; - if(strlen(newText) == 0) + if (stringBuffer.IsEmpty()) { - if(startPosition > 0) - { - return; - } - msgLine = new MessageLine; - msgLine->size = size; - msgLine->text = newText; - msgLine->colour = colour; - adjusted.Push( msgLine ); + return; } - else if (newText[0] != '\0') + + static const int INITOFFSET = 20; + while (!stringBuffer.IsEmpty()) { - csString stringBuffer; - stringBuffer.Append(newText); + int offSet = INITOFFSET; + int width = -1; + int height = -1; + /// See how many characters can be drawn on a single line. + if (startPosition != -1) + { + GetFont()->GetDimensions(stringBuffer.GetData(), width, height); + offSet += startPosition; + } + int canDrawLength = GetFont()->GetLength(stringBuffer.GetData(), + screenFrame.Width() - offSet); - while ( !stringBuffer.IsEmpty() ) + /// If it can fit the entire string then return. + if (canDrawLength == stringBuffer.Length()) { - static const int INITOFFSET = 20; - int offSet = INITOFFSET; - int width = -1; - int height = -1; - /// See how many characters can be drawn on a single line. - if (startPosition != -1) - { - GetFont()->GetDimensions(stringBuffer.GetData(), width, height); - offSet += startPosition; - } - int canDrawLength = GetFont()->GetLength( stringBuffer.GetData(), screenFrame.Width()-offSet ); - CS_ASSERT_MSG("iFont->GetLength returned 0. Infinite loop detected.", canDrawLength != 0); + if (!msgLine) + { + msgLine = new MessageLine; + msgLine->size = size; + msgLine->text = stringBuffer; + msgLine->colour = colour; + adjusted.Push(msgLine); + } - /// If it can fit the entire string then return. - if ( canDrawLength == stringBuffer.Length() ) + if (startPosition != -1) { - if(!msgLine) - { - msgLine = new MessageLine; - msgLine->size = size; - msgLine->text = stringBuffer; - msgLine->colour = colour; - adjusted.Push( msgLine ); - } - if(startPosition != -1) - { - MessageSegment seg; - seg.size = size; - seg.text = stringBuffer; - seg.colour = colour; - seg.x = startPosition; - msgLine->text.Clear(); - msgLine->segments.Push(seg); - startPosition += width; - } - break; + MessageSegment seg; + seg.size = size; + seg.text = stringBuffer; + seg.colour = colour; + seg.x = startPosition; + msgLine->text.Clear(); + msgLine->segments.Push(seg); + startPosition += width; } - // We have to push in a new line to the lines bit. + break; + } + else // We have to push in a new line to the lines bit. + { + // Find out the nearest white space to break the line. + int breakPoint = stringBuffer.FindLast(' ', canDrawLength - 1); + int spaceAfterBreak = stringBuffer.FindFirst(' ', breakPoint + 1); + csString wordAfterBreak; + int wordLength = spaceAfterBreak - breakPoint; + width = 0; + height = 0; + + if (spaceAfterBreak == -1) + { + stringBuffer.SubString(wordAfterBreak, breakPoint + 1); + } else { - // Find out the nearest white space to break the line. - int index = canDrawLength; - - while ( index > 0 && stringBuffer.GetAt(index) != ' ' ) - { - index--; - } - if (index == 0) - { - int firstSpace = stringBuffer.FindFirst(' '); - int widthNeeded = 0; - int heightDoNotCare = 0; - csString firstWord; - if( firstSpace <= 0 ) - { - firstWord.Append(stringBuffer); - } - else - { - firstWord.Append( stringBuffer, firstSpace); - } + stringBuffer.SubString(wordAfterBreak, breakPoint + 1, + wordLength); + } - GetFont()->GetDimensions (firstWord.GetData(), widthNeeded, heightDoNotCare); - if(widthNeeded <= screenFrame.Width()-INITOFFSET) - { - index = 0; - } - else - { - index = canDrawLength; - } - } - // Index now points to the whitespace line so we can break it here. - csString processedString; - processedString.Append( stringBuffer, index ); - stringBuffer.DeleteAt(0,index); - if(!msgLine) - { - msgLine = new MessageLine; - msgLine->size = size; - msgLine->text = processedString; - msgLine->colour = colour; - adjusted.Push( msgLine ); - } - if(startPosition != -1) - { - MessageSegment seg; - seg.size = size; - seg.text = processedString; - seg.colour = colour; - seg.x = startPosition; - msgLine->segments.Push(seg); - startPosition = 0; - } - // Next time use a new line! - msgLine = NULL; + GetFont()->GetDimensions(wordAfterBreak.GetData(), width, height); + + csString processedString; + if (width <= screenFrame.Width() - INITOFFSET) + { + processedString.Append(stringBuffer, breakPoint + 1); + stringBuffer.DeleteAt(0, breakPoint + 1); } + else + { + processedString.Append(stringBuffer, canDrawLength); + stringBuffer.DeleteAt(0, canDrawLength); + } + if (!msgLine) + { + msgLine = new MessageLine; + msgLine->size = size; + msgLine->text = processedString; + msgLine->colour = colour; + adjusted.Push(msgLine); + } + if (startPosition != -1) + { + MessageSegment seg; + seg.size = size; + seg.text = processedString; + seg.colour = colour; + seg.x = startPosition; + msgLine->segments.Push(seg); + startPosition = 0; + } + // Next time use a new line! + msgLine = NULL; } - - } + } } bool pawsMessageTextBox::OnScroll( int direction, pawsScrollBar* widget ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-01-08 21:42:28
|
Revision: 5172 http://planeshift.svn.sourceforge.net/planeshift/?rev=5172&view=rev Author: weltall2 Date: 2010-01-08 21:42:22 +0000 (Fri, 08 Jan 2010) Log Message: ----------- fixed wrong scrollbar behaviour with chat box: why the setup call of scroolbar doesn't work right? Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2010-01-08 14:06:07 UTC (rev 5171) +++ trunk/src/common/paws/pawstextbox.cpp 2010-01-08 21:42:22 UTC (rev 5172) @@ -371,12 +371,12 @@ // Create the optional scroll bar here as well but hidden. scrollBar = new pawsScrollBar; - scrollBar->Setup( scrollBarNode ); + //scrollBar->Setup( scrollBarNode ); scrollBar->SetParent( this ); csRef<iDocumentAttribute> widthAttribute = scrollBarNode->GetAttribute("width"); - int scrollBarWidth = 24; - if( widthAttribute ){ + int scrollBarWidth = 25; + if(widthAttribute){ scrollBarWidth = widthAttribute->GetValueAsInt(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2010-01-13 20:43:01
|
Revision: 5273 http://planeshift.svn.sourceforge.net/planeshift/?rev=5273&view=rev Author: mgist Date: 2010-01-13 20:42:53 +0000 (Wed, 13 Jan 2010) Log Message: ----------- - Filter out the windows carriage return in pawsMessageTextBox::AddMessage. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2010-01-13 20:39:56 UTC (rev 5272) +++ trunk/src/common/paws/pawstextbox.cpp 2010-01-13 20:42:53 UTC (rev 5273) @@ -560,7 +560,13 @@ while(pos > 0) { - size_t last = message.FindLast("\n"); + size_t last = message.FindLast("\r"); + if(last == message.Length()-1) + { + message.Truncate(last); + } + + last = message.FindLast("\n"); if(last == (size_t)-1) { cutMessages.Push(message); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2010-01-28 12:45:15
|
Revision: 5401 http://planeshift.svn.sourceforge.net/planeshift/?rev=5401&view=rev Author: Khakilord Date: 2010-01-28 12:45:00 +0000 (Thu, 28 Jan 2010) Log Message: ----------- Typo. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2010-01-28 12:37:48 UTC (rev 5400) +++ trunk/src/common/paws/pawstextbox.cpp 2010-01-28 12:45:00 UTC (rev 5401) @@ -337,7 +337,7 @@ if(len == -1) len = strlen(text) - start; text += start; - while(str < strStart + len) + while(str < text + len) { str += csUnicodeTransform::UTF8Skip((const utf8_char*) str, text + len - str); codePoints++; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-03-19 19:17:54
|
Revision: 5712 http://planeshift.svn.sourceforge.net/planeshift/?rev=5712&view=rev Author: weltall2 Date: 2010-03-19 19:17:48 +0000 (Fri, 19 Mar 2010) Log Message: ----------- missing returns made in rlydontknow Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2010-03-19 19:16:59 UTC (rev 5711) +++ trunk/src/common/paws/pawstextbox.cpp 2010-03-19 19:17:48 UTC (rev 5712) @@ -1364,6 +1364,8 @@ scrollBar->Show(); scrollBar->SetMaxValue(lines.GetSize() - canDrawLines ); scrollBar->SetCurrentValue(0); + + return true; } void pawsMultiLineTextBox::Resize() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-08-01 05:52:45
|
Revision: 6103 http://planeshift.svn.sourceforge.net/planeshift/?rev=6103&view=rev Author: weltall2 Date: 2010-08-01 05:52:39 +0000 (Sun, 01 Aug 2010) Log Message: ----------- reworked the code for pg up/down Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2010-08-01 05:45:46 UTC (rev 6102) +++ trunk/src/common/paws/pawstextbox.cpp 2010-08-01 05:52:39 UTC (rev 6103) @@ -953,22 +953,18 @@ { //this function handles if the user uses the page up or down buttons on this text box //and scroll of exactly the size of lines which is shown in the textbox - if(keyCode == CSKEY_PGUP || keyCode == CSKEY_PGDN) + if(keyCode == CSKEY_PGUP) //go up { - //check onresize for the math of this. TODO: assembly in an unique function. - int borderOffSize = 4; - if (border) - borderOffSize = 8; - int scrollAmt = ((screenFrame.Height()-borderOffSize-((screenFrame.Height()-borderOffSize) % lineHeight)) / lineHeight); if (scrollBar) - { - if(keyCode == CSKEY_PGUP) //go up - scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() - scrollAmt); - else //go down - scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() + scrollAmt); + scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() - maxLines); //maxLines is updated on resize return true; - } } + else if(keyCode == CSKEY_PGDN) //go down + { + if(scrollBar) + scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() + maxLines); //maxLines is updated on resize + return true; + } return pawsWidget::OnKeyDown(keyCode, key, modifiers); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-12-20 14:41:03
|
Revision: 6565 http://planeshift.svn.sourceforge.net/planeshift/?rev=6565&view=rev Author: weltall2 Date: 2010-12-20 14:40:57 +0000 (Mon, 20 Dec 2010) Log Message: ----------- changes from show to showbehind Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2010-12-20 13:57:59 UTC (rev 6564) +++ trunk/src/common/paws/pawstextbox.cpp 2010-12-20 14:40:57 UTC (rev 6565) @@ -1594,7 +1594,7 @@ OrganizeText( str.GetData() ); if ( scrollBar ) { - scrollBar->Show(); + scrollBar->ShowBehind(); scrollBar->SetMaxValue(lines.GetSize() - canDrawLines ); scrollBar->SetCurrentValue(0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-07 19:10:10
|
Revision: 6886 http://planeshift.svn.sourceforge.net/planeshift/?rev=6886&view=rev Author: weltall2 Date: 2011-02-07 19:10:03 +0000 (Mon, 07 Feb 2011) Log Message: ----------- fixed possible null pointer deference Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2011-02-07 19:06:27 UTC (rev 6885) +++ trunk/src/common/paws/pawstextbox.cpp 2011-02-07 19:10:03 UTC (rev 6886) @@ -718,31 +718,30 @@ } } messages.Push(msg); + + topLine = (int)adjusted.GetSize() - (int)maxLines; + if ( topLine < 0 ) + topLine = 0; + if (scrollBar) { - if ( adjusted.GetSize() > maxLines ) + if (adjusted.GetSize() > maxLines) scrollBar->ShowBehind(); else scrollBar->Hide(); - } + scrollBar->SetMaxValue(maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines)); - scrollBar->SetMaxValue( maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines) ); - - topLine = (int)adjusted.GetSize() - (int)maxLines; - if ( topLine < 0 ) - topLine = 0; - - - if ( !onBottom ) - { - topLine = oldTopLine; - scrollBar->SetCurrentValue( float(topLine) ); + if (!onBottom) + { + topLine = oldTopLine; + scrollBar->SetCurrentValue(float(topLine)); + } + else + { + scrollBar->SetCurrentValue(float(topLine)); + } } - else - { - scrollBar->SetCurrentValue( float(topLine) ); - } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-10 10:34:17
|
Revision: 6905 http://planeshift.svn.sourceforge.net/planeshift/?rev=6905&view=rev Author: weltall2 Date: 2011-02-10 10:34:11 +0000 (Thu, 10 Feb 2011) Log Message: ----------- fixed some misbehaviours of the scrollbar in the chat window Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2011-02-09 21:09:40 UTC (rev 6904) +++ trunk/src/common/paws/pawstextbox.cpp 2011-02-10 10:34:11 UTC (rev 6905) @@ -640,9 +640,10 @@ bool onBottom = false; int oldTopLine = topLine; - if ( topLine == (int)scrollBar->GetMaxValue() ) + if (scrollBar->GetCurrentValue() == scrollBar->GetMaxValue()) onBottom = true; - if ( (size_t)scrollBar->GetMaxValue() < maxLines ) + //this handles the case in case the scrollbar is not needed yet. + else if (scrollBar->GetMaxValue() < 1) onBottom = true; if ( topLine < 0 ) @@ -718,30 +719,33 @@ } } messages.Push(msg); - - topLine = (int)adjusted.GetSize() - (int)maxLines; - if ( topLine < 0 ) - topLine = 0; - if (scrollBar) { - if (adjusted.GetSize() > maxLines) + if ( adjusted.GetSize() > maxLines ) scrollBar->ShowBehind(); else scrollBar->Hide(); - scrollBar->SetMaxValue(maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines)); + scrollBar->SetMaxValue( maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines) ); + } - if (!onBottom) + topLine = (int)adjusted.GetSize() - (int)maxLines; + if ( topLine < 0 ) + topLine = 0; + +printf("%d\n", onBottom); + if ( !onBottom ) + { + topLine = oldTopLine; + if(scrollBar) { - topLine = oldTopLine; scrollBar->SetCurrentValue(float(topLine)); } - else - { - scrollBar->SetCurrentValue(float(topLine)); - } } + else if(scrollBar) + { + scrollBar->SetCurrentValue( float(topLine) ); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-11 20:07:15
|
Revision: 6906 http://planeshift.svn.sourceforge.net/planeshift/?rev=6906&view=rev Author: weltall2 Date: 2011-02-11 20:07:09 +0000 (Fri, 11 Feb 2011) Log Message: ----------- removed printf Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2011-02-10 10:34:11 UTC (rev 6905) +++ trunk/src/common/paws/pawstextbox.cpp 2011-02-11 20:07:09 UTC (rev 6906) @@ -733,7 +733,7 @@ if ( topLine < 0 ) topLine = 0; -printf("%d\n", onBottom); + if ( !onBottom ) { topLine = oldTopLine; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-06-21 15:09:48
|
Revision: 7437 http://planeshift.svn.sourceforge.net/planeshift/?rev=7437&view=rev Author: weltall2 Date: 2011-06-21 15:09:42 +0000 (Tue, 21 Jun 2011) Log Message: ----------- fixed building (itoa is not stdc and neither stdc++) cleaned up a bit the code and reformatted Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2011-06-21 14:40:50 UTC (rev 7436) +++ trunk/src/common/paws/pawstextbox.cpp 2011-06-21 15:09:42 UTC (rev 7437) @@ -1495,7 +1495,7 @@ while ( dummy ) { - /// See how many characters can be drawn on a single line. + // See how many characters can be drawn on a single line. int canDrawLength = GetFont()->GetLength( dummy, screenFrame.Width()-offSet ); // Check for linebreaks @@ -1850,6 +1850,7 @@ if(pi.align == 0) //align left sx += pi.padding[0]; else + { if(pi.align == 1)//align center { unsigned int w = pi.width; @@ -1858,6 +1859,7 @@ sx = screenFrame.xmin + dsx; } else + { if(pi.align == 2)//align right { unsigned int w = pi.width; @@ -1868,6 +1870,8 @@ sx += (screenFrame.Width() - dsx); } else sx += pi.padding[0]; + } + } unsigned int sy = drawY + pi.padding[1]; @@ -1882,7 +1886,8 @@ PawsManager::GetSingleton().GetTextureManager()->AddPawsImage(drawable); } else - {//a resource + { + //a resource drawable = PawsManager::GetSingleton().GetTextureManager()->GetPawsImage(picsInfo[indices[i]].srcString.GetData()); } @@ -1907,8 +1912,8 @@ { //process a picture node. If the src attribute of the node contains more than one picture location, //this function would fill create more than one PictureInfo structure into picsInfo array. + csString srcs = node->GetAttributeValue("src"); - csString srcs = node->GetAttributeValue("src"); //all the pictures in current node hold the same format unsigned int align = node->GetAttributeValueAsInt("align"); unsigned int width = node->GetAttributeValueAsInt("width"); @@ -1921,7 +1926,8 @@ for(unsigned int i = 0 ; i < paddingStr.Length() ; i++) { if(paddingStr[i] != ' ') - {//none numbers of padding parameters are not checked here + { + //none numbers of padding parameters are not checked here padding[index] *= 10; padding[index] += paddingStr[i]- '0'; } @@ -1931,6 +1937,7 @@ csString temp = srcs; unsigned int pos; unsigned int sz = 0; + //process the src attribute and push corresponding PictureInfo into picsInfo array while((pos = temp.FindFirst(';')) != -1) { @@ -1973,14 +1980,16 @@ csString type(childNode->GetAttributeValue("type")); if(type == "text") - {//a text node, processed by the based method + { + //a text node, processed by the based method csString textpart = childNode->GetContentsValue(); OrganizeText(textpart.GetData()); } else - if(type == "pic") - {//a picture node - unsigned int sz = ProcessPictureInfo(childNode);//process the picture node,return how many pictures in the row + if(type == "pic") //a picture node + { + //process the picture node,return how many pictures in the row + unsigned int sz = ProcessPictureInfo(childNode); if(sz == 0) continue; @@ -1994,15 +2003,14 @@ unsigned int canDrawLength = screenFrame.Width() - offSet; GetFont()->GetMaxSize( maxWidth, maxHeight ); if(needLength <= canDrawLength) - {//all pictures could be drawn in a row - //char buf[4]; + { + //all pictures could be drawn in a row csString infoStr="#pic#"; for(; sz > 0; sz--) { unsigned int index = picIndex - sz + 1; - //itoa(index,buf,10); - //csString id(buf); + if(sz != 1) infoStr = infoStr.Append(index) + ","; else infoStr.Append(index); @@ -2012,15 +2020,16 @@ lines.Push(infoStr); } else - {//all pictures defined in this node could not be drawn in one row + { + //all pictures defined in this node could not be drawn in one row unsigned int howmanycandraw = canDrawLength/widthPerPic; - if(howmanycandraw == 0) continue;//the box could not hold the picture in, then the picture will no show + if(howmanycandraw == 0) //the box could not hold the picture in, then the picture will no show + continue; canDrawLength = howmanycandraw * widthPerPic; unsigned int rows = needLength%canDrawLength ? needLength/canDrawLength + 1 : needLength/canDrawLength; for(; rows>0; rows--) { - char buf[4]; csString infoStr="#pic#"; unsigned int temp = howmanycandraw; @@ -2029,11 +2038,10 @@ unsigned int index = picIndex - sz + 1; if(index > picIndex) break; - itoa(index,buf,10); - csString id(buf); + if(temp != 1 && index != picIndex) - infoStr = infoStr + id + ","; - else infoStr += id; + infoStr = infoStr.Append(index) + ","; + else infoStr.Append(index); sz--; } @@ -2068,7 +2076,6 @@ if(scrollBar) scrollBar->Hide(); OrganizeContent(str.GetData()); - //OrganizeText( str.GetData() ); if(canDrawLines >= lines.GetSize()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-07-26 19:49:00
|
Revision: 7550 http://planeshift.svn.sourceforge.net/planeshift/?rev=7550&view=rev Author: weltall2 Date: 2011-07-26 19:48:54 +0000 (Tue, 26 Jul 2011) Log Message: ----------- missing file still from the patch from AiwendilH Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2011-07-26 19:48:00 UTC (rev 7549) +++ trunk/src/common/paws/pawstextbox.cpp 2011-07-26 19:48:54 UTC (rev 7550) @@ -24,6 +24,7 @@ #include <ivideo/fontserv.h> #include <iutil/evdefs.h> #include <iutil/event.h> +#include <iutil/plugin.h> #include <csutil/csuctransform.h> #include "pawstextbox.h" @@ -1016,15 +1017,15 @@ //--------------------------------------------------------------------------------- -pawsEditTextBox::pawsEditTextBox() +pawsEditTextBox::pawsEditTextBox() : password(false), + start(0), + cursorPosition(0), + blink(true), + maxLen(0), + spellChecked(false), + typoColour(0xFF0000) { - start = 0; - blink = true; - cursorPosition = 0; - password = 0; - maxLen = 0; factory = "pawsEditTextBox"; - clock = csQueryRegistry<iVirtualClock > ( PawsManager::GetSingleton().GetObjectRegistry()); blinkTicks = clock->GetCurrentTicks(); @@ -1033,6 +1034,9 @@ int dummy; GetFont()->GetMaxSize( dummy, lineHeight ); lineHeight -=2; + + //get the spellchecker plugin + spellChecker = csQueryRegistryOrLoad<iSpellChecker>(PawsManager::GetSingleton().GetObjectRegistry(), "crystalspace.planeshift.spellchecker"); } pawsEditTextBox::pawsEditTextBox(const pawsEditTextBox& origin):pawsWidget(origin) { @@ -1093,6 +1097,17 @@ SetText( PawsManager::GetSingleton().Translate(stringAttribute->GetValue()) ); } } + csRef<iDocumentNode> settingNode = node->GetNode("spellChecker"); + if(settingNode) + { + // should the spellchecekr be used for this instance of the widget? + spellChecked = settingNode->GetAttributeValueAsBool("enable", false); + // What colour should we use for typos? + int r = settingNode->GetAttributeValueAsInt( "r", 255 ); + int g = settingNode->GetAttributeValueAsInt( "g", 0 ); + int b = settingNode->GetAttributeValueAsInt( "b", 0 ); + typoColour = graphics2D->FindRGB( r, g, b ); + } // Find the line height int dummy; GetFont()->GetMaxSize( dummy, lineHeight ); @@ -1146,10 +1161,15 @@ ClipToParent(false); if (cursorPosition>text.Length()) + { cursorPosition=text.Length(); + } + if(start>(int)text.Length()) + { start=0; + } if ( text.Length() > 0 ) { @@ -1158,16 +1178,25 @@ maxChars = GetFont()->GetLength( text.GetData() + start, screenFrame.Width()-margin*2); if ( (int)cursorPosition > start + maxChars ) + { start = (int)cursorPosition - maxChars; + } if ( start < 0 ) + { start = 0; + } // Make the text the correct length csString tmp ( text.GetData() + start ); tmp.Truncate( maxChars ); + if (password) //show astrices instead of text - for (unsigned int i=0;i<tmp.Length();i++) - tmp.SetAt(i,'*'); + { + for (unsigned int i=0;i<tmp.Length();i++) + { + tmp.SetAt(i,'*'); + } + } // Get size of text int textWidth; @@ -1179,11 +1208,85 @@ int textCenterX = 4; int textCenterY = (screenFrame.Height()-(margin*2)) / 2 - textHeight / 2; + if (spellChecker && spellChecked && spellChecker->hasDicts()) + { + //check if the current widgets text is already spell-checked by comparing the the end of the last word with the length of the text. + size_t length = 0; + if (words.GetSize() > 0) + { + length = words[words.GetSize()-1].endPos; + } + if (length != text.Length()) + { + checkSpelling(); + } - DrawWidgetText( tmp.GetData(), - screenFrame.xmin + textCenterX + margin, - screenFrame.ymin + textCenterY + margin); + if (cursorPosition>text.Length()) + cursorPosition=text.Length(); + + int textXPos = screenFrame.xmin + textCenterX + margin; + + int basicFontColor = GetFontColour(); + + // now we need to draw every word separately as the color might change + for (size_t i = 0; i < words.GetSize(); i++) + { + int wordStart; + if (i == 0) + { + wordStart = 0 - start; + } + else + { + wordStart=words[i-1].endPos - start; + } + int wordEnd = words[i].endPos - start; + + // is the word or parts of it displayed? + if (!(((wordStart < 0) && (wordEnd < 0)) || ((wordStart >= (int) tmp.Length()) && (wordEnd >= (int) tmp.Length())))) + { + // set correct word borders according to displayed chars + if (wordStart < 0) + { + wordStart = 0; + } + if (wordEnd >= (int) tmp.Length()) + { + wordEnd = tmp.Length(); + } + // set different fontcolours for correct/incorrect words + if (words[i].correct) + { + SetColour(basicFontColor); + } + else + { + SetColour(typoColour); + } + + DrawWidgetText( tmp.Slice(wordStart, wordEnd-wordStart).GetData(), textXPos, screenFrame.ymin + textCenterY + margin); + + // get the x-offest for the next word + int textWidth, textHeight; + GetFont()->GetDimensions( tmp.Slice(wordStart, wordEnd-wordStart).GetData(), textWidth, textHeight ); + textXPos += textWidth; + } + } + //restore default color + SetColour(basicFontColor); + } + else + { + // Get the center + int textCenterX = 4; + int textCenterY = (screenFrame.Height()-(margin*2)) / 2 - textHeight / 2; + + DrawWidgetText( tmp.GetData(), + screenFrame.xmin + textCenterX + margin, + screenFrame.ymin + textCenterY + margin); + } + if ( blink && hasFocus ) { int cursor = (int)cursorPosition - start; @@ -1194,23 +1297,22 @@ GetFont()->GetDimensions( tmp, width, height ); graphics2D->DrawLine( (float)(screenFrame.xmin + margin + textCenterX + width + 1), - (float)(screenFrame.ymin + margin + textCenterY), - (float)(screenFrame.xmin + margin + textCenterX + width + 1), - (float)(screenFrame.ymin + margin + textCenterY+height), - GetFontColour() ); + (float)(screenFrame.ymin + margin + textCenterY), + (float)(screenFrame.xmin + margin + textCenterX + width + 1), + (float)(screenFrame.ymin + margin + textCenterY+height), + GetFontColour() ); } } // End if stored.Length() > 0 else if ( blink && hasFocus ) { graphics2D->DrawLine( (float)screenFrame.xmin + margin + 5, - (float)screenFrame.ymin + margin + 4, - (float)screenFrame.xmin + margin + 5, - (float)screenFrame.ymax - (margin + 4), - GetFontColour() ); + (float)screenFrame.ymin + margin + 4, + (float)screenFrame.xmin + margin + 5, + (float)screenFrame.ymax - (margin + 4), + GetFontColour() ); } } - bool pawsEditTextBox::OnKeyDown( utf32_char code, utf32_char key, int modifiers ) { bool changed = false; @@ -1335,6 +1437,12 @@ if ((key < 128 && !isprint(key)) || CSKEY_IS_SPECIAL(key)) pawsWidget::OnKeyDown( code, key, modifiers ); + // if spellchecking is enabled do it at every key-press + if (spellChecked) + { + checkSpelling(); + } + return true; } @@ -1452,6 +1560,45 @@ text.Truncate(maxlen); } +void pawsEditTextBox::checkSpelling() +{ + if (spellChecker && (!text.IsEmpty())) + { + // clear the word-list + words.Empty(); + // get the postitions of the words by checking for spaces in the widget's text + Word tmpWord; + csString tmpString; + size_t oldSpace = 0; + size_t foundSpace = text.Find(" ", oldSpace); + while (foundSpace != (size_t)-1) + { + text.SubString(tmpString, oldSpace, foundSpace-oldSpace); + // now do the spellchecking + tmpWord.correct = spellChecker->correct(tmpString); + tmpWord.endPos = foundSpace; + // and save everything + words.Push(tmpWord); + oldSpace = foundSpace; + foundSpace = text.Find(" ", oldSpace+1); + } + text.SubString(tmpString, oldSpace, text.Length()-oldSpace); + // now do the spellchecking + tmpWord.correct = spellChecker->correct(tmpString); + tmpWord.endPos = text.Length(); + if (tmpWord.endPos > 0) + { + // save only if the word contains something + words.Push(tmpWord); + } + } + else + { + // no text in widget...still clean the array as the last key could have deleted the last char but the array still contains it + words.Empty(); + } +} + ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// @@ -1940,15 +2087,15 @@ csString sub; currentStr.SubString(sub, 5); int index = 0; - + for(unsigned int i = 0 ; i < sub.Length() ; i++) { - if(sub[i] != ',') + if(sub[i] != ',') { index *= 10; index += sub[i]- '0'; } - else + else { indices.Push(index); index = 0; @@ -1977,7 +2124,7 @@ unsigned int w = pi.width; unsigned int pad = pi.padding[0]+pi.padding[2]; unsigned int dsx = w * sz + pad * (sz - 1) + pi.padding[2] + margin; - if(usingScrollBar) + if(usingScrollBar) dsx += 36; sx += (screenFrame.Width() - dsx); } @@ -2008,11 +2155,11 @@ } drawY += pi.height + pi.padding[3]; } - + for(unsigned i = x+1 ; i < (startLine+canDrawLines) ; i++) { if(i >= lines.GetSize()) break; - if(currentStr == lines[i]) + if(currentStr == lines[i]) ++x; else break; } @@ -2037,7 +2184,7 @@ for(unsigned int i = 0 ; i < paddingStr.Length() ; i++) { - if(paddingStr[i] != ' ') + if(paddingStr[i] != ' ') { //none numbers of padding parameters are not checked here padding[index] *= 10; @@ -2045,7 +2192,7 @@ } else ++index; } - + csString temp = srcs; unsigned int pos; unsigned int sz = 0; @@ -2075,8 +2222,8 @@ { csString str(newtext); csRef<iDocumentNode> root = ParseString(str, "Contents"); - - if(root == 0) + + if(root == 0) return; csRef<iDocumentNodeIterator> childIter = root->GetNodes(); @@ -2090,7 +2237,7 @@ { csRef<iDocumentNode> childNode = childIter->Next(); csString type(childNode->GetAttributeValue("type")); - + if(type == "text") { //a text node, processed by the based method @@ -2102,9 +2249,9 @@ { //process the picture node,return how many pictures in the row unsigned int sz = ProcessPictureInfo(childNode); - if(sz == 0) + if(sz == 0) continue; - + unsigned int picIndex = picsInfo.GetSize() - 1; unsigned int width = picsInfo[picIndex].width; unsigned int height = picsInfo[picIndex].height; @@ -2148,7 +2295,7 @@ for(; temp>0; temp--) { unsigned int index = picIndex - sz + 1; - if(index > picIndex) + if(index > picIndex) break; if(temp != 1 && index != picIndex) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-01-22 19:18:45
|
Revision: 8024 http://planeshift.svn.sourceforge.net/planeshift/?rev=8024&view=rev Author: weltall2 Date: 2012-01-22 19:18:39 +0000 (Sun, 22 Jan 2012) Log Message: ----------- fixed PS#5516 - Scrolling in pawsDocumentView doesn't work properly with images (patch included) patch by Aiwendil Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2012-01-22 17:36:52 UTC (rev 8023) +++ trunk/src/common/paws/pawstextbox.cpp 2012-01-22 19:18:39 UTC (rev 8024) @@ -2073,6 +2073,35 @@ if(usingScrollBar) offSet += 36; + //lets check if the first visibe line is actually a line for a image: + if ((lines.GetSize()>startLine) && (lines[startLine].StartsWith("#pic#"))) + { + // nice...this means that the first line might not actually be the first line defining the image but one of the lines "coverd" by the image + // so lets find out where the picture really starts + if (startLine > 0) // okay...if we really start at the first line it's fine to assume that this is the first line of the image as well ;) + { + int picStart = startLine - 1; + while ((picStart >= 0) && (lines[picStart]==lines[startLine])) + { + picStart--; + } + // how many lines are invisble? + int invisibleLines; + if (picStart == 0) + { + // all lines before are from this image + invisibleLines = startLine; + } + else + { + // oh..and yes...we are one line before the first picture line...so lets add the one again. + invisibleLines = startLine - picStart + 1; + } + // of course we don't really want to know how many lines we have to move the image but how many pixels + drawY-= (invisibleLines * maxHeight); + } + } + for(size_t x = startLine; x < (startLine+canDrawLines); x++) { if(x >= lines.GetSize()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2013-02-18 23:17:33
|
Revision: 8597 http://planeshift.svn.sourceforge.net/planeshift/?rev=8597&view=rev Author: lpancallo Date: 2013-02-18 23:17:24 +0000 (Mon, 18 Feb 2013) Log Message: ----------- Patch to grey out the text in crafting books by Eredin. Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2013-02-16 10:07:09 UTC (rev 8596) +++ trunk/src/common/paws/pawstextbox.cpp 2013-02-18 23:17:24 UTC (rev 8597) @@ -1700,6 +1700,7 @@ void pawsMultiLineTextBox::OrganizeText(const char* newText) { + int greyedOut = 0; csString text(newText); // Check if we end with \n @@ -1731,7 +1732,6 @@ if(usingScrollBar) offSet += 36; - while(dummy) { // See how many characters can be drawn on a single line. @@ -1794,7 +1794,9 @@ csString test; test.Append(dummy, index+1); dummy+=index+1; + lines.Push(test); + } } @@ -1871,7 +1873,6 @@ { if(x >= lines.GetSize()) return; - DrawWidgetText((const char*)lines[x], drawX, drawY); drawY+=maxHeight; @@ -2007,6 +2008,7 @@ void pawsMultiPageTextBox::OrganizeText(const char* newText) { + int greyedOut = 0; csString text(newText); // Check if we end with \n @@ -2079,7 +2081,35 @@ /// If it can fit the entire string then return. if(canDrawLength == (int)strlen(dummy)) { - lines.Push(dummy); + // Check for crafting books to grey out the text of transform players cannot do + if(greyedOut==0) + { + char* p1 = NULL, + *p2 = NULL; + + p1=strstr(dummy, "With higher "); + p2=strstr(dummy, "With Higher "); + if(p1!=NULL || p2!=NULL) + { + greyedOut = 1; + } + } + if(greyedOut) + { + csString temp; + temp.Append("\r"); + temp.Append(dummy); + lines.Push(temp); + if(strchr(dummy, '.')!=NULL) + { + greyedOut = 0; + } + temp.Empty(); + } + else + { + lines.Push(dummy); + } break; } // We have to push in a new line to the lines bit. @@ -2101,6 +2131,25 @@ csString test; test.Append(dummy, index+1); dummy+=index+1; + if(greyedOut==0) + { + int p1, + p2; + p1=test.Find("With higher "); + p2=test.Find("With Higher "); + if(p1==0 || p2==0) + { + greyedOut = 1; + } + } + if(greyedOut) + { + test.Insert(0, "\r"); + if(test.FindFirst('.', 1)==test.Length()-1) + { + greyedOut = 0; + } + } lines.Push(test); } } @@ -2182,11 +2231,11 @@ for(size_t x = startLine; x < (startLine+canDrawLines); x++) { + if(x >= lines.GetSize()) return; DrawWidgetText((const char*)lines[x], drawX, drawY); - drawY+=maxHeight; } @@ -2752,6 +2801,8 @@ } void pawsMultiPageDocumentView::Draw() { + int fontColor = GetFontColour(); + pawsWidget::Draw(); pawsWidget::ClipToParent(false); @@ -2805,8 +2856,19 @@ csString ¤tStr = lines[x]; if(!currentStr.StartsWith("#pic#")) { - DrawWidgetText((const char*)lines[x], drawX, drawY); + csString temp; + temp.Append(lines[x]); + //This is special case logic to grey out lines in the Craft Books that + //tell the player about things they can't yet do. the marking of the lines with "\r"'s is done in pawsMultiLineTextBox::OrganizeText + if(lines[x].FindStr("\r", 0)==0) + { + temp.DeleteAt(0,1); + SetColour(0x888888); + } + DrawWidgetText(temp, drawX, drawY); + SetColour(fontColor); + temp.Empty(); drawY+=maxHeight; } else @@ -2896,6 +2958,8 @@ } } +//reassert default color + SetColour(fontColor); } unsigned int pawsMultiPageDocumentView::ProcessPictureInfo(iDocumentNode* node) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-02-26 20:32:06
|
Revision: 8614 http://planeshift.svn.sourceforge.net/planeshift/?rev=8614&view=rev Author: magodra Date: 2013-02-26 20:31:59 +0000 (Tue, 26 Feb 2013) Log Message: ----------- -Included patch from Neeon that fixed crash in Chat window when using PageUp/PageDown from the NumPad (PS#5908). Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2013-02-25 03:21:00 UTC (rev 8613) +++ trunk/src/common/paws/pawstextbox.cpp 2013-02-26 20:31:59 UTC (rev 8614) @@ -998,19 +998,30 @@ { //this function handles if the user uses the page up or down buttons on this text box //and scroll of exactly the size of lines which is shown in the textbox - if(keyCode == CSKEY_PGUP) //go up + switch (key) { - if(scrollBar) - scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() - maxLines); //maxLines is updated on resize - return true; + case CSKEY_PGUP: //go up + { + if(scrollBar) + { + scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() - maxLines); //maxLines is updated on resize + } + break; + } + case CSKEY_PGDN: //go down + { + if(scrollBar) + { + scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() + maxLines); //maxLines is updated on resize + } + break; + } + default: + { + return pawsWidget::OnKeyDown(keyCode, key, modifiers); + } } - else if(keyCode == CSKEY_PGDN) //go down - { - if(scrollBar) - scrollBar->SetCurrentValue(scrollBar->GetCurrentValue() + maxLines); //maxLines is updated on resize - return true; - } - return pawsWidget::OnKeyDown(keyCode, key, modifiers); + return true; } @@ -3153,4 +3164,5 @@ } startLine = 0; text.Replace(str.GetData()); -} \ No newline at end of file +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-10-01 02:36:53
|
Revision: 8833 http://sourceforge.net/p/planeshift/code/8833 Author: ralphcampbell Date: 2013-10-01 02:36:50 +0000 (Tue, 01 Oct 2013) Log Message: ----------- Fix bug 6053 - Eliminate false error messages about empty text documents Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2013-10-01 02:34:18 UTC (rev 8832) +++ trunk/src/common/paws/pawstextbox.cpp 2013-10-01 02:36:50 UTC (rev 8833) @@ -2655,7 +2655,7 @@ void pawsDocumentView::OrganizeContent(const char* newtext) { csString str(newtext); - csRef<iDocumentNode> root = ParseStringGetNode(str, "Contents"); + csRef<iDocumentNode> root = ParseStringGetNode(str, "Contents", false); if(root == 0) return; @@ -3029,7 +3029,7 @@ void pawsMultiPageDocumentView::OrganizeContent(const char* newtext) { csString str(newtext); - csRef<iDocumentNode> root = ParseStringGetNode(str, "Contents"); + csRef<iDocumentNode> root = ParseStringGetNode(str, "Contents", false); if(root == 0) return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2013-11-02 18:04:47
|
Revision: 8949 http://sourceforge.net/p/planeshift/code/8949 Author: lpancallo Date: 2013-11-02 18:04:45 +0000 (Sat, 02 Nov 2013) Log Message: ----------- added #ifdef to include spellchecker only on linux Modified Paths: -------------- trunk/src/common/paws/pawstextbox.cpp Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2013-11-01 16:19:17 UTC (rev 8948) +++ trunk/src/common/paws/pawstextbox.cpp 2013-11-02 18:04:45 UTC (rev 8949) @@ -1047,12 +1047,19 @@ GetFont()->GetMaxSize(dummy, lineHeight); lineHeight -=2; + // spellchecker works only on linux + #ifdef CS_PLATFORM_UNIX //get the spellchecker plugin spellChecker = csQueryRegistryOrLoad<iSpellChecker>(PawsManager::GetSingleton().GetObjectRegistry(), "crystalspace.planeshift.spellchecker"); + #endif + } pawsEditTextBox::pawsEditTextBox(const pawsEditTextBox &origin): pawsWidget(origin), - spellChecker(origin.spellChecker), - spellChecked(origin.spellChecked), + // spellchecker works only on linux + #ifdef CS_PLATFORM_UNIX + spellChecker(origin.spellChecker), + spellChecked(origin.spellChecked), + #endif typoColour(origin.typoColour), words(origin.words) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |