Clean up scrollbar API.
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 24 Sep 2006 07:23:03 +0000 (07:23 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 24 Sep 2006 07:23:03 +0000 (07:23 +0000)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16545 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/ScrollBar.cpp
WebCore/platform/ScrollBar.h
WebCore/platform/mac/PlatformScrollBar.h
WebCore/platform/mac/PlatformScrollBarMac.mm
WebCore/platform/win/PlatformScrollBar.h
WebCore/platform/win/TemporaryLinkStubs.cpp
WebCore/rendering/RenderLayer.cpp

index 7ccaea2010d181822996ffc6a44789d6b27cfc5a..8d18794bcd3e344cc8d90d0211c2abdf05669e43 100644 (file)
@@ -1,3 +1,25 @@
+2006-09-24  Dave Hyatt  <hyatt@apple.com>
+
+        Cleanup of Scrollbar APIs.  Rename setKnobProportion to setProportion.  Rename setScrollbarValue to updateThumbPosition.
+        Give setProportion a base class implementation and implement it using the same pattern as setValue/updateThumbPosition (so that
+        the base calls a protected virtual function, updateThumbProportion, implemented by the derived class to update the actual scrollbar itself).
+
+        * platform/ScrollBar.cpp:
+        (WebCore::ScrollBar::setValue):
+        (WebCore::ScrollBar::setProportion):
+        * platform/ScrollBar.h:
+        (WebCore::ScrollBar::value):
+        * platform/mac/PlatformScrollBar.h:
+        * platform/mac/PlatformScrollBarMac.mm:
+        (WebCore::PlatformScrollBar::updateThumbPosition):
+        (WebCore::PlatformScrollBar::updateThumbProportion):
+        * platform/win/PlatformScrollBar.h:
+        * platform/win/TemporaryLinkStubs.cpp:
+        (PlatformScrollBar::updateThumbPosition):
+        (PlatformScrollBar::updateThumbProportion):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
+
 2006-09-23  Alexey Proskuryakov  <ap@nypop.com>
 
         Reviewed by Eric.
index 9da3d470193d87bfe2d4e37d126f69ff81b8ccfc..6a5d51af3501d31c5dfd61f02c2c8fcf5d8589fd 100644 (file)
@@ -49,7 +49,7 @@ bool ScrollBar::setValue(int v)
         return false; // Our value stayed the same.
     m_currentPos = v;
 
-    setScrollBarValue(v);
+    updateThumbPosition();
 
     if (client())
         client()->valueChanged(this);
@@ -57,6 +57,14 @@ bool ScrollBar::setValue(int v)
     return true;
 }
 
+void ScrollBar::setProportion(int visibleSize, int totalSize)
+{
+    m_visibleSize = visibleSize;
+    m_totalSize = totalSize;
+
+    updateThumbProportion();
+}
+
 void ScrollBar::setSteps(int lineStep, int pageStep)
 {
     m_lineStep = lineStep;
index 19660a5aa0f8837dde2353b0bc3e6c5fd859dd55..cf4c9b54d54be7f3cfe3d3cb1854d25fae1796d8 100644 (file)
@@ -69,14 +69,12 @@ public:
 
     ScrollBarOrientation orientation() const { return m_orientation; }
     int value() const { return m_currentPos; } 
-    
-    virtual void setScrollBarValue(int) = 0;
-    virtual void setKnobProportion(int visibleSize, int totalSize) = 0;
 
     void setSteps(int lineStep, int pageStep);
     
     bool setValue(int);
-    
+    void setProportion(int visibleSize, int totalSize);
+
     bool scroll(ScrollDirection, ScrollGranularity, float multiplier = 1.0);
     
     virtual int width() const = 0;
@@ -93,6 +91,9 @@ public:
     }
 
 protected:
+    virtual void updateThumbPosition() = 0;
+    virtual void updateThumbProportion() = 0;
+
     ScrollBarClient* client() const { return m_client; }
 
     ScrollBarClient* m_client;
index dfdf6c8f06d4487b4895dc5afa2fc570faaeffb5..43ac05ba70b63aee353befd470e26a5bc87f1bf2 100644 (file)
@@ -45,9 +45,6 @@ public:
 
     virtual bool isWidget() const { return true; }
 
