All pastes #1827198 Raw Edit

clueless

public text v1 · immutable
#1827198 ·published 2010-03-07 17:04 UTC
rendered paste body
Index: src/common/paws/pawstextbox.h===================================================================--- src/common/paws/pawstextbox.h	(revision 5649)+++ src/common/paws/pawstextbox.h	(working copy)@@ -168,6 +168,7 @@     virtual ~pawsMessageTextBox();         virtual bool Setup( iDocumentNode* node );     virtual bool Setup( void );+    virtual bool PostSetup();      /**      * This function allows a widget to fill in its own contents from an xml node@@ -228,6 +229,8 @@     int topLine;      pawsScrollBar* scrollBar;+    int scrollBarWidth;+    bool customScrollBar;      private:     static const int INITOFFSET = 20;@@ -339,6 +342,7 @@     virtual ~pawsMultiLineTextBox();      bool Setup ( iDocumentNode* node );+    bool PostSetup();      void Draw();       @@ -369,6 +373,7 @@     int maxWidth;     int maxHeight;     pawsScrollBar* scrollBar;+    bool customScrollBar; };  //--------------------------------------------------------------------------Index: src/common/paws/pawscrollbar.cpp===================================================================--- src/common/paws/pawscrollbar.cpp	(revision 5649)+++ src/common/paws/pawscrollbar.cpp	(working copy)@@ -168,7 +168,7 @@  	// down button settings 	csRef<iDocumentNode> downNode = node->GetNode("down");-	if (upNode)+	if (downNode) 	{ 		attr = downNode->GetAttribute("grey"); 		if (attr)Index: src/common/paws/pawstextbox.cpp===================================================================--- src/common/paws/pawstextbox.cpp	(revision 5649)+++ src/common/paws/pawstextbox.cpp	(working copy)@@ -374,6 +374,8 @@ {     topLine = 0;     maxLines = 0;+    scrollBarWidth = 25;+    customScrollBar = false;     CalcLineHeight();     scrollBar = NULL; }@@ -404,49 +406,42 @@     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 );-+        customScrollBar = true;         csRef<iDocumentAttribute> widthAttribute = scrollBarNode->GetAttribute("width");-        int scrollBarWidth = 25;-        if(widthAttribute){+        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;    -    } -    else -    {-        return Setup();-    }+    CalcLineHeight();++    return true; }  bool pawsMessageTextBox::Setup() {     CalcLineHeight();+    return true;+} +bool pawsMessageTextBox::PostSetup()+{     // Create the optional scroll bar here as well but hidden.-    scrollBar = new pawsScrollBar;-    scrollBar->SetParent( this );-    scrollBar->SetRelativeFrame( defaultFrame.Width() - 24, 6, 24, defaultFrame.Height() - 12 ); +    if (customScrollBar)+        scrollBar = dynamic_cast<pawsScrollBar *>(FindWidget("scrollbar"));+    if (!scrollBar)+    {+        scrollBar = new pawsScrollBar;+        scrollBar->SetParent( this );+        scrollBar->PostSetup();+        AddChild( scrollBar );+        +        scrollBar->SetTickValue( 1.0 );+        scrollBar->SetMaxValue(0.0);+    }++    scrollBar->SetRelativeFrame( defaultFrame.Width() - scrollBarWidth, 6, scrollBarWidth, 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 );      OnResize(); @@ -1305,6 +1300,7 @@     canDrawLines = 0;     maxHeight = 0;     maxWidth = 0;+    customScrollBar = false; }  pawsMultiLineTextBox::~pawsMultiLineTextBox()@@ -1314,20 +1310,48 @@  bool pawsMultiLineTextBox::Setup( iDocumentNode* node ) {    -    csRef<iDocumentNode> textNode = node->GetNode( "text" );        -    +    csRef<iDocumentNode> textNode = node->GetNode( "text" );     if ( textNode )-    {        +    {         csRef<iDocumentAttribute> textAttribute = textNode->GetAttribute("string");         if ( textAttribute )-        {            +        {             SetText( textAttribute->GetValue() );         }-    }        +    } +    csRef<iDocumentNode> scrollBarNode = node->GetNode( "pawsScrollBar" );+    if ( scrollBarNode )+    {+        customScrollBar = true;+    }+     return true; } +bool pawsMultiLineTextBox::PostSetup()+{+    if (customScrollBar)+        scrollBar = dynamic_cast<pawsScrollBar *>(FindWidget("scrollbar"));++    if (!scrollBar)+    {+        scrollBar = new pawsScrollBar();+        scrollBar->SetParent( this );+        AddChild( scrollBar );+        scrollBar->SetTickValue( 1.0 );+        scrollBar->PostSetup();+    }+    +    scrollBar->SetRelativeFrame( defaultFrame.Width() - 40, 6, 24, defaultFrame.Height() - 12 ); +    scrollBar->SetAttachFlags(ATTACH_TOP | ATTACH_BOTTOM | ATTACH_RIGHT);+    pawsWidget::Resize();+    +    scrollBar->Show();+    scrollBar->SetMaxValue(lines.GetSize() - canDrawLines );+    scrollBar->SetCurrentValue(0);+}+ void pawsMultiLineTextBox::Resize() {     pawsWidget::Resize();@@ -1471,22 +1495,12 @@         usingScrollBar = true;         lines.Empty();             OrganizeText( str.GetData() );        -        if ( !scrollBar )+        if ( scrollBar )         {-            // Create the optional scroll bar here as well but hidden.-            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 );-            pawsWidget::Resize();+            scrollBar->Show();+            scrollBar->SetMaxValue(lines.GetSize() - canDrawLines );+            scrollBar->SetCurrentValue(0);         }-        -        scrollBar->Show();-        scrollBar->SetMaxValue(lines.GetSize() - canDrawLines );-        scrollBar->SetCurrentValue(0);     }         startLine = 0;         text.Replace( str.GetData() );