All pastes #1788296 Raw Edit

clueless

public text v1 · immutable
#1788296 ·published 2010-02-06 19:36 UTC
rendered paste body
Index: data/gui/chat_basic.xml===================================================================--- data/gui/chat_basic.xml	(revision 5445)+++ data/gui/chat_basic.xml	(working copy)@@ -87,11 +87,12 @@                     <attach point="ATTACH_LEFT" />                     <attach point="PROPORTIONAL_BOTTOM" />                 </attachpoints>-				<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />-		<subscriptions overwrite = "false">-			<subscribe data="subMainText" />-		</subscriptions>+				<pawsScrollBar width="20" tick="1.0" maxValue="0.0" />+        		<subscriptions overwrite = "false">+		        	<subscribe data="subMainText" />+        		</subscriptions>             </widget>+                         <widget name="SystemText" factory="pawsMessageTextBox" visible="no" id="1101">                 <frame x="55" y="0" width="435" height="233" border="no" />                 <attachpoints>@@ -103,7 +104,7 @@ 		<subscriptions overwrite = "false"> 			<subscribe data="subSystemText" /> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>             <widget name="NpcText" factory="pawsMessageTextBox" visible="no" id="1102">                 <frame x="55" y="0" width="435" height="233" border="no" />@@ -116,7 +117,7 @@ 		<subscriptions overwrite = "false"> 			<subscribe data="subNPCText" /> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>             <widget name="TellText" factory="pawsMessageTextBox" visible="no" id="1103">                 <frame x="55" y="0" width="435" height="233" border="no" />@@ -129,7 +130,7 @@ 		<subscriptions overwrite = "false"> 			<subscribe data="subTellText" />	 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>             <widget name="GuildText" factory="pawsMessageTextBox" visible="no" id="1104">                 <frame x="55" y="0" width="435" height="233" border="no" />@@ -142,7 +143,7 @@  		<subscriptions overwrite = "false"> 			<subscribe data="subGuildText" /> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />            </widget>             <widget name="AllianceText" factory="pawsMessageTextBox" visible="no" id="1109">                 <frame x="55" y="0" width="435" height="233" border="no" />@@ -155,7 +156,7 @@  		<subscriptions overwrite = "false"> 			<subscribe data="subAllianceText" /> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />            </widget>             <widget name="GroupText" factory="pawsMessageTextBox" visible="no" id="1105">                 <frame x="55" y="0" width="435" height="233" border="no" />@@ -168,7 +169,7 @@ 		<subscriptions overwrite = "false"> 			<subscribe data="subGroupText" />	 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>             <widget name="AuctionText" factory="pawsMessageTextBox" visible="no" id="1106">                 <frame x="55" y="0" width="435" height="233" border="no" />@@ -181,7 +182,7 @@ 		<subscriptions overwrite = "false"> 			<subscribe data="subAuctionsText" /> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>              <widget name="ChannelsText" factory="pawsMessageTextBox" visible="no" id="1108">@@ -195,7 +196,7 @@ 		<subscriptions overwrite = "false"> 	            <subscribe data="subChannelsText"/> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>              <widget name="HelpText" factory="pawsMessageTextBox" visible="no" id="1107">@@ -209,7 +210,7 @@ 		<subscriptions overwrite = "false"> 			<subscribe data="subHelpText" /> 		</subscriptions>-			<pawsScrollBar width="15" tick="0.1" maxValue="1.0" />+			<pawsScrollBar width="20" tick="0.1" maxValue="1.0" />             </widget>         </widget>  Index: src/common/paws/pawstextbox.h===================================================================--- src/common/paws/pawstextbox.h	(revision 5445)+++ src/common/paws/pawstextbox.h	(working copy)@@ -188,7 +188,6 @@     void AppendLastMessage( const char* data );      virtual void OnResize();-    virtual void Resize();      virtual bool OnScroll( int direction, pawsScrollBar* widget );     virtual bool OnMouseDown( int button, int modifiers, int x, int y );     @@ -219,7 +218,7 @@     /// Calculates value of the lineHeight attribute     void CalcLineHeight();     -    csPDelArray<MessageLine> adjusted;+    csPDelArray<MessageLine> messageLines;      int lineHeight;     size_t maxLines;@@ -229,9 +228,14 @@     pawsScrollBar* scrollBar;      private:+    void BeforeSetup();+    void AfterSetup();+    pawsScrollBar* GetScrollBar();     static const int INITOFFSET = 20;     void WriteMessageLine(MessageLine*& msgLine, csString text, int colour);     void WriteMessageSegment(MessageLine*& msgLine, csString text, int colour, int startPosition);+    void ResizeMessage();+    void AdjustScrollBar();     csString FindStringThatFits(csString stringBuffer, int canDrawLength); }; Index: src/common/paws/pawscrollbar.cpp===================================================================--- src/common/paws/pawscrollbar.cpp	(revision 5445)+++ src/common/paws/pawscrollbar.cpp	(working copy)@@ -132,6 +132,15 @@     attr = node->GetAttribute("tick");     if (attr)         tickValue = attr->GetValueAsFloat();+        +    attr = node->GetAttribute("width");+	if (attr)+	{+	    int width = attr->GetValueAsInt();;+		upWidth = width;+		downWidth = width;+        defaultFrame.SetSize(width,defaultFrame.Height());+    }  	// up button settings 	csRef<iDocumentNode> upNode = node->GetNode("up");@@ -168,7 +177,7 @@  	// down button settings 	csRef<iDocumentNode> downNode = node->GetNode("down");-	if (upNode)+	if (downNode) 	{ 		attr = downNode->GetAttribute("grey"); 		if (attr)@@ -255,16 +264,11 @@     } } -void pawsScrollBar::SetHorizontal (bool value)-{-    horizontal = value;-    SetThumbLayout();-}- bool pawsScrollBar::PostSetup() {     // Create the scroll up/left button     upButton = new pawsButton;+    upButton->SetName("pawscrollbar::pawsButton::up");     upButton->SetParent( this );     int flags;     if (!horizontal)@@ -301,6 +305,7 @@      // Create the scroll down button.     downButton = new pawsButton;+    downButton->SetName("pawscrollbar::pawsButton::down");     downButton->SetParent( this );     if (!horizontal)     {@@ -367,6 +372,12 @@     SetButtonLayout(); } +void pawsScrollBar::SetHorizontal (bool value)+{+    horizontal = value;+    SetThumbLayout();+}+ void pawsScrollBar::SetThumbLayout() {     int scrollBarSize = GetScrollBarSize();@@ -400,6 +411,11 @@     } } +int pawsScrollBar::GetScrollBarSize()+{+    return horizontal ? screenFrame.Height() : screenFrame.Width();+}+ bool pawsScrollBar::OnMouseDown( int button, int modifiers, int x, int y ) {     if (button == csmbWheelUp)@@ -586,11 +602,6 @@     this->limited = limited; } -int pawsScrollBar::GetScrollBarSize()-{-    return horizontal ? screenFrame.Height() : screenFrame.Width();-}- void pawsScrollBar::SetButtonLayout() {     int scrollBarSize = GetScrollBarSize();@@ -603,11 +614,24 @@ 	if (downHeight == 0) 		downHeight = scrollBarSize; -    if (upButton)-		upButton->SetRelativeFrame(upOffsetx, upOffsety, upWidth, upHeight);++    if(!horizontal)+    {+        if (upButton)+	    	upButton->SetRelativeFrame(upOffsetx, upOffsety, upWidth, upHeight);     -    if (downButton)-		downButton->SetRelativeFrame(defaultFrame.Width()-downWidth-downOffsetx, defaultFrame.Height()-downHeight-downOffsety, downWidth, downHeight);+        if (downButton)+	    	downButton->SetRelativeFrame(defaultFrame.Width()-downWidth-downOffsetx, defaultFrame.Height()-downHeight-downOffsety, downWidth, downHeight);+//	    	downButton->SetRelativeFrame(downOffsety, defaultFrame.Height()-downHeight-downOffsety, downWidth, downHeight);+	}+	else+	{+        if (upButton)+	    	upButton->SetRelativeFrame(upOffsetx, upOffsety, upWidth, upHeight);+    +        if (downButton)+	    	downButton->SetRelativeFrame(defaultFrame.Width()-downWidth-downOffsetx, defaultFrame.Height()-downHeight-downOffsety, downWidth, downHeight);+	} }  int pawsScrollBar::GetThumbScaleLength()Index: src/common/paws/pawswidget.cpp===================================================================--- src/common/paws/pawswidget.cpp	(revision 5445)+++ src/common/paws/pawswidget.cpp	(working copy)@@ -757,6 +757,9 @@     if ( ! LoadAttributes(node) )         return false; +    if ( ! LoadChildren(node) )+        return false;+     // Call the setup for this widget.     if ( !Setup( node ) )     {@@ -767,10 +770,6 @@     //if (name=="ChatWindow")     //    printf("Chat found."); -    if ( ! LoadChildren(node) )-        return false;--     // load scripts after we've loaded all children     if (!LoadEventScripts(node))         return false;@@ -850,6 +849,7 @@             }              widget = PawsManager::GetSingleton().CreateWidget( factory );+            widget->SetName("pawsWidget::"+factory);             CS_ASSERT_MSG("Creating widget from factory name failed.", widget!=NULL);              AddChild( widget );@@ -862,7 +862,6 @@             return false;         }     }-     // Need to load form properties here, because we need to have the children loaded      // Get form propertiesIndex: src/common/paws/pawstextbox.cpp===================================================================--- src/common/paws/pawstextbox.cpp	(revision 5445)+++ src/common/paws/pawstextbox.cpp	(working copy)@@ -59,7 +59,7 @@ }  bool pawsTextBox::Setup( iDocumentNode* node )-{    +{     csRef<iDocumentAttribute> vertAttribute = node->GetAttribute("vertical");     if ( vertAttribute )         SetVertical(strcmp(vertAttribute->GetValue(), "yes") == 0);@@ -386,7 +386,7 @@ void pawsMessageTextBox::Clear() {     messages.Empty();-    adjusted.Empty();+    messageLines.Empty();     topLine = 0;     if (scrollBar)         scrollBar->Hide();@@ -401,66 +401,80 @@  bool pawsMessageTextBox::Setup( iDocumentNode* node ) {+     csRef<iDocumentNode> scrollBarNode = node->GetNode( "pawsScrollBar" );     if ( scrollBarNode )     {-        CalcLineHeight();--        // Create the optional scroll bar here as well but hidden.-        scrollBar = new pawsScrollBar;-        //TODO: FIGURE OUT WHY THIS FUNCTION DOESN'T SETUP SCROLLBARS CORRECTLY!-        //scrollBar->Setup( scrollBarNode );-        scrollBar->SetParent( this );-+        BeforeSetup();         csRef<iDocumentAttribute> widthAttribute = scrollBarNode->GetAttribute("width");-        int scrollBarWidth = 25;+        int scrollBarWidth = 24;         if(widthAttribute){             scrollBarWidth = widthAttribute->GetValueAsInt();         }-         scrollBar->SetRelativeFrame( defaultFrame.Width() - scrollBarWidth, 6, scrollBarWidth, defaultFrame.Height() - 12 ); -        -        int attach = ATTACH_TOP | ATTACH_BOTTOM | ATTACH_RIGHT;-        scrollBar->SetAttachFlags( attach );-        scrollBar->PostSetup();-        AddChild( scrollBar );-        OnResize();-        return true;    +        AfterSetup();     }      else      {-        return Setup();+        Setup();     }+    return true;     }  bool pawsMessageTextBox::Setup() {+    BeforeSetup();+    scrollBar->SetRelativeFrame( defaultFrame.Width() - 24, 6, 24, defaultFrame.Height() - 12 ); +    scrollBar->SetTickValue( 1.0 );+    scrollBar->SetMaxValue(0.0);+    scrollBar->PostSetup();+    AfterSetup();+    return true;+}++void pawsMessageTextBox::BeforeSetup()+{     CalcLineHeight();      // Create the optional scroll bar here as well but hidden.-    scrollBar = new pawsScrollBar;+    scrollBar = GetScrollBar();+    scrollBar->SetName("pawsMessageTexBox::ScrollBar");     scrollBar->SetParent( this );-    scrollBar->SetRelativeFrame( defaultFrame.Width() - 24, 6, 24, defaultFrame.Height() - 12 ); -    int attach = ATTACH_TOP | ATTACH_BOTTOM | ATTACH_RIGHT;-    scrollBar->SetAttachFlags( attach );-    scrollBar->PostSetup();-    scrollBar->SetTickValue( 1.0 );-    scrollBar->SetMaxValue(0.0);-    AddChild( scrollBar );+} +pawsScrollBar* pawsMessageTextBox::GetScrollBar()+{+    for ( size_t x = 0; x < children.GetSize(); x++ )+    {+        csString widgetName(children[x]->GetName());+        if (widgetName.Compare("pawsWidget::pawsScrollBar"))+        {+            return (pawsScrollBar*)children[x];+        }+    }+    +    return new pawsScrollBar;+}+++void pawsMessageTextBox::AfterSetup()+{     OnResize();--    return true; } -void pawsMessageTextBox::Resize()+void pawsMessageTextBox::OnResize() {-    pawsWidget::Resize();-     CalcLineHeight(); -    adjusted.Empty();    +    ResizeMessage();+    AdjustScrollBar();+    +} +void pawsMessageTextBox::ResizeMessage()+{+    messageLines.Empty();    +     for ( size_t x = 0; x < messages.GetSize(); x++ )         {                 MessageLine* dummy = NULL;@@ -474,42 +488,35 @@     		for(size_t i = 0; i < messages[x]->segments.GetSize(); i++)     			SplitMessage( messages[x]->segments[i].text, messages[x]->segments[i].colour, messages[x]->segments[i].size, msgLine, offsetX);     	}-    } +    } } -void pawsMessageTextBox::OnResize()+void pawsMessageTextBox::AdjustScrollBar() {     int borderOffSize = 4;     if ( border )         borderOffSize = 8; -    int rest = (screenFrame.Height()-borderOffSize) % lineHeight;-    if (screenFrame.Height() >= borderOffSize+rest)-        maxLines = (screenFrame.Height()-borderOffSize-rest) / lineHeight;+    if (screenFrame.Height() >= borderOffSize)+        maxLines = (screenFrame.Height()-borderOffSize) / lineHeight;     else         maxLines = 0; -    // Re adjust the top line value -    topLine = (int)adjusted.GetSize() - (int)maxLines;-    if ( topLine < 0 )-        topLine = 0;-     if (scrollBar)     {-        scrollBar->SetMaxValue( maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines) );-        scrollBar->SetCurrentValue( (float)topLine );--        if ( maxLines < adjusted.GetSize() )+        scrollBar->SetMaxValue( maxLines > messageLines.GetSize() ? 0 : (float)(messageLines.GetSize()-maxLines) );+       if ( maxLines < messageLines.GetSize() )         {             scrollBar->Show();             scrollBar->RecalcScreenPositions();         }         else+        {             scrollBar->Hide();+        }     } } - void pawsMessageTextBox::Draw() {     pawsWidget::Draw();@@ -523,9 +530,9 @@      for ( size_t x = topLine; x < (topLine+maxLines); x++ )     {-        if ( x < adjusted.GetSize() )+        if ( x < messageLines.GetSize() )         {-        	if(adjusted[x]->segments.IsEmpty())+        	if(messageLines[x]->segments.IsEmpty())         	{ 				// Draw shadow 				graphics2D->Write(  GetFont(),@@ -533,33 +540,33 @@ 									screenFrame.ymin + yPos*lineHeight + 1, 									0, 									-1,-									(const char*)adjusted[x]->text );+									(const char*)messageLines[x]->text ); 				// Draw actual text 				graphics2D->Write(  GetFont(), 									screenFrame.xmin, 									screenFrame.ymin + yPos*lineHeight,-									adjusted[x]->colour,+									messageLines[x]->colour, 									-1,-									(const char*)adjusted[x]->text );+									(const char*)messageLines[x]->text );         	}         	else         	{-        		for(size_t i = 0; i < adjusted[x]->segments.GetSize(); i++)+        		for(size_t i = 0; i < messageLines[x]->segments.GetSize(); i++)         		{ 					// Draw shadow 					graphics2D->Write(  GetFont(),-										screenFrame.xmin + adjusted[x]->segments[i].x + 1,+										screenFrame.xmin + messageLines[x]->segments[i].x + 1, 										screenFrame.ymin + yPos*lineHeight + 1, 										0, 										-1,-										(const char*)adjusted[x]->segments[i].text );+										(const char*)messageLines[x]->segments[i].text ); 					// Draw actual text 					graphics2D->Write(  GetFont(),-										screenFrame.xmin + adjusted[x]->segments[i].x,+										screenFrame.xmin + messageLines[x]->segments[i].x, 										screenFrame.ymin + yPos*lineHeight,-										adjusted[x]->segments[i].colour,+										messageLines[x]->segments[i].colour, 										-1,-										(const char*)adjusted[x]->segments[i].text );+										(const char*)messageLines[x]->segments[i].text );         		}         	}            @@ -715,16 +722,16 @@         messages.Push(msg);           if (scrollBar)         {-            if ( adjusted.GetSize() > maxLines )+            if ( messageLines.GetSize() > maxLines )                 scrollBar->ShowBehind();             else                 scrollBar->Hide();         }  -        scrollBar->SetMaxValue( maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines) );+        scrollBar->SetMaxValue( maxLines > messageLines.GetSize() ? 0 : (float)(messageLines.GetSize()-maxLines) ); -        topLine = (int)adjusted.GetSize() - (int)maxLines;      +        topLine = (int)messageLines.GetSize() - (int)maxLines;               if ( topLine < 0 )             topLine = 0;                  @@ -751,7 +758,7 @@      MessageLine* line = messages.Get(messages.GetSize()-1);     line->text.Append(data);-    line = adjusted.Get(adjusted.GetSize()-1);+    line = messageLines.Get(messageLines.GetSize()-1);     line->text.Append(data);      // Trim \n from the end and add a new line.@@ -852,7 +859,7 @@     msgLine->size = text.Length();     msgLine->text = text;     msgLine->colour = colour;-    adjusted.Push(msgLine);+    messageLines.Push(msgLine); }  void pawsMessageTextBox::WriteMessageSegment(MessageLine*& msgLine, csString text, int colour, int startPosition)@@ -1452,6 +1459,7 @@         {             // Create the optional scroll bar here as well but hidden.             scrollBar = new pawsScrollBar();+            scrollBar->SetName("pawsMultiLineTextBox::ScrollBar");             scrollBar->SetParent( this );             scrollBar->SetRelativeFrame( defaultFrame.Width() - 40, 6, 24, defaultFrame.Height() - 12 );              scrollBar->SetAttachFlags(ATTACH_TOP | ATTACH_BOTTOM | ATTACH_RIGHT);