-    virtual void setScrollBarValue(int v);
-    virtual void setKnobProportion(int visibleSize, int totalSize);
-
     virtual int width() const;
     virtual int height() const;
     virtual void setRect(const IntRect&);
@@ -55,6 +52,10 @@ public:
     virtual void paint(GraphicsContext*, const IntRect& damageRect);
 
     bool scrollbarHit(NSScrollerPart);
+
+protected:    
+    virtual void updateThumbPosition();
+    virtual void updateThumbProportion();
 };
 
 }
index 2764097e006048b2c7082757fcf9be8e94744384..5d969dfe1fd8ad3ca431cd21754227eeb0ba2f83 100644 (file)
@@ -121,7 +121,7 @@ PlatformScrollBar::~PlatformScrollBar()
     removeFromSuperview();
 }
 
-void PlatformScrollBar::setScrollBarValue(int v)
+void PlatformScrollBar::updateThumbPosition()
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
     WebCoreScrollBar *bar = (WebCoreScrollBar *)getView();
@@ -130,10 +130,8 @@ void PlatformScrollBar::setScrollBarValue(int v)
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 
-void PlatformScrollBar::setKnobProportion(int visibleArea, int totalArea)
+void PlatformScrollBar::updateThumbProportion()
 {
-    m_visibleSize = visibleArea;
-    m_totalSize = totalArea;
     float val = (float)m_visibleSize/m_totalSize;
 
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
index f932013e1790f5eb95d1db67c9c7356e501a090a..017bd48f1c4a365f2c42a7bae3efd11a7d6146d0 100644 (file)
@@ -38,14 +38,15 @@ public:
 
     virtual bool isWidget() const { return true; }
 
-    virtual void setScrollBarValue(int v);
-    virtual void setKnobProportion(int visibleSize, int totalSize);
-
     virtual int width() const;
     virtual int height() const;
     virtual void setRect(const IntRect&);
     virtual void setEnabled(bool);
     virtual void paint(GraphicsContext*, const IntRect& damageRect);
+
+protected:    
+    virtual void updateThumbPosition();
+    virtual void updateThumbProportion();
 };
 
 }
index 514028230d4379cfe7e0988b005a48d44e5ddd05..12b6102b57c32745bcd9bce186934630c2d3774a 100644 (file)
@@ -348,8 +348,8 @@ int PlatformScrollBar::width() const { return 0; }
 int PlatformScrollBar::height() const { return 0; }
 void PlatformScrollBar::setEnabled(bool) { }
 void PlatformScrollBar::paint(GraphicsContext*, const IntRect& damageRect) { }
-void PlatformScrollBar::setScrollBarValue(int v) { }
-void PlatformScrollBar::setKnobProportion(int visibleSize, int totalSize) { }
+void PlatformScrollBar::updateThumbPosition() { }
+void PlatformScrollBar::updateThumbProportion() { }
 void PlatformScrollBar::setRect(const IntRect&) { }
 
 ScrollBar::ScrollBar(ScrollBarClient*, ScrollBarOrientation) { }
index e19d2507c52123c1224ab53b9436b9ccf26d93a8..82da0fae4956224de6e9778710b478c2b822a572 100644 (file)
@@ -1162,7 +1162,7 @@ RenderLayer::updateScrollInfoAfterLayout()
         int pageStep = (clientWidth-PAGE_KEEP);
         if (pageStep < 0) pageStep = clientWidth;
         m_hBar->setSteps(LINE_STEP, pageStep);
-        m_hBar->setKnobProportion(clientWidth, m_scrollWidth);
+        m_hBar->setProportion(clientWidth, m_scrollWidth);
         m_hBar->setValue(scrollXOffset());
     }
     if (m_vBar) {
@@ -1170,7 +1170,7 @@ RenderLayer::updateScrollInfoAfterLayout()
         int pageStep = (clientHeight-PAGE_KEEP);
         if (pageStep < 0) pageStep = clientHeight;
         m_vBar->setSteps(LINE_STEP, pageStep);
-        m_vBar->setKnobProportion(clientHeight, m_scrollHeight);
+        m_vBar->setProportion(clientHeight, m_scrollHeight);
         m_object->repaintRectangle(IntRect(m_object->borderLeft() + m_object->clientWidth(),
                                    m_object->borderTop(), verticalScrollbarWidth(), 
                                    m_object->height() - m_object->borderTop() - m_object->borderBottom()));