Changeset 109451 in webkit


Ignore:
Timestamp:
Mar 1, 2012 3:36:21 PM (12 years ago)
Author:
jamesr@google.com
Message:

Decouple scrollbar painting from Scrollbar object
https://bugs.webkit.org/show_bug.cgi?id=78028

Patch by Peter Kotwicz <pkotwicz@google.com> on 2012-03-01
Reviewed by James Robinson.

Added interface ScrollbarThemeClient which Scrollbar inherits from.
This allows painting via ScrollbarTheme with a proxy to a Scrollbar
object.

  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::scrollbarOverlayStyle):
(WebCore):
(WebCore::Scrollbar::getTickmarks):
(WebCore::Scrollbar::isScrollableAreaActive):
(WebCore::Scrollbar::isScrollViewScrollbar):
(WebCore::Scrollbar::setFrameRect):

  • platform/Scrollbar.h:

(Scrollbar):
(WebCore::Scrollbar::x):
(WebCore::Scrollbar::y):
(WebCore::Scrollbar::width):
(WebCore::Scrollbar::height):
(WebCore::Scrollbar::size):
(WebCore::Scrollbar::location):
(WebCore::Scrollbar::parent):
(WebCore::Scrollbar::root):
(WebCore::Scrollbar::frameRect):
(WebCore::Scrollbar::invalidate):
(WebCore::Scrollbar::convertFromContainingWindow):
(WebCore::Scrollbar::isCustomScrollbar):
(WebCore::Scrollbar::orientation):
(WebCore::Scrollbar::value):
(WebCore::Scrollbar::currentPos):
(WebCore::Scrollbar::visibleSize):
(WebCore::Scrollbar::totalSize):
(WebCore::Scrollbar::maximum):
(WebCore::Scrollbar::controlSize):
(WebCore::Scrollbar::lineStep):
(WebCore::Scrollbar::pageStep):
(WebCore::Scrollbar::pressedPart):
(WebCore::Scrollbar::hoveredPart):
(WebCore::Scrollbar::styleChanged):
(WebCore::Scrollbar::enabled):

  • platform/ScrollbarTheme.h:

(WebCore):
(WebCore::ScrollbarTheme::updateEnabledState):
(WebCore::ScrollbarTheme::paint):
(WebCore::ScrollbarTheme::hitTest):
(WebCore::ScrollbarTheme::updateScrollbarOverlayStyle):
(WebCore::ScrollbarTheme::invalidateParts):
(WebCore::ScrollbarTheme::invalidatePart):
(WebCore::ScrollbarTheme::shouldCenterOnThumb):
(WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
(WebCore::ScrollbarTheme::shouldDragDocumentInsteadOfThumb):
(WebCore::ScrollbarTheme::thumbPosition):
(WebCore::ScrollbarTheme::thumbLength):
(WebCore::ScrollbarTheme::trackPosition):
(WebCore::ScrollbarTheme::trackLength):
(WebCore::ScrollbarTheme::registerScrollbar):
(WebCore::ScrollbarTheme::unregisterScrollbar):

  • platform/ScrollbarThemeClient.h: Added.

(WebCore):
(ScrollbarThemeClient):
(WebCore::ScrollbarThemeClient::~ScrollbarThemeClient):

  • platform/ScrollbarThemeComposite.cpp:

(WebCore::ScrollbarThemeComposite::paint):
(WebCore::ScrollbarThemeComposite::hitTest):
(WebCore::ScrollbarThemeComposite::invalidatePart):
(WebCore::ScrollbarThemeComposite::splitTrack):
(WebCore::usedTotalSize):
(WebCore::ScrollbarThemeComposite::thumbPosition):
(WebCore::ScrollbarThemeComposite::thumbLength):
(WebCore::ScrollbarThemeComposite::minimumThumbLength):
(WebCore::ScrollbarThemeComposite::trackPosition):
(WebCore::ScrollbarThemeComposite::trackLength):

  • platform/ScrollbarThemeComposite.h:

(ScrollbarThemeComposite):
(WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
(WebCore::ScrollbarThemeComposite::paintTrackBackground):
(WebCore::ScrollbarThemeComposite::paintTrackPiece):
(WebCore::ScrollbarThemeComposite::paintButton):
(WebCore::ScrollbarThemeComposite::paintThumb):
(WebCore::ScrollbarThemeComposite::paintTickmarks):
(WebCore::ScrollbarThemeComposite::constrainTrackRectToTrackPieces):

  • platform/chromium/ScrollbarThemeChromium.cpp:

(WebCore::ScrollbarThemeChromium::hasThumb):
(WebCore::ScrollbarThemeChromium::backButtonRect):
(WebCore::ScrollbarThemeChromium::forwardButtonRect):
(WebCore::ScrollbarThemeChromium::trackRect):
(WebCore::ScrollbarThemeChromium::paintTrackBackground):
(WebCore::ScrollbarThemeChromium::paintTickmarks):

  • platform/chromium/ScrollbarThemeChromium.h:

(WebCore::ScrollbarThemeChromium::hasButtons):
(ScrollbarThemeChromium):

  • platform/chromium/ScrollbarThemeChromiumAndroid.cpp:

(WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
(WebCore::ScrollbarThemeChromiumAndroid::shouldCenterOnThumb):
(WebCore::ScrollbarThemeChromiumAndroid::buttonSize):
(WebCore::ScrollbarThemeChromiumAndroid::minimumThumbLength):

  • platform/chromium/ScrollbarThemeChromiumAndroid.h:

(ScrollbarThemeChromiumAndroid):

  • platform/chromium/ScrollbarThemeChromiumLinux.cpp:

(WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumLinux::paintButton):
(WebCore::ScrollbarThemeChromiumLinux::paintThumb):
(WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
(WebCore::ScrollbarThemeChromiumLinux::buttonSize):
(WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):

  • platform/chromium/ScrollbarThemeChromiumLinux.h:

(ScrollbarThemeChromiumLinux):

  • platform/chromium/ScrollbarThemeChromiumMac.h:

(ScrollbarThemeChromiumMac):

  • platform/chromium/ScrollbarThemeChromiumMac.mm:

(WebCore::scrollbarStateToThemeState):
(WebCore::ScrollbarThemeChromiumMac::paint):
(WebCore::ScrollbarThemeChromiumMac::paintGivenTickmarks):

  • platform/chromium/ScrollbarThemeChromiumWin.cpp:

(WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
(WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumWin::paintButton):
(WebCore::ScrollbarThemeChromiumWin::paintThumb):
(WebCore::ScrollbarThemeChromiumWin::getThemeState):
(WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
(WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
(WebCore::ScrollbarThemeChromiumWin::shouldCenterOnThumb):
(WebCore::ScrollbarThemeChromiumWin::buttonSize):

  • platform/chromium/ScrollbarThemeChromiumWin.h:

(ScrollbarThemeChromiumWin):

  • platform/efl/ScrollbarThemeEfl.cpp:

(WebCore::ScrollbarThemeEfl::registerScrollbar):
(WebCore::ScrollbarThemeEfl::unregisterScrollbar):

  • platform/efl/ScrollbarThemeEfl.h:

(ScrollbarThemeEfl):

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore):
(WebCore::ScrollbarThemeGtk::registerScrollbar):
(WebCore::ScrollbarThemeGtk::unregisterScrollbar):
(WebCore::ScrollbarThemeGtk::updateScrollbarsFrameThickness):
(WebCore::ScrollbarThemeGtk::hasThumb):
(WebCore::ScrollbarThemeGtk::backButtonRect):
(WebCore::ScrollbarThemeGtk::forwardButtonRect):
(WebCore::ScrollbarThemeGtk::trackRect):
(WebCore::ScrollbarThemeGtk::thumbRect):
(WebCore::ScrollbarThemeGtk::paint):
(WebCore::ScrollbarThemeGtk::shouldCenterOnThumb):
(WebCore::ScrollbarThemeGtk::buttonSize):
(WebCore::ScrollbarThemeGtk::minimumThumbLength):

  • platform/gtk/ScrollbarThemeGtk.h:

(WebCore::ScrollbarThemeGtk::hasButtons):
(ScrollbarThemeGtk):

  • platform/gtk/ScrollbarThemeGtk2.cpp:

(WebCore::getWidgetForScrollbar):
(WebCore::ScrollbarThemeGtk::paintTrackBackground):
(WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
(WebCore::ScrollbarThemeGtk::paintThumb):
(WebCore::ScrollbarThemeGtk::paintButton):

  • platform/gtk/ScrollbarThemeGtk3.cpp:

(WebCore::ScrollbarThemeGtk::paintTrackBackground):
(WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
(WebCore::ScrollbarThemeGtk::paintThumb):
(WebCore::ScrollbarThemeGtk::paintButton):

  • platform/mac/ScrollbarThemeMac.h:

(ScrollbarThemeMac):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore):
(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::unregisterScrollbar):
(WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
(WebCore::ScrollbarThemeMac::painterForScrollbar):
(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeMac::hasButtons):
(WebCore::ScrollbarThemeMac::hasThumb):
(WebCore::ScrollbarThemeMac::backButtonRect):
(WebCore::ScrollbarThemeMac::forwardButtonRect):
(WebCore::ScrollbarThemeMac::trackRect):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
(WebCore::ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::paint):

  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::trackRect):
(WebCore::ScrollbarThemeMock::paintTrackBackground):
(WebCore::ScrollbarThemeMock::paintThumb):

  • platform/mock/ScrollbarThemeMock.h:

(WebCore::ScrollbarThemeMock::hasButtons):
(WebCore::ScrollbarThemeMock::hasThumb):
(WebCore::ScrollbarThemeMock::backButtonRect):
(WebCore::ScrollbarThemeMock::forwardButtonRect):
(ScrollbarThemeMock):

  • platform/qt/ScrollbarThemeQt.cpp:

(WebCore::styleOptionSlider):
(WebCore::ScrollbarThemeQt::paint):
(WebCore::ScrollbarThemeQt::hitTest):
(WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
(WebCore::ScrollbarThemeQt::invalidatePart):
(WebCore::ScrollbarThemeQt::thumbPosition):
(WebCore::ScrollbarThemeQt::thumbLength):
(WebCore::ScrollbarThemeQt::trackPosition):
(WebCore::ScrollbarThemeQt::trackLength):

  • platform/qt/ScrollbarThemeQt.h:

(ScrollbarThemeQt):

  • platform/win/ScrollbarThemeSafari.cpp:

(WebCore::ScrollbarThemeSafari::hasButtons):
(WebCore::ScrollbarThemeSafari::hasThumb):
(WebCore::ScrollbarThemeSafari::backButtonRect):
(WebCore::ScrollbarThemeSafari::forwardButtonRect):
(WebCore::ScrollbarThemeSafari::trackRect):
(WebCore::ScrollbarThemeSafari::minimumThumbLength):
(WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
(WebCore::ScrollbarThemeSafari::paintTrackBackground):
(WebCore::ScrollbarThemeSafari::paintButton):
(WebCore::ScrollbarThemeSafari::paintThumb):

  • platform/win/ScrollbarThemeSafari.h:

(ScrollbarThemeSafari):

  • platform/win/ScrollbarThemeWin.cpp:

(WebCore::ScrollbarThemeWin::hasThumb):
(WebCore::ScrollbarThemeWin::backButtonRect):
(WebCore::ScrollbarThemeWin::forwardButtonRect):
(WebCore::ScrollbarThemeWin::trackRect):
(WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
(WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
(WebCore::ScrollbarThemeWin::paintTrackBackground):
(WebCore::ScrollbarThemeWin::paintTrackPiece):
(WebCore::ScrollbarThemeWin::paintButton):
(WebCore::paintGripper):
(WebCore::ScrollbarThemeWin::paintThumb):

  • platform/win/ScrollbarThemeWin.h:

(WebCore::ScrollbarThemeWin::hasButtons):
(ScrollbarThemeWin):

  • platform/wx/ScrollbarThemeWx.cpp:

(WebCore::ScrollbarThemeWx::hasThumb):
(WebCore::ScrollbarThemeWx::minimumThumbLength):
(WebCore::ScrollbarThemeWx::buttonSize):
(WebCore::ScrollbarThemeWx::splitTrack):
(WebCore::ScrollbarThemeWx::backButtonRect):
(WebCore::ScrollbarThemeWx::forwardButtonRect):
(WebCore::ScrollbarThemeWx::trackRect):
(WebCore::ScrollbarThemeWx::paint):

  • platform/wx/ScrollbarThemeWx.h:

(ScrollbarThemeWx):
(WebCore::ScrollbarThemeWx::hasButtons):

  • rendering/RenderScrollbar.h:

(WebCore::toRenderScrollbar):

  • rendering/RenderScrollbarTheme.cpp:

(WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
(WebCore::RenderScrollbarTheme::hasButtons):
(WebCore::RenderScrollbarTheme::hasThumb):
(WebCore::RenderScrollbarTheme::minimumThumbLength):
(WebCore::RenderScrollbarTheme::backButtonRect):
(WebCore::RenderScrollbarTheme::forwardButtonRect):
(WebCore::RenderScrollbarTheme::trackRect):
(WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
(WebCore::RenderScrollbarTheme::paintScrollbarBackground):
(WebCore::RenderScrollbarTheme::paintTrackBackground):
(WebCore::RenderScrollbarTheme::paintTrackPiece):
(WebCore::RenderScrollbarTheme::paintButton):
(WebCore::RenderScrollbarTheme::paintThumb):

  • rendering/RenderScrollbarTheme.h:

(WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
(WebCore::RenderScrollbarTheme::registerScrollbar):
(WebCore::RenderScrollbarTheme::unregisterScrollbar):
(RenderScrollbarTheme):

Location:
trunk/Source/WebCore
Files:
1 added
42 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r109450 r109451  
     12012-03-01  Peter Kotwicz  <pkotwicz@google.com>
     2
     3        Decouple scrollbar painting from Scrollbar object
     4        https://bugs.webkit.org/show_bug.cgi?id=78028
     5
     6        Reviewed by James Robinson.
     7
     8        Added interface ScrollbarThemeClient which Scrollbar inherits from.
     9        This allows painting via ScrollbarTheme with a proxy to a Scrollbar
     10        object.
     11
     12        * GNUmakefile.list.am:
     13        * Target.pri:
     14        * WebCore.gypi:
     15        * WebCore.vcproj/WebCore.vcproj:
     16        * WebCore.xcodeproj/project.pbxproj:
     17        * platform/Scrollbar.cpp:
     18        (WebCore::Scrollbar::scrollbarOverlayStyle):
     19        (WebCore):
     20        (WebCore::Scrollbar::getTickmarks):
     21        (WebCore::Scrollbar::isScrollableAreaActive):
     22        (WebCore::Scrollbar::isScrollViewScrollbar):
     23        (WebCore::Scrollbar::setFrameRect):
     24        * platform/Scrollbar.h:
     25        (Scrollbar):
     26        (WebCore::Scrollbar::x):
     27        (WebCore::Scrollbar::y):
     28        (WebCore::Scrollbar::width):
     29        (WebCore::Scrollbar::height):
     30        (WebCore::Scrollbar::size):
     31        (WebCore::Scrollbar::location):
     32        (WebCore::Scrollbar::parent):
     33        (WebCore::Scrollbar::root):
     34        (WebCore::Scrollbar::frameRect):
     35        (WebCore::Scrollbar::invalidate):
     36        (WebCore::Scrollbar::convertFromContainingWindow):
     37        (WebCore::Scrollbar::isCustomScrollbar):
     38        (WebCore::Scrollbar::orientation):
     39        (WebCore::Scrollbar::value):
     40        (WebCore::Scrollbar::currentPos):
     41        (WebCore::Scrollbar::visibleSize):
     42        (WebCore::Scrollbar::totalSize):
     43        (WebCore::Scrollbar::maximum):
     44        (WebCore::Scrollbar::controlSize):
     45        (WebCore::Scrollbar::lineStep):
     46        (WebCore::Scrollbar::pageStep):
     47        (WebCore::Scrollbar::pressedPart):
     48        (WebCore::Scrollbar::hoveredPart):
     49        (WebCore::Scrollbar::styleChanged):
     50        (WebCore::Scrollbar::enabled):
     51        * platform/ScrollbarTheme.h:
     52        (WebCore):
     53        (WebCore::ScrollbarTheme::updateEnabledState):
     54        (WebCore::ScrollbarTheme::paint):
     55        (WebCore::ScrollbarTheme::hitTest):
     56        (WebCore::ScrollbarTheme::updateScrollbarOverlayStyle):
     57        (WebCore::ScrollbarTheme::invalidateParts):
     58        (WebCore::ScrollbarTheme::invalidatePart):
     59        (WebCore::ScrollbarTheme::shouldCenterOnThumb):
     60        (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
     61        (WebCore::ScrollbarTheme::shouldDragDocumentInsteadOfThumb):
     62        (WebCore::ScrollbarTheme::thumbPosition):
     63        (WebCore::ScrollbarTheme::thumbLength):
     64        (WebCore::ScrollbarTheme::trackPosition):
     65        (WebCore::ScrollbarTheme::trackLength):
     66        (WebCore::ScrollbarTheme::registerScrollbar):
     67        (WebCore::ScrollbarTheme::unregisterScrollbar):
     68        * platform/ScrollbarThemeClient.h: Added.
     69        (WebCore):
     70        (ScrollbarThemeClient):
     71        (WebCore::ScrollbarThemeClient::~ScrollbarThemeClient):
     72        * platform/ScrollbarThemeComposite.cpp:
     73        (WebCore::ScrollbarThemeComposite::paint):
     74        (WebCore::ScrollbarThemeComposite::hitTest):
     75        (WebCore::ScrollbarThemeComposite::invalidatePart):
     76        (WebCore::ScrollbarThemeComposite::splitTrack):
     77        (WebCore::usedTotalSize):
     78        (WebCore::ScrollbarThemeComposite::thumbPosition):
     79        (WebCore::ScrollbarThemeComposite::thumbLength):
     80        (WebCore::ScrollbarThemeComposite::minimumThumbLength):
     81        (WebCore::ScrollbarThemeComposite::trackPosition):
     82        (WebCore::ScrollbarThemeComposite::trackLength):
     83        * platform/ScrollbarThemeComposite.h:
     84        (ScrollbarThemeComposite):
     85        (WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
     86        (WebCore::ScrollbarThemeComposite::paintTrackBackground):
     87        (WebCore::ScrollbarThemeComposite::paintTrackPiece):
     88        (WebCore::ScrollbarThemeComposite::paintButton):
     89        (WebCore::ScrollbarThemeComposite::paintThumb):
     90        (WebCore::ScrollbarThemeComposite::paintTickmarks):
     91        (WebCore::ScrollbarThemeComposite::constrainTrackRectToTrackPieces):
     92        * platform/chromium/ScrollbarThemeChromium.cpp:
     93        (WebCore::ScrollbarThemeChromium::hasThumb):
     94        (WebCore::ScrollbarThemeChromium::backButtonRect):
     95        (WebCore::ScrollbarThemeChromium::forwardButtonRect):
     96        (WebCore::ScrollbarThemeChromium::trackRect):
     97        (WebCore::ScrollbarThemeChromium::paintTrackBackground):
     98        (WebCore::ScrollbarThemeChromium::paintTickmarks):
     99        * platform/chromium/ScrollbarThemeChromium.h:
     100        (WebCore::ScrollbarThemeChromium::hasButtons):
     101        (ScrollbarThemeChromium):
     102        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
     103        (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
     104        (WebCore::ScrollbarThemeChromiumAndroid::shouldCenterOnThumb):
     105        (WebCore::ScrollbarThemeChromiumAndroid::buttonSize):
     106        (WebCore::ScrollbarThemeChromiumAndroid::minimumThumbLength):
     107        * platform/chromium/ScrollbarThemeChromiumAndroid.h:
     108        (ScrollbarThemeChromiumAndroid):
     109        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
     110        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
     111        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
     112        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
     113        (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
     114        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
     115        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
     116        * platform/chromium/ScrollbarThemeChromiumLinux.h:
     117        (ScrollbarThemeChromiumLinux):
     118        * platform/chromium/ScrollbarThemeChromiumMac.h:
     119        (ScrollbarThemeChromiumMac):
     120        * platform/chromium/ScrollbarThemeChromiumMac.mm:
     121        (WebCore::scrollbarStateToThemeState):
     122        (WebCore::ScrollbarThemeChromiumMac::paint):
     123        (WebCore::ScrollbarThemeChromiumMac::paintGivenTickmarks):
     124        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
     125        (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
     126        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
     127        (WebCore::ScrollbarThemeChromiumWin::paintButton):
     128        (WebCore::ScrollbarThemeChromiumWin::paintThumb):
     129        (WebCore::ScrollbarThemeChromiumWin::getThemeState):
     130        (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
     131        (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
     132        (WebCore::ScrollbarThemeChromiumWin::shouldCenterOnThumb):
     133        (WebCore::ScrollbarThemeChromiumWin::buttonSize):
     134        * platform/chromium/ScrollbarThemeChromiumWin.h:
     135        (ScrollbarThemeChromiumWin):
     136        * platform/efl/ScrollbarThemeEfl.cpp:
     137        (WebCore::ScrollbarThemeEfl::registerScrollbar):
     138        (WebCore::ScrollbarThemeEfl::unregisterScrollbar):
     139        * platform/efl/ScrollbarThemeEfl.h:
     140        (ScrollbarThemeEfl):
     141        * platform/gtk/ScrollbarThemeGtk.cpp:
     142        (WebCore):
     143        (WebCore::ScrollbarThemeGtk::registerScrollbar):
     144        (WebCore::ScrollbarThemeGtk::unregisterScrollbar):
     145        (WebCore::ScrollbarThemeGtk::updateScrollbarsFrameThickness):
     146        (WebCore::ScrollbarThemeGtk::hasThumb):
     147        (WebCore::ScrollbarThemeGtk::backButtonRect):
     148        (WebCore::ScrollbarThemeGtk::forwardButtonRect):
     149        (WebCore::ScrollbarThemeGtk::trackRect):
     150        (WebCore::ScrollbarThemeGtk::thumbRect):
     151        (WebCore::ScrollbarThemeGtk::paint):
     152        (WebCore::ScrollbarThemeGtk::shouldCenterOnThumb):
     153        (WebCore::ScrollbarThemeGtk::buttonSize):
     154        (WebCore::ScrollbarThemeGtk::minimumThumbLength):
     155        * platform/gtk/ScrollbarThemeGtk.h:
     156        (WebCore::ScrollbarThemeGtk::hasButtons):
     157        (ScrollbarThemeGtk):
     158        * platform/gtk/ScrollbarThemeGtk2.cpp:
     159        (WebCore::getWidgetForScrollbar):
     160        (WebCore::ScrollbarThemeGtk::paintTrackBackground):
     161        (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
     162        (WebCore::ScrollbarThemeGtk::paintThumb):
     163        (WebCore::ScrollbarThemeGtk::paintButton):
     164        * platform/gtk/ScrollbarThemeGtk3.cpp:
     165        (WebCore::ScrollbarThemeGtk::paintTrackBackground):
     166        (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
     167        (WebCore::ScrollbarThemeGtk::paintThumb):
     168        (WebCore::ScrollbarThemeGtk::paintButton):
     169        * platform/mac/ScrollbarThemeMac.h:
     170        (ScrollbarThemeMac):
     171        * platform/mac/ScrollbarThemeMac.mm:
     172        (WebCore):
     173        (WebCore::ScrollbarThemeMac::registerScrollbar):
     174        (WebCore::ScrollbarThemeMac::unregisterScrollbar):
     175        (WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
     176        (WebCore::ScrollbarThemeMac::painterForScrollbar):
     177        (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
     178        (WebCore::ScrollbarThemeMac::hasButtons):
     179        (WebCore::ScrollbarThemeMac::hasThumb):
     180        (WebCore::ScrollbarThemeMac::backButtonRect):
     181        (WebCore::ScrollbarThemeMac::forwardButtonRect):
     182        (WebCore::ScrollbarThemeMac::trackRect):
     183        (WebCore::ScrollbarThemeMac::minimumThumbLength):
     184        (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
     185        (WebCore::ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb):
     186        (WebCore::ScrollbarThemeMac::updateEnabledState):
     187        (WebCore::ScrollbarThemeMac::paint):
     188        * platform/mock/ScrollbarThemeMock.cpp:
     189        (WebCore::ScrollbarThemeMock::trackRect):
     190        (WebCore::ScrollbarThemeMock::paintTrackBackground):
     191        (WebCore::ScrollbarThemeMock::paintThumb):
     192        * platform/mock/ScrollbarThemeMock.h:
     193        (WebCore::ScrollbarThemeMock::hasButtons):
     194        (WebCore::ScrollbarThemeMock::hasThumb):
     195        (WebCore::ScrollbarThemeMock::backButtonRect):
     196        (WebCore::ScrollbarThemeMock::forwardButtonRect):
     197        (ScrollbarThemeMock):
     198        * platform/qt/ScrollbarThemeQt.cpp:
     199        (WebCore::styleOptionSlider):
     200        (WebCore::ScrollbarThemeQt::paint):
     201        (WebCore::ScrollbarThemeQt::hitTest):
     202        (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
     203        (WebCore::ScrollbarThemeQt::invalidatePart):
     204        (WebCore::ScrollbarThemeQt::thumbPosition):
     205        (WebCore::ScrollbarThemeQt::thumbLength):
     206        (WebCore::ScrollbarThemeQt::trackPosition):
     207        (WebCore::ScrollbarThemeQt::trackLength):
     208        * platform/qt/ScrollbarThemeQt.h:
     209        (ScrollbarThemeQt):
     210        * platform/win/ScrollbarThemeSafari.cpp:
     211        (WebCore::ScrollbarThemeSafari::hasButtons):
     212        (WebCore::ScrollbarThemeSafari::hasThumb):
     213        (WebCore::ScrollbarThemeSafari::backButtonRect):
     214        (WebCore::ScrollbarThemeSafari::forwardButtonRect):
     215        (WebCore::ScrollbarThemeSafari::trackRect):
     216        (WebCore::ScrollbarThemeSafari::minimumThumbLength):
     217        (WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
     218        (WebCore::ScrollbarThemeSafari::paintTrackBackground):
     219        (WebCore::ScrollbarThemeSafari::paintButton):
     220        (WebCore::ScrollbarThemeSafari::paintThumb):
     221        * platform/win/ScrollbarThemeSafari.h:
     222        (ScrollbarThemeSafari):
     223        * platform/win/ScrollbarThemeWin.cpp:
     224        (WebCore::ScrollbarThemeWin::hasThumb):
     225        (WebCore::ScrollbarThemeWin::backButtonRect):
     226        (WebCore::ScrollbarThemeWin::forwardButtonRect):
     227        (WebCore::ScrollbarThemeWin::trackRect):
     228        (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
     229        (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
     230        (WebCore::ScrollbarThemeWin::paintTrackBackground):
     231        (WebCore::ScrollbarThemeWin::paintTrackPiece):
     232        (WebCore::ScrollbarThemeWin::paintButton):
     233        (WebCore::paintGripper):
     234        (WebCore::ScrollbarThemeWin::paintThumb):
     235        * platform/win/ScrollbarThemeWin.h:
     236        (WebCore::ScrollbarThemeWin::hasButtons):
     237        (ScrollbarThemeWin):
     238        * platform/wx/ScrollbarThemeWx.cpp:
     239        (WebCore::ScrollbarThemeWx::hasThumb):
     240        (WebCore::ScrollbarThemeWx::minimumThumbLength):
     241        (WebCore::ScrollbarThemeWx::buttonSize):
     242        (WebCore::ScrollbarThemeWx::splitTrack):
     243        (WebCore::ScrollbarThemeWx::backButtonRect):
     244        (WebCore::ScrollbarThemeWx::forwardButtonRect):
     245        (WebCore::ScrollbarThemeWx::trackRect):
     246        (WebCore::ScrollbarThemeWx::paint):
     247        * platform/wx/ScrollbarThemeWx.h:
     248        (ScrollbarThemeWx):
     249        (WebCore::ScrollbarThemeWx::hasButtons):
     250        * rendering/RenderScrollbar.h:
     251        (WebCore::toRenderScrollbar):
     252        * rendering/RenderScrollbarTheme.cpp:
     253        (WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
     254        (WebCore::RenderScrollbarTheme::hasButtons):
     255        (WebCore::RenderScrollbarTheme::hasThumb):
     256        (WebCore::RenderScrollbarTheme::minimumThumbLength):
     257        (WebCore::RenderScrollbarTheme::backButtonRect):
     258        (WebCore::RenderScrollbarTheme::forwardButtonRect):
     259        (WebCore::RenderScrollbarTheme::trackRect):
     260        (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
     261        (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
     262        (WebCore::RenderScrollbarTheme::paintTrackBackground):
     263        (WebCore::RenderScrollbarTheme::paintTrackPiece):
     264        (WebCore::RenderScrollbarTheme::paintButton):
     265        (WebCore::RenderScrollbarTheme::paintThumb):
     266        * rendering/RenderScrollbarTheme.h:
     267        (WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
     268        (WebCore::RenderScrollbarTheme::registerScrollbar):
     269        (WebCore::RenderScrollbarTheme::unregisterScrollbar):
     270        (RenderScrollbarTheme):
     271
    12722012-03-01  Luke Macpherson   <macpherson@chromium.org>
    2273
  • trunk/Source/WebCore/GNUmakefile.list.am

    r109319 r109451  
    33313331        Source/WebCore/platform/Scrollbar.cpp \
    33323332        Source/WebCore/platform/Scrollbar.h \
     3333        Source/WebCore/platform/ScrollbarThemeClient.h \
    33333334        Source/WebCore/platform/ScrollbarThemeComposite.cpp \
    33343335        Source/WebCore/platform/ScrollbarThemeComposite.h \
  • trunk/Source/WebCore/Target.pri

    r109346 r109451  
    22802280    platform/ScrollAnimator.h \
    22812281    platform/Scrollbar.h \
     2282    platform/ScrollbarThemeClient.h \
    22822283    platform/ScrollbarThemeComposite.h \
    22832284    platform/ScrollView.h \
  • trunk/Source/WebCore/WebCore.gypi

    r109319 r109451  
    292292            'platform/Scrollbar.h',
    293293            'platform/ScrollbarTheme.h',
     294            'platform/ScrollbarThemeClient.h',
    294295            'platform/SearchPopupMenu.h',
    295296            'platform/SharedBuffer.h',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r109319 r109451  
    2703527035                        </File>
    2703627036                        <File
     27037                                RelativePath="..\platform\ScrollbarThemeClient.h"
     27038                                >
     27039                        </File>
     27040                        <File
    2703727041                                RelativePath="..\platform\ScrollbarThemeComposite.cpp"
    2703827042                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r109319 r109451  
    56095609                C5E9B67710697E1300C7BB1A /* StorageEventDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C5E9B67610697E1300C7BB1A /* StorageEventDispatcher.cpp */; };
    56105610                C5EBDD84105EDDEC0056816F /* StorageEventDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = C5EBDD81105EDDEC0056816F /* StorageEventDispatcher.h */; };
     5611                C6B31B2E14F841FB0089F23F /* ScrollbarThemeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = C691614714F6EBA70046375C /* ScrollbarThemeClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
    56115612                C6D74AD509AA282E000B0A52 /* ModifySelectionListLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D74AD309AA282E000B0A52 /* ModifySelectionListLevel.h */; };
    56125613                C6D74AE409AA290A000B0A52 /* ModifySelectionListLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6D74AE309AA290A000B0A52 /* ModifySelectionListLevel.cpp */; };
     
    1260112602                C5F765B414E1D414006C899B /* PasteboardStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PasteboardStrategy.h; sourceTree = "<group>"; };
    1260212603                C5F765BA14E1ECF4006C899B /* PlatformPasteboardMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformPasteboardMac.mm; sourceTree = "<group>"; };
     12604                C691614714F6EBA70046375C /* ScrollbarThemeClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollbarThemeClient.h; sourceTree = "<group>"; };
    1260312605                C6D74AD309AA282E000B0A52 /* ModifySelectionListLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModifySelectionListLevel.h; sourceTree = "<group>"; };
    1260412606                C6D74AE309AA290A000B0A52 /* ModifySelectionListLevel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ModifySelectionListLevel.cpp; sourceTree = "<group>"; };
     
    1994019942                                BC7B2AF80450824100A8000F /* Scrollbar.h */,
    1994119943                                0FE71415142189FC00DB33BA /* ScrollbarTheme.cpp */,
     19944                                C691614714F6EBA70046375C /* ScrollbarThemeClient.h */,
    1994219945                                BC8B854A0E7C7F5600AB6984 /* ScrollbarTheme.h */,
    1994319946                                BC1402880E83680800319717 /* ScrollbarThemeComposite.cpp */,
     
    2371523718                                BCAE1FA712939DB7004CB026 /* ScrollAnimatorMac.h in Headers */,
    2371623719                                93F199B808245E59001E9ABC /* Scrollbar.h in Headers */,
     23720                                C6B31B2E14F841FB0089F23F /* ScrollbarThemeClient.h in Headers */,
    2371723721                                BC8B854B0E7C7F5600AB6984 /* ScrollbarTheme.h in Headers */,
    2371823722                                BC14028B0E83680800319717 /* ScrollbarThemeComposite.h in Headers */,
  • trunk/Source/WebCore/platform/Scrollbar.cpp

    r105006 r109451  
    113113}
    114114
     115ScrollbarOverlayStyle Scrollbar::scrollbarOverlayStyle() const
     116{
     117    return m_scrollableArea ? ScrollbarOverlayStyleDefault : m_scrollableArea->scrollbarOverlayStyle();
     118}
     119
     120void Scrollbar::getTickmarks(Vector<IntRect>& tickmarks) const
     121{
     122    if (m_scrollableArea)
     123        m_scrollableArea->getTickmarks(tickmarks);
     124}
     125
     126bool Scrollbar::isScrollableAreaActive() const
     127{
     128    return m_scrollableArea && m_scrollableArea->isActive();
     129}
     130
     131bool Scrollbar::isScrollViewScrollbar() const
     132{
     133    return parent() && parent()->isFrameView() && static_cast<FrameView*>(parent())->isScrollViewScrollbar(this);
     134}
     135
    115136void Scrollbar::offsetDidChange()
    116137{
     
    435456void Scrollbar::setFrameRect(const IntRect& rect)
    436457{
    437     // Get our window resizer rect and see if we overlap.  Adjust to avoid the overlap
     458    // Get our window resizer rect and see if we overlap. Adjust to avoid the overlap
    438459    // if necessary.
    439460    IntRect adjustedRect(rect);
  • trunk/Source/WebCore/platform/Scrollbar.h

    r108498 r109451  
    2727#define Scrollbar_h
    2828
     29#include "ScrollbarThemeClient.h"
    2930#include "ScrollTypes.h"
    3031#include "Timer.h"
     
    4142class ScrollbarTheme;
    4243
    43 class Scrollbar : public Widget {
     44class Scrollbar : public Widget,
     45                  public ScrollbarThemeClient {
     46
    4447public:
    4548    // Must be implemented by platforms that can't simply use the Scrollbar base class.  Right now the only platform that is not using the base class is GTK.
     
    4851    virtual ~Scrollbar();
    4952
     53    // ScrollbarThemeClient implementation.
     54    virtual int x() const { return Widget::x(); }
     55    virtual int y() const { return Widget::y(); }
     56    virtual int width() const { return Widget::width(); }
     57    virtual int height() const { return Widget::height(); }
     58    virtual IntSize size() const { return Widget::size(); }
     59    virtual IntPoint location() const { return Widget::location(); }
     60
     61    virtual ScrollView* parent() const { return Widget::parent(); }
     62    virtual ScrollView* root() const { return Widget::root(); }
     63
     64    virtual void setFrameRect(const IntRect&);
     65    virtual IntRect frameRect() const { return Widget::frameRect(); }
     66
     67    virtual void invalidate() { Widget::invalidate(); }
     68    virtual void invalidateRect(const IntRect&);
     69
     70    virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const;
     71    virtual void getTickmarks(Vector<IntRect>&) const;
     72    virtual bool isScrollableAreaActive() const;
     73    virtual bool isScrollViewScrollbar() const;
     74
     75    virtual IntPoint convertFromContainingWindow(const IntPoint& windowPoint) { return Widget::convertFromContainingWindow(windowPoint); }
     76
     77    virtual bool isCustomScrollbar() const { return false; }
     78    virtual ScrollbarOrientation orientation() const { return m_orientation; }
     79
     80    virtual int value() const { return lroundf(m_currentPos); }
     81    virtual float currentPos() const { return m_currentPos; }
     82    virtual int visibleSize() const { return m_visibleSize; }
     83    virtual int totalSize() const { return m_totalSize; }
     84    virtual int maximum() const { return m_totalSize - m_visibleSize; }
     85    virtual ScrollbarControlSize controlSize() const { return m_controlSize; }
     86
     87    virtual int lineStep() const { return m_lineStep; }
     88    virtual int pageStep() const { return m_pageStep; }
     89
     90    virtual ScrollbarPart pressedPart() const { return m_pressedPart; }
     91    virtual ScrollbarPart hoveredPart() const { return m_hoveredPart; }
     92
     93    virtual void styleChanged() { }
     94
     95    virtual bool enabled() const { return m_enabled; }
     96    virtual void setEnabled(bool);
     97
    5098    // Called by the ScrollableArea when the scroll offset changes.
    5199    void offsetDidChange();
     
    58106    ScrollableArea* scrollableArea() const { return m_scrollableArea; }
    59107
    60     virtual bool isCustomScrollbar() const { return false; }
    61     ScrollbarOrientation orientation() const { return m_orientation; }
    62 
    63     int value() const { return lroundf(m_currentPos); }
    64     float currentPos() const { return m_currentPos; }
    65108    int pressedPos() const { return m_pressedPos; }
    66     int visibleSize() const { return m_visibleSize; }
    67     int totalSize() const { return m_totalSize; }
    68     int maximum() const { return m_totalSize - m_visibleSize; }       
    69     ScrollbarControlSize controlSize() const { return m_controlSize; }
    70 
    71     int lineStep() const { return m_lineStep; }
    72     int pageStep() const { return m_pageStep; }
     109
    73110    float pixelStep() const { return m_pixelStep; }
    74111
    75     ScrollbarPart pressedPart() const { return m_pressedPart; }
    76     ScrollbarPart hoveredPart() const { return m_hoveredPart; }
    77112    virtual void setHoveredPart(ScrollbarPart);
    78113    virtual void setPressedPart(ScrollbarPart);
     
    81116    void setProportion(int visibleSize, int totalSize);
    82117    void setPressedPos(int p) { m_pressedPos = p; }
    83    
     118
    84119    virtual void paint(GraphicsContext*, const IntRect& damageRect);
    85 
    86     bool enabled() const { return m_enabled; }
    87     virtual void setEnabled(bool e);
    88120
    89121    virtual bool isOverlayScrollbar() const;
     
    98130    void mouseEntered();
    99131    bool mouseExited();
    100    
     132
    101133    // Used by some platform scrollbars to know when they've been released from capture.
    102134    bool mouseUp(const PlatformMouseEvent&);
     
    107139
    108140    virtual void setParent(ScrollView*);
    109     virtual void setFrameRect(const IntRect&);
    110 
    111     virtual void invalidateRect(const IntRect&);
    112    
     141
    113142    bool suppressInvalidation() const { return m_suppressInvalidation; }
    114143    void setSuppressInvalidation(bool s) { m_suppressInvalidation = s; }
    115144
    116     virtual void styleChanged() { }
    117 
    118145    virtual IntRect convertToContainingView(const IntRect&) const;
    119146    virtual IntRect convertFromContainingView(const IntRect&) const;
    120    
     147
    121148    virtual IntPoint convertToContainingView(const IntPoint&) const;
    122149    virtual IntPoint convertFromContainingView(const IntPoint&) const;
     
    161188    Timer<Scrollbar> m_scrollTimer;
    162189    bool m_overlapsResizer;
    163    
     190
    164191    bool m_suppressInvalidation;
    165192
  • trunk/Source/WebCore/platform/ScrollbarTheme.h

    r107119 r109451  
    3434
    3535class PlatformMouseEvent;
    36 class Scrollbar;
     36class ScrollbarThemeClient;
    3737class ScrollView;
    3838
     
    4747    virtual ~ScrollbarTheme() {};
    4848
    49     virtual void updateEnabledState(Scrollbar*) { };
     49    virtual void updateEnabledState(ScrollbarThemeClient*) { };
    5050
    51     virtual bool paint(Scrollbar*, GraphicsContext*, const IntRect& /*damageRect*/) { return false; }
    52     virtual ScrollbarPart hitTest(Scrollbar*, const PlatformMouseEvent&) { return NoPart; }
     51    virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& /*damageRect*/) { return false; }
     52    virtual ScrollbarPart hitTest(ScrollbarThemeClient*, const PlatformMouseEvent&) { return NoPart; }
    5353   
    5454    virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar) { return 0; }
     
    5858    virtual bool supportsControlTints() const { return false; }
    5959    virtual bool usesOverlayScrollbars() const { return false; }
    60     virtual void updateScrollbarOverlayStyle(Scrollbar*) { }
     60    virtual void updateScrollbarOverlayStyle(ScrollbarThemeClient*) { }
    6161
    6262    virtual void themeChanged() {}
     
    6464    virtual bool invalidateOnMouseEnterExit() { return false; }
    6565
    66     void invalidateParts(Scrollbar* scrollbar, ScrollbarControlPartMask mask)
     66    void invalidateParts(ScrollbarThemeClient* scrollbar, ScrollbarControlPartMask mask)
    6767    {
    6868        if (mask & BackButtonStartPart)
     
    8282    }
    8383
    84     virtual void invalidatePart(Scrollbar*, ScrollbarPart) {}
     84    virtual void invalidatePart(ScrollbarThemeClient*, ScrollbarPart) { }
    8585
    8686    virtual void paintScrollCorner(ScrollView*, GraphicsContext* context, const IntRect& cornerRect) { defaultPaintScrollCorner(context, cornerRect); }
     
    9494#endif
    9595
    96     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&) { return false; }
    97     virtual bool shouldSnapBackToDragOrigin(Scrollbar*, const PlatformMouseEvent&) { return false; }
    98     virtual bool shouldDragDocumentInsteadOfThumb(Scrollbar*, const PlatformMouseEvent&) { return false; }
    99     virtual int thumbPosition(Scrollbar*) { return 0; } // The position of the thumb relative to the track.
    100     virtual int thumbLength(Scrollbar*) { return 0; } // The length of the thumb along the axis of the scrollbar.
    101     virtual int trackPosition(Scrollbar*) { return 0; } // The position of the track relative to the scrollbar.
    102     virtual int trackLength(Scrollbar*) { return 0; } // The length of the track along the axis of the scrollbar.
     96    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&) { return false; }
     97    virtual bool shouldSnapBackToDragOrigin(ScrollbarThemeClient*, const PlatformMouseEvent&) { return false; }
     98    virtual bool shouldDragDocumentInsteadOfThumb(ScrollbarThemeClient*, const PlatformMouseEvent&) { return false; }
     99    virtual int thumbPosition(ScrollbarThemeClient*) { return 0; } // The position of the thumb relative to the track.
     100    virtual int thumbLength(ScrollbarThemeClient*) { return 0; } // The length of the thumb along the axis of the scrollbar.
     101    virtual int trackPosition(ScrollbarThemeClient*) { return 0; } // The position of the track relative to the scrollbar.
     102    virtual int trackLength(ScrollbarThemeClient*) { return 0; } // The length of the track along the axis of the scrollbar.
    103103
    104104    virtual int maxOverlapBetweenPages() { return std::numeric_limits<int>::max(); }
     
    107107    virtual double autoscrollTimerDelay() { return 0.05; }
    108108
    109     virtual void registerScrollbar(Scrollbar*) {}
    110     virtual void unregisterScrollbar(Scrollbar*) {}
     109    virtual void registerScrollbar(ScrollbarThemeClient*) { }
     110    virtual void unregisterScrollbar(ScrollbarThemeClient*) { }
    111111
    112112    virtual bool isMockTheme() const { return false; }
  • trunk/Source/WebCore/platform/ScrollbarThemeComposite.cpp

    r108541 r109451  
    3434#include "Page.h"
    3535#include "PlatformMouseEvent.h"
    36 #include "Scrollbar.h"
    37 #include "ScrollableArea.h"
     36#include "ScrollbarThemeClient.h"
    3837#include "Settings.h"
    3938
     
    4241namespace WebCore {
    4342
    44 bool ScrollbarThemeComposite::paint(Scrollbar* scrollbar, GraphicsContext* graphicsContext, const IntRect& damageRect)
     43bool ScrollbarThemeComposite::paint(ScrollbarThemeClient* scrollbar, GraphicsContext* graphicsContext, const IntRect& damageRect)
    4544{
    4645    // Create the ScrollbarControlPartMask based on the damageRect
     
    117116}
    118117
    119 ScrollbarPart ScrollbarThemeComposite::hitTest(Scrollbar* scrollbar, const PlatformMouseEvent& evt)
     118ScrollbarPart ScrollbarThemeComposite::hitTest(ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& evt)
    120119{
    121120    ScrollbarPart result = NoPart;
     
    156155}
    157156
    158 void ScrollbarThemeComposite::invalidatePart(Scrollbar* scrollbar, ScrollbarPart part)
     157void ScrollbarThemeComposite::invalidatePart(ScrollbarThemeClient* scrollbar, ScrollbarPart part)
    159158{
    160159    if (part == NoPart)
     
    196195}
    197196
    198 void ScrollbarThemeComposite::splitTrack(Scrollbar* scrollbar, const IntRect& unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& afterThumbRect)
     197void ScrollbarThemeComposite::splitTrack(ScrollbarThemeClient* scrollbar, const IntRect& unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& afterThumbRect)
    199198{
    200199    // This function won't even get called unless we're big enough to have some combination of these three rects where at least
     
    216215// Returns the size represented by track taking into account scrolling past
    217216// the end of the document.
    218 static float usedTotalSize(Scrollbar* scrollbar)
     217static float usedTotalSize(ScrollbarThemeClient* scrollbar)
    219218{
    220219    float overhangAtStart = -scrollbar->currentPos();
     
    224223}
    225224
    226 int ScrollbarThemeComposite::thumbPosition(Scrollbar* scrollbar)
     225int ScrollbarThemeComposite::thumbPosition(ScrollbarThemeClient* scrollbar)
    227226{
    228227    if (scrollbar->enabled()) {
     
    237236}
    238237
    239 int ScrollbarThemeComposite::thumbLength(Scrollbar* scrollbar)
     238int ScrollbarThemeComposite::thumbLength(ScrollbarThemeClient* scrollbar)
    240239{
    241240    if (!scrollbar->enabled())
     
    251250}
    252251
    253 int ScrollbarThemeComposite::minimumThumbLength(Scrollbar* scrollbar)
     252int ScrollbarThemeComposite::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    254253{
    255254    return scrollbarThickness(scrollbar->controlSize());
    256255}
    257256
    258 int ScrollbarThemeComposite::trackPosition(Scrollbar* scrollbar)
     257int ScrollbarThemeComposite::trackPosition(ScrollbarThemeClient* scrollbar)
    259258{
    260259    IntRect constrainedTrackRect = constrainTrackRectToTrackPieces(scrollbar, trackRect(scrollbar));
     
    262261}
    263262
    264 int ScrollbarThemeComposite::trackLength(Scrollbar* scrollbar)
     263int ScrollbarThemeComposite::trackLength(ScrollbarThemeClient* scrollbar)
    265264{
    266265    IntRect constrainedTrackRect = constrainTrackRectToTrackPieces(scrollbar, trackRect(scrollbar));
  • trunk/Source/WebCore/platform/ScrollbarThemeComposite.h

    r95901 r109451  
    3333class ScrollbarThemeComposite : public ScrollbarTheme {
    3434public:
    35     virtual bool paint(Scrollbar*, GraphicsContext* context, const IntRect& damageRect);
     35    virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& damageRect);
    3636
    37     virtual ScrollbarPart hitTest(Scrollbar*, const PlatformMouseEvent&);
     37    virtual ScrollbarPart hitTest(ScrollbarThemeClient*, const PlatformMouseEvent&);
    3838
    39     virtual void invalidatePart(Scrollbar*, ScrollbarPart);
     39    virtual void invalidatePart(ScrollbarThemeClient*, ScrollbarPart);
    4040
    41     virtual int thumbPosition(Scrollbar*);
    42     virtual int thumbLength(Scrollbar*);
    43     virtual int trackPosition(Scrollbar*);
    44     virtual int trackLength(Scrollbar*);
     41    virtual int thumbPosition(ScrollbarThemeClient*);
     42    virtual int thumbLength(ScrollbarThemeClient*);
     43    virtual int trackPosition(ScrollbarThemeClient*);
     44    virtual int trackLength(ScrollbarThemeClient*);
    4545
    4646    virtual void paintScrollCorner(ScrollView*, GraphicsContext*, const IntRect& cornerRect);
     
    4848
    4949protected:
    50     virtual bool hasButtons(Scrollbar*) = 0;
    51     virtual bool hasThumb(Scrollbar*) = 0;
     50    virtual bool hasButtons(ScrollbarThemeClient*) = 0;
     51    virtual bool hasThumb(ScrollbarThemeClient*) = 0;
    5252
    53     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false) = 0;
    54     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false) = 0;
    55     virtual IntRect trackRect(Scrollbar*, bool painting = false) = 0;
     53    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false) = 0;
     54    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false) = 0;
     55    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false) = 0;
    5656
    57     virtual void splitTrack(Scrollbar*, const IntRect& track, IntRect& startTrack, IntRect& thumb, IntRect& endTrack);
     57    virtual void splitTrack(ScrollbarThemeClient*, const IntRect& track, IntRect& startTrack, IntRect& thumb, IntRect& endTrack);
    5858   
    59     virtual int minimumThumbLength(Scrollbar*);
     59    virtual int minimumThumbLength(ScrollbarThemeClient*);
    6060
    61     virtual void paintScrollbarBackground(GraphicsContext*, Scrollbar*) {}
    62     virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&) {}
    63     virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart) {}
    64     virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart) {}
    65     virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&) {}
    66     virtual void paintTickmarks(GraphicsContext*, Scrollbar*, const IntRect&) {}
     61    virtual void paintScrollbarBackground(GraphicsContext*, ScrollbarThemeClient*) { }
     62    virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&) { }
     63    virtual void paintTrackPiece(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart) { }
     64    virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart) { }
     65    virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&) { }
     66    virtual void paintTickmarks(GraphicsContext*, ScrollbarThemeClient*, const IntRect&) { }
    6767
    68     virtual IntRect constrainTrackRectToTrackPieces(Scrollbar*, const IntRect& rect) { return rect; }
     68    virtual IntRect constrainTrackRectToTrackPieces(ScrollbarThemeClient*, const IntRect& rect) { return rect; }
    6969};
    7070
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromium.cpp

    r100070 r109451  
    4040namespace WebCore {
    4141
    42 bool ScrollbarThemeChromium::hasThumb(Scrollbar* scrollbar)
     42bool ScrollbarThemeChromium::hasThumb(ScrollbarThemeClient* scrollbar)
    4343{
    4444    // This method is just called as a paint-time optimization to see if
     
    4747}
    4848
    49 IntRect ScrollbarThemeChromium::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     49IntRect ScrollbarThemeChromium::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    5050{
    5151    // Windows and Linux just have single arrows.
     
    5757}
    5858
    59 IntRect ScrollbarThemeChromium::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     59IntRect ScrollbarThemeChromium::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    6060{
    6161    // Windows and Linux just have single arrows.
     
    7575}
    7676
    77 IntRect ScrollbarThemeChromium::trackRect(Scrollbar* scrollbar, bool)
     77IntRect ScrollbarThemeChromium::trackRect(ScrollbarThemeClient* scrollbar, bool)
    7878{
    7979    IntSize bs = buttonSize(scrollbar);
     
    9393}
    9494
    95 void ScrollbarThemeChromium::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     95void ScrollbarThemeChromium::paintTrackBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    9696{
    9797    // Just assume a forward track part.  We only paint the track as a single piece when there is no thumb.
     
    100100}
    101101
    102 void ScrollbarThemeChromium::paintTickmarks(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     102void ScrollbarThemeChromium::paintTickmarks(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    103103{
    104104    if (scrollbar->orientation() != VerticalScrollbar)
     
    110110    // Get the tickmarks for the frameview.
    111111    Vector<IntRect> tickmarks;
    112     scrollbar->scrollableArea()->getTickmarks(tickmarks);
     112    scrollbar->getTickmarks(tickmarks);
    113113    if (!tickmarks.size())
    114114        return;
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromium.h

    r95901 r109451  
    4242    class ScrollbarThemeChromium : public ScrollbarThemeComposite {
    4343    protected:
    44         virtual bool hasButtons(Scrollbar*) { return true; }
    45         virtual bool hasThumb(Scrollbar*);
     44        virtual bool hasButtons(ScrollbarThemeClient*) { return true; }
     45        virtual bool hasThumb(ScrollbarThemeClient*);
    4646
    47         virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    48         virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    49         virtual IntRect trackRect(Scrollbar*, bool painting = false);
     47        virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     48        virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     49        virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    5050
    51         virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
    52         virtual void paintTickmarks(GraphicsContext*, Scrollbar*, const IntRect&);
     51        virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     52        virtual void paintTickmarks(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
    5353
    54         virtual IntSize buttonSize(Scrollbar*) = 0;
     54        virtual IntSize buttonSize(ScrollbarThemeClient*) = 0;
    5555    };
    5656} // namespace WebCore
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumAndroid.cpp

    r104139 r109451  
    5858}
    5959
    60 void ScrollbarThemeChromiumAndroid::paintScrollbarBackground(GraphicsContext* context, Scrollbar* scrollbar)
     60void ScrollbarThemeChromiumAndroid::paintScrollbarBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar)
    6161{
    6262    // Paint black background in DumpRenderTree, otherwise the pixels in the scrollbar area depend
     
    6666}
    6767
    68 bool ScrollbarThemeChromiumAndroid::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     68bool ScrollbarThemeChromiumAndroid::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    6969{
    7070    return true;
    7171}
    7272
    73 IntSize ScrollbarThemeChromiumAndroid::buttonSize(Scrollbar* scrollbar)
     73IntSize ScrollbarThemeChromiumAndroid::buttonSize(ScrollbarThemeClient* scrollbar)
    7474{
    7575    if (scrollbar->orientation() == VerticalScrollbar)
     
    7979}
    8080
    81 int ScrollbarThemeChromiumAndroid::minimumThumbLength(Scrollbar* scrollbar)
     81int ScrollbarThemeChromiumAndroid::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    8282{
    8383    return 2 * scrollbarThickness(scrollbar->controlSize());
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumAndroid.h

    r104139 r109451  
    3636
    3737protected:
    38     virtual void paintScrollbarBackground(GraphicsContext*, Scrollbar*);
    39     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
    40     virtual IntSize buttonSize(Scrollbar*);
    41     virtual int minimumThumbLength(Scrollbar*);
     38    virtual void paintScrollbarBackground(GraphicsContext*, ScrollbarThemeClient*);
     39    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
     40    virtual IntSize buttonSize(ScrollbarThemeClient*);
     41    virtual int minimumThumbLength(ScrollbarThemeClient*);
    4242};
    4343
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp

    r100070 r109451  
    5151}
    5252
    53 void ScrollbarThemeChromiumLinux::paintTrackPiece(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart partType)
     53void ScrollbarThemeChromiumLinux::paintTrackPiece(GraphicsContext* gc, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart partType)
    5454{
    5555    PlatformSupport::ThemePaintState state = scrollbar->hoveredPart() == partType ? PlatformSupport::StateHover : PlatformSupport::StateNormal;
     
    6868}
    6969
    70 void ScrollbarThemeChromiumLinux::paintButton(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     70void ScrollbarThemeChromiumLinux::paintButton(GraphicsContext* gc, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    7171{
    7272    PlatformSupport::ThemePart paintPart;
     
    103103}
    104104
    105 void ScrollbarThemeChromiumLinux::paintThumb(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect)
     105void ScrollbarThemeChromiumLinux::paintThumb(GraphicsContext* gc, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    106106{
    107107    PlatformSupport::ThemePaintState state;
     
    121121}
    122122
    123 bool ScrollbarThemeChromiumLinux::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     123bool ScrollbarThemeChromiumLinux::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    124124{
    125125    return (evt.shiftKey() && evt.button() == LeftButton) || (evt.button() == MiddleButton);
    126126}
    127127
    128 IntSize ScrollbarThemeChromiumLinux::buttonSize(Scrollbar* scrollbar)
     128IntSize ScrollbarThemeChromiumLinux::buttonSize(ScrollbarThemeClient* scrollbar)
    129129{
    130130    if (scrollbar->orientation() == VerticalScrollbar) {
     
    138138}
    139139
    140 int ScrollbarThemeChromiumLinux::minimumThumbLength(Scrollbar* scrollbar)
     140int ScrollbarThemeChromiumLinux::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    141141{
    142142    if (scrollbar->orientation() == VerticalScrollbar) {
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h

    r95901 r109451  
    4040
    4141    protected:
    42         virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    43         virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    44         virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
    45         virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
    46         virtual IntSize buttonSize(Scrollbar*);
    47         virtual int minimumThumbLength(Scrollbar*);
     42        virtual void paintTrackPiece(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     43        virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     44        virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     45        virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
     46        virtual IntSize buttonSize(ScrollbarThemeClient*);
     47        virtual int minimumThumbLength(ScrollbarThemeClient*);
    4848    };
    4949} // namespace WebCore
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumMac.h

    r103354 r109451  
    3737    virtual ~ScrollbarThemeChromiumMac();
    3838
    39     virtual bool paint(Scrollbar*, GraphicsContext* context, const IntRect& damageRect);
     39    virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& damageRect);
    4040
    4141    virtual void paintOverhangAreas(ScrollView*, GraphicsContext*, const IntRect& horizontalOverhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect);
    4242   
    4343private:
    44     void paintGivenTickmarks(GraphicsContext*, Scrollbar*, const IntRect&, const Vector<IntRect>&);
     44    void paintGivenTickmarks(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, const Vector<IntRect>&);
    4545
    4646    RefPtr<Pattern> m_overhangPattern;
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumMac.mm

    r103354 r109451  
    6262}
    6363
    64 static PlatformSupport::ThemePaintState scrollbarStateToThemeState(Scrollbar* scrollbar)
     64static PlatformSupport::ThemePaintState scrollbarStateToThemeState(ScrollbarThemeClient* scrollbar)
    6565{
    6666    if (!scrollbar->enabled())
    6767        return PlatformSupport::StateDisabled;
    68     if (!scrollbar->scrollableArea()->isActive())
     68    if (!scrollbar->isScrollableAreaActive())
    6969        return PlatformSupport::StateInactive;
    7070    if (scrollbar->pressedPart() == ThumbPart)
     
    9595//     - drawing tickmarks
    9696//     - Skia specific changes
    97 bool ScrollbarThemeChromiumMac::paint(Scrollbar* scrollbar, GraphicsContext* context, const IntRect& damageRect)
     97bool ScrollbarThemeChromiumMac::paint(ScrollbarThemeClient* scrollbar, GraphicsContext* context, const IntRect& damageRect)
    9898{
    9999    // Get the tickmarks for the frameview.
    100100    Vector<IntRect> tickmarks;
    101     scrollbar->scrollableArea()->getTickmarks(tickmarks);
     101    scrollbar->getTickmarks(tickmarks);
    102102
    103103    if (isScrollbarOverlayAPIAvailable()) {
     
    189189        trackInfo.enableState = kThemeTrackDisabled;
    190190    else
    191         trackInfo.enableState = scrollbar->scrollableArea()->isActive() ? kThemeTrackActive : kThemeTrackInactive;
     191        trackInfo.enableState = scrollbar->isScrollableAreaActive() ? kThemeTrackActive : kThemeTrackInactive;
    192192
    193193    if (!hasButtons(scrollbar))
     
    244244        PlatformSupport::ThemePaintScrollbarInfo scrollbarInfo;
    245245        scrollbarInfo.orientation = scrollbar->orientation() == HorizontalScrollbar ? PlatformSupport::ScrollbarOrientationHorizontal : PlatformSupport::ScrollbarOrientationVertical;
    246         scrollbarInfo.parent = scrollbar->parent() && scrollbar->parent()->isFrameView() && static_cast<FrameView*>(scrollbar->parent())->isScrollViewScrollbar(scrollbar) ? PlatformSupport::ScrollbarParentScrollView : PlatformSupport::ScrollbarParentRenderLayer;
     246        scrollbarInfo.parent = scrollbar->isScrollViewScrollbar() ? PlatformSupport::ScrollbarParentScrollView : PlatformSupport::ScrollbarParentRenderLayer;
    247247        scrollbarInfo.maxValue = scrollbar->maximum();
    248248        scrollbarInfo.currentValue = scrollbar->currentPos();
     
    264264}
    265265
    266 void ScrollbarThemeChromiumMac::paintGivenTickmarks(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, const Vector<IntRect>& tickmarks)
     266void ScrollbarThemeChromiumMac::paintGivenTickmarks(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, const Vector<IntRect>& tickmarks)
    267267{
    268268    if (scrollbar->orientation() != VerticalScrollbar)
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumWin.cpp

    r103297 r109451  
    7474}
    7575
    76 bool ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin(Scrollbar* scrollbar, const PlatformMouseEvent& evt)
     76bool ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin(ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& evt)
    7777{
    7878    // Find the rect within which we shouldn't snap, by expanding the track rect
     
    9292}
    9393
    94 void ScrollbarThemeChromiumWin::paintTrackPiece(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart partType)
     94void ScrollbarThemeChromiumWin::paintTrackPiece(GraphicsContext* gc, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart partType)
    9595{
    9696    bool horz = scrollbar->orientation() == HorizontalScrollbar;
     
    114114}
    115115
    116 void ScrollbarThemeChromiumWin::paintButton(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     116void ScrollbarThemeChromiumWin::paintButton(GraphicsContext* gc, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    117117{
    118118    bool horz = scrollbar->orientation() == HorizontalScrollbar;
     
    132132}
    133133
    134 void ScrollbarThemeChromiumWin::paintThumb(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect)
     134void ScrollbarThemeChromiumWin::paintThumb(GraphicsContext* gc, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    135135{
    136136    bool horz = scrollbar->orientation() == HorizontalScrollbar;
     
    153153}
    154154
    155 int ScrollbarThemeChromiumWin::getThemeState(Scrollbar* scrollbar, ScrollbarPart part) const
     155int ScrollbarThemeChromiumWin::getThemeState(ScrollbarThemeClient* scrollbar, ScrollbarPart part) const
    156156{
    157157    // When dragging the thumb, draw thumb pressed and other segments normal
     
    172172}
    173173
    174 int ScrollbarThemeChromiumWin::getThemeArrowState(Scrollbar* scrollbar, ScrollbarPart part) const
     174int ScrollbarThemeChromiumWin::getThemeArrowState(ScrollbarThemeClient* scrollbar, ScrollbarPart part) const
    175175{
    176176    // We could take advantage of knowing the values in the state enum to write
     
    222222}
    223223
    224 int ScrollbarThemeChromiumWin::getClassicThemeState(Scrollbar* scrollbar, ScrollbarPart part) const
     224int ScrollbarThemeChromiumWin::getClassicThemeState(ScrollbarThemeClient* scrollbar, ScrollbarPart part) const
    225225{
    226226    // When dragging the thumb, draw the buttons normal even when hovered.
     
    236236}
    237237
    238 bool ScrollbarThemeChromiumWin::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     238bool ScrollbarThemeChromiumWin::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    239239{
    240240    return evt.shiftKey() && evt.button() == LeftButton;
    241241}
    242242
    243 IntSize ScrollbarThemeChromiumWin::buttonSize(Scrollbar* scrollbar)
     243IntSize ScrollbarThemeChromiumWin::buttonSize(ScrollbarThemeClient* scrollbar)
    244244{
    245245    // Our desired rect is essentially thickness by thickness.
  • trunk/Source/WebCore/platform/chromium/ScrollbarThemeChromiumWin.h

    r95901 r109451  
    3939        virtual int scrollbarThickness(ScrollbarControlSize);
    4040        virtual bool invalidateOnMouseEnterExit();
    41         virtual bool shouldSnapBackToDragOrigin(Scrollbar*, const PlatformMouseEvent&);
     41        virtual bool shouldSnapBackToDragOrigin(ScrollbarThemeClient*, const PlatformMouseEvent&);
    4242
    4343    protected:
    44         virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    45         virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    46         virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
    47         virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
    48         virtual IntSize buttonSize(Scrollbar*);
     44        virtual void paintTrackPiece(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     45        virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     46        virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     47        virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
     48        virtual IntSize buttonSize(ScrollbarThemeClient*);
    4949
    5050    private:
    51         int getThemeState(Scrollbar*, ScrollbarPart) const;
    52         int getThemeArrowState(Scrollbar*, ScrollbarPart) const;
    53         int getClassicThemeState(Scrollbar*, ScrollbarPart) const;
     51        int getThemeState(ScrollbarThemeClient*, ScrollbarPart) const;
     52        int getThemeArrowState(ScrollbarThemeClient*, ScrollbarPart) const;
     53        int getClassicThemeState(ScrollbarThemeClient*, ScrollbarPart) const;
    5454    };
    5555} // namespace WebCore
  • trunk/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp

    r95901 r109451  
    5050}
    5151
    52 void ScrollbarThemeEfl::registerScrollbar(Scrollbar* scrollbar)
     52void ScrollbarThemeEfl::registerScrollbar(ScrollbarThemeClient* scrollbar)
    5353{
    5454}
    5555
    56 void ScrollbarThemeEfl::unregisterScrollbar(Scrollbar* scrollbar)
     56void ScrollbarThemeEfl::unregisterScrollbar(ScrollbarThemeClient* scrollbar)
    5757{
    5858}
  • trunk/Source/WebCore/platform/efl/ScrollbarThemeEfl.h

    r95901 r109451  
    4040    virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar);
    4141
    42     virtual void registerScrollbar(Scrollbar* scrollbar);
    43     virtual void unregisterScrollbar(Scrollbar* scrollbar);
     42    virtual void registerScrollbar(ScrollbarThemeClient*);
     43    virtual void unregisterScrollbar(ScrollbarThemeClient*);
    4444};
    4545
  • trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp

    r105660 r109451  
    3434namespace WebCore {
    3535
    36 static HashSet<Scrollbar*>* gScrollbars;
     36static HashSet<ScrollbarThemeClient*>* gScrollbars;
    3737
    3838ScrollbarTheme* ScrollbarTheme::nativeTheme()
     
    4646}
    4747
    48 void ScrollbarThemeGtk::registerScrollbar(Scrollbar* scrollbar)
     48void ScrollbarThemeGtk::registerScrollbar(ScrollbarThemeClient* scrollbar)
    4949{
    5050    if (!gScrollbars)
    51         gScrollbars = new HashSet<Scrollbar*>;
     51        gScrollbars = new HashSet<ScrollbarThemeClient*>;
    5252    gScrollbars->add(scrollbar);
    5353}
    5454
    55 void ScrollbarThemeGtk::unregisterScrollbar(Scrollbar* scrollbar)
     55void ScrollbarThemeGtk::unregisterScrollbar(ScrollbarThemeClient* scrollbar)
    5656{
    5757    gScrollbars->remove(scrollbar);
     
    7070    // platform-independent scrollbar them code isn't yet smart enough to get
    7171    // this information when it paints.
    72     HashSet<Scrollbar*>::iterator end = gScrollbars->end();
    73     for (HashSet<Scrollbar*>::iterator it = gScrollbars->begin(); it != end; ++it) {
    74         Scrollbar* scrollbar = (*it);
     72    HashSet<ScrollbarThemeClient*>::iterator end = gScrollbars->end();
     73    for (HashSet<ScrollbarThemeClient*>::iterator it = gScrollbars->begin(); it != end; ++it) {
     74        ScrollbarThemeClient* scrollbar = (*it);
    7575
    7676        // Top-level scrollbar i.e. scrollbars who have a parent ScrollView
     
    8787}
    8888
    89 bool ScrollbarThemeGtk::hasThumb(Scrollbar* scrollbar)
     89bool ScrollbarThemeGtk::hasThumb(ScrollbarThemeClient* scrollbar)
    9090{
    9191    // This method is just called as a paint-time optimization to see if
     
    9494}
    9595
    96 IntRect ScrollbarThemeGtk::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     96IntRect ScrollbarThemeGtk::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    9797{
    9898    if (part == BackButtonEndPart && !m_hasBackButtonEndPart)
     
    115115}
    116116
    117 IntRect ScrollbarThemeGtk::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     117IntRect ScrollbarThemeGtk::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    118118{
    119119    if (part == ForwardButtonStartPart && !m_hasForwardButtonStartPart)
     
    141141}
    142142
    143 IntRect ScrollbarThemeGtk::trackRect(Scrollbar* scrollbar, bool)
     143IntRect ScrollbarThemeGtk::trackRect(ScrollbarThemeClient* scrollbar, bool)
    144144{
    145145    // The padding along the thumb movement axis includes the trough border
     
    181181}
    182182
    183 IntRect ScrollbarThemeGtk::thumbRect(Scrollbar* scrollbar, const IntRect& unconstrainedTrackRect)
     183IntRect ScrollbarThemeGtk::thumbRect(ScrollbarThemeClient* scrollbar, const IntRect& unconstrainedTrackRect)
    184184{
    185185    IntRect trackRect = constrainTrackRectToTrackPieces(scrollbar, unconstrainedTrackRect);
     
    192192}
    193193
    194 bool ScrollbarThemeGtk::paint(Scrollbar* scrollbar, GraphicsContext* graphicsContext, const IntRect& damageRect)
     194bool ScrollbarThemeGtk::paint(ScrollbarThemeClient* scrollbar, GraphicsContext* graphicsContext, const IntRect& damageRect)
    195195{
    196196    if (graphicsContext->paintingDisabled())
     
    261261}
    262262
    263 bool ScrollbarThemeGtk::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& event)
     263bool ScrollbarThemeGtk::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& event)
    264264{
    265265    return (event.shiftKey() && event.button() == LeftButton) || (event.button() == MiddleButton);
     
    271271}
    272272
    273 IntSize ScrollbarThemeGtk::buttonSize(Scrollbar* scrollbar)
     273IntSize ScrollbarThemeGtk::buttonSize(ScrollbarThemeClient* scrollbar)
    274274{
    275275    if (scrollbar->orientation() == VerticalScrollbar)
     
    280280}
    281281
    282 int ScrollbarThemeGtk::minimumThumbLength(Scrollbar* scrollbar)
     282int ScrollbarThemeGtk::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    283283{
    284284    return m_minThumbLength;
  • trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h

    r105660 r109451  
    3838    virtual ~ScrollbarThemeGtk();
    3939
    40     virtual bool hasButtons(Scrollbar*) { return true; }
    41     virtual bool hasThumb(Scrollbar*);
    42     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool);
    43     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool);
    44     virtual IntRect trackRect(Scrollbar*, bool);
    45     IntRect thumbRect(Scrollbar*, const IntRect& unconstrainedTrackRect);
    46     bool paint(Scrollbar*, GraphicsContext*, const IntRect& damageRect);
    47     void paintScrollbarBackground(GraphicsContext*, Scrollbar*);
    48     void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
    49     void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
    50     virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    51     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
     40    virtual bool hasButtons(ScrollbarThemeClient*) { return true; }
     41    virtual bool hasThumb(ScrollbarThemeClient*);
     42    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool);
     43    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool);
     44    virtual IntRect trackRect(ScrollbarThemeClient*, bool);
     45    IntRect thumbRect(ScrollbarThemeClient*, const IntRect& unconstrainedTrackRect);
     46    bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& damageRect);
     47    void paintScrollbarBackground(GraphicsContext*, ScrollbarThemeClient*);
     48    void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     49    void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     50    virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     51    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
    5252    virtual int scrollbarThickness(ScrollbarControlSize);
    53     virtual IntSize buttonSize(Scrollbar*);
    54     virtual int minimumThumbLength(Scrollbar*);
     53    virtual IntSize buttonSize(ScrollbarThemeClient*);
     54    virtual int minimumThumbLength(ScrollbarThemeClient*);
    5555
    5656    // TODO: These are the default GTK+ values. At some point we should pull these from the theme itself.
     
    5959    void updateThemeProperties();
    6060    void updateScrollbarsFrameThickness();
    61     void registerScrollbar(Scrollbar*);
    62     void unregisterScrollbar(Scrollbar*);
     61    void registerScrollbar(ScrollbarThemeClient*);
     62    void unregisterScrollbar(ScrollbarThemeClient*);
    6363
    6464protected:
  • trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk2.cpp

    r105660 r109451  
    6767}
    6868
    69 static GtkWidget* getWidgetForScrollbar(Scrollbar* scrollbar)
     69static GtkWidget* getWidgetForScrollbar(ScrollbarThemeClient* scrollbar)
    7070{
    7171    RenderThemeGtk* theme = static_cast<RenderThemeGtk*>(RenderTheme::defaultTheme().get());
     
    7373}
    7474
    75 void ScrollbarThemeGtk::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     75void ScrollbarThemeGtk::paintTrackBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    7676{
    7777    // Paint the track background. If the trough-under-steppers property is true, this
     
    8888}
    8989
    90 void ScrollbarThemeGtk::paintScrollbarBackground(GraphicsContext* context, Scrollbar* scrollbar)
     90void ScrollbarThemeGtk::paintScrollbarBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar)
    9191{
    9292    IntRect fullScrollbarRect = IntRect(scrollbar->x(), scrollbar->y(), scrollbar->width(), scrollbar->height());
     
    9797}
    9898
    99 void ScrollbarThemeGtk::paintThumb(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     99void ScrollbarThemeGtk::paintThumb(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    100100{
    101101    GtkWidget* widget = getWidgetForScrollbar(scrollbar);
     
    130130}
    131131
    132 void ScrollbarThemeGtk::paintButton(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     132void ScrollbarThemeGtk::paintButton(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    133133{
    134134    // The buttons will be disabled if the thumb is as the appropriate extreme.
  • trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk3.cpp

    r105660 r109451  
    7373}
    7474
    75 void ScrollbarThemeGtk::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     75void ScrollbarThemeGtk::paintTrackBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    7676{
    7777    // Paint the track background. If the trough-under-steppers property is true, this
     
    9595}
    9696
    97 void ScrollbarThemeGtk::paintScrollbarBackground(GraphicsContext* context, Scrollbar* scrollbar)
     97void ScrollbarThemeGtk::paintScrollbarBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar)
    9898{
    9999    gtk_style_context_save(m_context);
     
    106106}
    107107
    108 void ScrollbarThemeGtk::paintThumb(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     108void ScrollbarThemeGtk::paintThumb(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    109109{
    110110    gtk_style_context_save(m_context);
     
    127127}
    128128
    129 void ScrollbarThemeGtk::paintButton(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     129void ScrollbarThemeGtk::paintButton(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    130130{
    131131    gtk_style_context_save(m_context);
  • trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.h

    r107119 r109451  
    4040    void preferencesChanged();
    4141
    42     virtual void updateEnabledState(Scrollbar*);
     42    virtual void updateEnabledState(ScrollbarThemeClient*);
    4343
    4444#if !PLATFORM(CHROMIUM)
    45     virtual bool paint(Scrollbar*, GraphicsContext* context, const IntRect& damageRect);
     45    virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& damageRect);
    4646#endif
    4747
     
    5050    virtual bool supportsControlTints() const { return true; }
    5151    virtual bool usesOverlayScrollbars() const;
    52     virtual void updateScrollbarOverlayStyle(Scrollbar*);
     52    virtual void updateScrollbarOverlayStyle(ScrollbarThemeClient*);
    5353
    5454    virtual double initialAutoscrollTimerDelay();
     
    5757    virtual ScrollbarButtonsPlacement buttonsPlacement() const;
    5858
    59     virtual void registerScrollbar(Scrollbar*);
    60     virtual void unregisterScrollbar(Scrollbar*);
     59    virtual void registerScrollbar(ScrollbarThemeClient*);
     60    virtual void unregisterScrollbar(ScrollbarThemeClient*);
    6161
    62     void setNewPainterForScrollbar(Scrollbar*, ScrollbarPainter);
    63     ScrollbarPainter painterForScrollbar(Scrollbar*);
     62    void setNewPainterForScrollbar(ScrollbarThemeClient*, ScrollbarPainter);
     63    ScrollbarPainter painterForScrollbar(ScrollbarThemeClient*);
    6464
    6565    static bool isCurrentlyDrawingIntoLayer();
     
    6767
    6868protected:
    69     virtual bool hasButtons(Scrollbar*);
    70     virtual bool hasThumb(Scrollbar*);
     69    virtual bool hasButtons(ScrollbarThemeClient*);
     70    virtual bool hasThumb(ScrollbarThemeClient*);
    7171
    72     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    73     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    74     virtual IntRect trackRect(Scrollbar*, bool painting = false);
     72    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     73    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     74    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    7575
    7676    virtual int maxOverlapBetweenPages() { return 40; }
    7777
    78     virtual int minimumThumbLength(Scrollbar*);
     78    virtual int minimumThumbLength(ScrollbarThemeClient*);
    7979   
    80     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
    81     virtual bool shouldDragDocumentInsteadOfThumb(Scrollbar*, const PlatformMouseEvent&);
     80    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
     81    virtual bool shouldDragDocumentInsteadOfThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
    8282    int scrollbarPartToHIPressedState(ScrollbarPart);
    8383
  • trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm

    r109016 r109451  
    5151namespace WebCore {
    5252
    53 typedef HashMap<Scrollbar*, RetainPtr<ScrollbarPainter> > ScrollbarPainterMap;
     53typedef HashMap<ScrollbarThemeClient*, RetainPtr<ScrollbarPainter> > ScrollbarPainterMap;
    5454
    5555static ScrollbarPainterMap* scrollbarMap()
     
    163163}
    164164
    165 void ScrollbarThemeMac::registerScrollbar(Scrollbar* scrollbar)
     165void ScrollbarThemeMac::registerScrollbar(ScrollbarThemeClient* scrollbar)
    166166{
    167167    if (isScrollbarOverlayAPIAvailable()) {
     
    176176}
    177177
    178 void ScrollbarThemeMac::unregisterScrollbar(Scrollbar* scrollbar)
     178void ScrollbarThemeMac::unregisterScrollbar(ScrollbarThemeClient* scrollbar)
    179179{
    180180    scrollbarMap()->remove(scrollbar);
    181181}
    182182
    183 void ScrollbarThemeMac::setNewPainterForScrollbar(Scrollbar* scrollbar, ScrollbarPainter newPainter)
     183void ScrollbarThemeMac::setNewPainterForScrollbar(ScrollbarThemeClient* scrollbar, ScrollbarPainter newPainter)
    184184{
    185185    scrollbarMap()->set(scrollbar, newPainter);
     
    188188}
    189189
    190 ScrollbarPainter ScrollbarThemeMac::painterForScrollbar(Scrollbar* scrollbar)
     190ScrollbarPainter ScrollbarThemeMac::painterForScrollbar(ScrollbarThemeClient* scrollbar)
    191191{
    192192    return scrollbarMap()->get(scrollbar).get();
     
    249249}
    250250
    251 void ScrollbarThemeMac::updateScrollbarOverlayStyle(Scrollbar* scrollbar)
     251void ScrollbarThemeMac::updateScrollbarOverlayStyle(ScrollbarThemeClient* scrollbar)
    252252{
    253253    ScrollbarPainter painter = painterForScrollbar(scrollbar);
    254     switch (scrollbar->scrollableArea()->scrollbarOverlayStyle()) {
     254    switch (scrollbar->scrollbarOverlayStyle()) {
    255255    case ScrollbarOverlayStyleDefault:
    256256        [painter setKnobStyle:NSScrollerKnobStyleDefault];
     
    280280}
    281281
    282 bool ScrollbarThemeMac::hasButtons(Scrollbar* scrollbar)
     282bool ScrollbarThemeMac::hasButtons(ScrollbarThemeClient* scrollbar)
    283283{
    284284    return scrollbar->enabled() && buttonsPlacement() != ScrollbarButtonsNone
     
    288288}
    289289
    290 bool ScrollbarThemeMac::hasThumb(Scrollbar* scrollbar)
     290bool ScrollbarThemeMac::hasThumb(ScrollbarThemeClient* scrollbar)
    291291{
    292292    int minLengthForThumb;
     
    320320}
    321321
    322 IntRect ScrollbarThemeMac::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool painting)
     322IntRect ScrollbarThemeMac::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool painting)
    323323{
    324324    IntRect result;
     
    354354}
    355355
    356 IntRect ScrollbarThemeMac::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool painting)
     356IntRect ScrollbarThemeMac::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool painting)
    357357{
    358358    IntRect result;
     
    394394}
    395395
    396 IntRect ScrollbarThemeMac::trackRect(Scrollbar* scrollbar, bool painting)
     396IntRect ScrollbarThemeMac::trackRect(ScrollbarThemeClient* scrollbar, bool painting)
    397397{
    398398    if (painting || !hasButtons(scrollbar))
     
    431431}
    432432
    433 int ScrollbarThemeMac::minimumThumbLength(Scrollbar* scrollbar)
     433int ScrollbarThemeMac::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    434434{
    435435    if (isScrollbarOverlayAPIAvailable())
     
    439439}
    440440
    441 bool ScrollbarThemeMac::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     441bool ScrollbarThemeMac::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    442442{
    443443    if (evt.button() != LeftButton)
     
    448448}
    449449
    450 bool ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb(Scrollbar*, const PlatformMouseEvent& event)
     450bool ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb(ScrollbarThemeClient*, const PlatformMouseEvent& event)
    451451{
    452452    return event.altKey();
     
    471471}
    472472
    473 void ScrollbarThemeMac::updateEnabledState(Scrollbar* scrollbar)
     473void ScrollbarThemeMac::updateEnabledState(ScrollbarThemeClient* scrollbar)
    474474{
    475475    if (isScrollbarOverlayAPIAvailable())
     
    500500
    501501#if !PLATFORM(CHROMIUM)
    502 bool ScrollbarThemeMac::paint(Scrollbar* scrollbar, GraphicsContext* context, const IntRect& damageRect)
     502bool ScrollbarThemeMac::paint(ScrollbarThemeClient* scrollbar, GraphicsContext* context, const IntRect& damageRect)
    503503{
    504504    if (isScrollbarOverlayAPIAvailable()) {
     
    571571        trackInfo.enableState = kThemeTrackDisabled;
    572572    else
    573         trackInfo.enableState = scrollbar->scrollableArea()->isActive() ? kThemeTrackActive : kThemeTrackInactive;
     573        trackInfo.enableState = scrollbar->isScrollableAreaActive() ? kThemeTrackActive : kThemeTrackInactive;
    574574
    575575    if (hasThumb(scrollbar))
  • trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.cpp

    r104647 r109451  
    3333static int cScrollbarThickness[] = { 15, 11 };
    3434
    35 IntRect ScrollbarThemeMock::trackRect(Scrollbar* scrollbar, bool)
     35IntRect ScrollbarThemeMock::trackRect(ScrollbarThemeClient* scrollbar, bool)
    3636{
    3737    return scrollbar->frameRect();
     
    4343}
    4444
    45 void ScrollbarThemeMock::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& trackRect)
     45void ScrollbarThemeMock::paintTrackBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& trackRect)
    4646{
    4747    context->fillRect(trackRect, scrollbar->enabled() ? Color::lightGray : Color(0xFFE0E0E0), ColorSpaceDeviceRGB);
    4848}
    4949
    50 void ScrollbarThemeMock::paintThumb(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& thumbRect)
     50void ScrollbarThemeMock::paintThumb(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& thumbRect)
    5151{
    5252    if (scrollbar->enabled())
  • trunk/Source/WebCore/platform/mock/ScrollbarThemeMock.h

    r97227 r109451  
    3737
    3838protected:
    39     virtual bool hasButtons(Scrollbar*) { return false; }
    40     virtual bool hasThumb(Scrollbar*) { return true; }
     39    virtual bool hasButtons(ScrollbarThemeClient*) { return false; }
     40    virtual bool hasThumb(ScrollbarThemeClient*) { return true; }
    4141
    42     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool /*painting*/ = false) { return IntRect(); }
    43     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool /*painting*/ = false) { return IntRect(); }
    44     virtual IntRect trackRect(Scrollbar*, bool painting = false);
     42    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool /*painting*/ = false) { return IntRect(); }
     43    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool /*painting*/ = false) { return IntRect(); }
     44    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    4545   
    46     virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
    47     virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
     46    virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     47    virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
    4848   
    4949private:
  • trunk/Source/WebCore/platform/qt/ScrollbarThemeQt.cpp

    r103297 r109451  
    113113}
    114114
    115 static QStyleOptionSlider* styleOptionSlider(Scrollbar* scrollbar, QWidget* widget = 0)
     115static QStyleOptionSlider* styleOptionSlider(ScrollbarThemeClient* scrollbar, QWidget* widget = 0)
    116116{
    117117    static QStyleOptionSlider opt;
     
    156156}
    157157
    158 bool ScrollbarThemeQt::paint(Scrollbar* scrollbar, GraphicsContext* graphicsContext, const IntRect& damageRect)
     158bool ScrollbarThemeQt::paint(ScrollbarThemeClient* scrollbar, GraphicsContext* graphicsContext, const IntRect& damageRect)
    159159{
    160160    if (graphicsContext->updatingControlTints()) {
     
    194194}
    195195
    196 ScrollbarPart ScrollbarThemeQt::hitTest(Scrollbar* scrollbar, const PlatformMouseEvent& evt)
     196ScrollbarPart ScrollbarThemeQt::hitTest(ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& evt)
    197197{
    198198    QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
     
    203203}
    204204
    205 bool ScrollbarThemeQt::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     205bool ScrollbarThemeQt::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    206206{
    207207    // Middle click centers slider thumb (if supported).
     
    209209}
    210210
    211 void ScrollbarThemeQt::invalidatePart(Scrollbar* scrollbar, ScrollbarPart)
     211void ScrollbarThemeQt::invalidatePart(ScrollbarThemeClient* scrollbar, ScrollbarPart)
    212212{
    213213    // FIXME: Do more precise invalidation.
     
    225225}
    226226
    227 int ScrollbarThemeQt::thumbPosition(Scrollbar* scrollbar)
     227int ScrollbarThemeQt::thumbPosition(ScrollbarThemeClient* scrollbar)
    228228{
    229229    if (scrollbar->enabled()) {
     
    234234}
    235235
    236 int ScrollbarThemeQt::thumbLength(Scrollbar* scrollbar)
     236int ScrollbarThemeQt::thumbLength(ScrollbarThemeClient* scrollbar)
    237237{
    238238    QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
     
    241241}
    242242
    243 int ScrollbarThemeQt::trackPosition(Scrollbar* scrollbar)
     243int ScrollbarThemeQt::trackPosition(ScrollbarThemeClient* scrollbar)
    244244{
    245245    QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
     
    248248}
    249249
    250 int ScrollbarThemeQt::trackLength(Scrollbar* scrollbar)
     250int ScrollbarThemeQt::trackLength(ScrollbarThemeClient* scrollbar)
    251251{
    252252    QStyleOptionSlider* opt = styleOptionSlider(scrollbar);
  • trunk/Source/WebCore/platform/qt/ScrollbarThemeQt.h

    r100087 r109451  
    4141    virtual ~ScrollbarThemeQt();
    4242
    43     virtual bool paint(Scrollbar*, GraphicsContext*, const IntRect& damageRect);
     43    virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& damageRect);
    4444    virtual void paintScrollCorner(ScrollView*, GraphicsContext*, const IntRect& cornerRect);
    4545
    46     virtual ScrollbarPart hitTest(Scrollbar*, const PlatformMouseEvent&);
     46    virtual ScrollbarPart hitTest(ScrollbarThemeClient*, const PlatformMouseEvent&);
    4747
    48     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
     48    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
    4949
    50     virtual void invalidatePart(Scrollbar*, ScrollbarPart);
     50    virtual void invalidatePart(ScrollbarThemeClient*, ScrollbarPart);
    5151
    52     virtual int thumbPosition(Scrollbar*);
    53     virtual int thumbLength(Scrollbar*);
    54     virtual int trackPosition(Scrollbar*);
    55     virtual int trackLength(Scrollbar*);
     52    virtual int thumbPosition(ScrollbarThemeClient*);
     53    virtual int thumbLength(ScrollbarThemeClient*);
     54    virtual int trackPosition(ScrollbarThemeClient*);
     55    virtual int trackLength(ScrollbarThemeClient*);
    5656
    5757    virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar);
  • trunk/Source/WebCore/platform/win/ScrollbarThemeSafari.cpp

    r95901 r109451  
    105105}
    106106
    107 bool ScrollbarThemeSafari::hasButtons(Scrollbar* scrollbar)
     107bool ScrollbarThemeSafari::hasButtons(ScrollbarThemeClient* scrollbar)
    108108{
    109109    return scrollbar->enabled() && (scrollbar->orientation() == HorizontalScrollbar ?
     
    112112}
    113113
    114 bool ScrollbarThemeSafari::hasThumb(Scrollbar* scrollbar)
     114bool ScrollbarThemeSafari::hasThumb(ScrollbarThemeClient* scrollbar)
    115115{
    116116    return scrollbar->enabled() && (scrollbar->orientation() == HorizontalScrollbar ?
     
    135135}
    136136
    137 IntRect ScrollbarThemeSafari::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool painting)
     137IntRect ScrollbarThemeSafari::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool painting)
    138138{
    139139    IntRect result;
     
    153153}
    154154
    155 IntRect ScrollbarThemeSafari::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool painting)
     155IntRect ScrollbarThemeSafari::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool painting)
    156156{
    157157    IntRect result;
     
    182182}
    183183
    184 IntRect ScrollbarThemeSafari::trackRect(Scrollbar* scrollbar, bool painting)
     184IntRect ScrollbarThemeSafari::trackRect(ScrollbarThemeClient* scrollbar, bool painting)
    185185{
    186186    if (painting || !hasButtons(scrollbar))
     
    194194}
    195195
    196 int ScrollbarThemeSafari::minimumThumbLength(Scrollbar* scrollbar)
     196int ScrollbarThemeSafari::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    197197{
    198198    return cThumbMinLength[scrollbar->controlSize()];
    199199}
    200200
    201 bool ScrollbarThemeSafari::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     201bool ScrollbarThemeSafari::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    202202{
    203203    return evt.shiftKey() && evt.button() == LeftButton;
    204204}
    205205
    206 void ScrollbarThemeSafari::paintTrackBackground(GraphicsContext* graphicsContext, Scrollbar* scrollbar, const IntRect& trackRect)
     206void ScrollbarThemeSafari::paintTrackBackground(GraphicsContext* graphicsContext, ScrollbarThemeClient* scrollbar, const IntRect& trackRect)
    207207{
    208208    if (!SafariThemeLibrary())
     
    210210    NSControlSize size = scrollbar->controlSize() == SmallScrollbar ? NSSmallControlSize : NSRegularControlSize;
    211211    ThemeControlState state = 0;
    212     if (scrollbar->scrollableArea()->isActive())
     212    if (scrollbar->isScrollableAreaActive())
    213213        state |= ActiveState;
    214214    if (hasButtons(scrollbar))
     
    217217}
    218218
    219 void ScrollbarThemeSafari::paintButton(GraphicsContext* graphicsContext, Scrollbar* scrollbar, const IntRect& buttonRect, ScrollbarPart part)
     219void ScrollbarThemeSafari::paintButton(GraphicsContext* graphicsContext, ScrollbarThemeClient* scrollbar, const IntRect& buttonRect, ScrollbarPart part)
    220220{
    221221    if (!SafariThemeLibrary())
     
    223223    NSControlSize size = scrollbar->controlSize() == SmallScrollbar ? NSSmallControlSize : NSRegularControlSize;
    224224    ThemeControlState state = 0;
    225     if (scrollbar->scrollableArea()->isActive())
     225    if (scrollbar->isScrollableAreaActive())
    226226        state |= ActiveState;
    227227    if (hasButtons(scrollbar))
     
    237237}
    238238
    239 void ScrollbarThemeSafari::paintThumb(GraphicsContext* graphicsContext, Scrollbar* scrollbar, const IntRect& thumbRect)
     239void ScrollbarThemeSafari::paintThumb(GraphicsContext* graphicsContext, ScrollbarThemeClient* scrollbar, const IntRect& thumbRect)
    240240{
    241241    if (!SafariThemeLibrary())
     
    243243    NSControlSize size = scrollbar->controlSize() == SmallScrollbar ? NSSmallControlSize : NSRegularControlSize;
    244244    ThemeControlState state = 0;
    245     if (scrollbar->scrollableArea()->isActive())
     245    if (scrollbar->isScrollableAreaActive())
    246246        state |= ActiveState;
    247247    if (hasThumb(scrollbar))
  • trunk/Source/WebCore/platform/win/ScrollbarThemeSafari.h

    r95901 r109451  
    4242
    4343protected:
    44     virtual bool hasButtons(Scrollbar*);
    45     virtual bool hasThumb(Scrollbar*);
     44    virtual bool hasButtons(ScrollbarThemeClient*);
     45    virtual bool hasThumb(ScrollbarThemeClient*);
    4646
    47     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    48     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    49     virtual IntRect trackRect(Scrollbar*, bool painting = false);
     47    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     48    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     49    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    5050
    51     virtual int minimumThumbLength(Scrollbar*);
     51    virtual int minimumThumbLength(ScrollbarThemeClient*);
    5252   
    53     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
     53    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
    5454
    55     virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
    56     virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    57     virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
     55    virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     56    virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     57    virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
    5858};
    5959
  • trunk/Source/WebCore/platform/win/ScrollbarThemeWin.cpp

    r103297 r109451  
    131131}
    132132
    133 bool ScrollbarThemeWin::hasThumb(Scrollbar* scrollbar)
     133bool ScrollbarThemeWin::hasThumb(ScrollbarThemeClient* scrollbar)
    134134{
    135135    return thumbLength(scrollbar) > 0;
    136136}
    137137
    138 IntRect ScrollbarThemeWin::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     138IntRect ScrollbarThemeWin::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    139139{
    140140    // Windows just has single arrows.
     
    155155}
    156156
    157 IntRect ScrollbarThemeWin::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     157IntRect ScrollbarThemeWin::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    158158{
    159159    // Windows just has single arrows.
     
    176176}
    177177
    178 IntRect ScrollbarThemeWin::trackRect(Scrollbar* scrollbar, bool)
     178IntRect ScrollbarThemeWin::trackRect(ScrollbarThemeClient* scrollbar, bool)
    179179{
    180180    int thickness = scrollbarThickness();
     
    189189}
    190190
    191 bool ScrollbarThemeWin::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
     191bool ScrollbarThemeWin::shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent& evt)
    192192{
    193193    return evt.shiftKey() && evt.button() == LeftButton;
    194194}
    195195
    196 bool ScrollbarThemeWin::shouldSnapBackToDragOrigin(Scrollbar* scrollbar, const PlatformMouseEvent& evt)
     196bool ScrollbarThemeWin::shouldSnapBackToDragOrigin(ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& evt)
    197197{
    198198    // Find the rect within which we shouldn't snap, by expanding the track rect
     
    212212}
    213213
    214 void ScrollbarThemeWin::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     214void ScrollbarThemeWin::paintTrackBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    215215{
    216216    // Just assume a forward track part.  We only paint the track as a single piece when there is no thumb.
     
    219219}
    220220
    221 void ScrollbarThemeWin::paintTrackPiece(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart partType)
     221void ScrollbarThemeWin::paintTrackPiece(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart partType)
    222222{
    223223    checkAndInitScrollbarTheme();
     
    277277}
    278278
    279 void ScrollbarThemeWin::paintButton(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     279void ScrollbarThemeWin::paintButton(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    280280{
    281281    checkAndInitScrollbarTheme();
     
    340340}
    341341
    342 static void paintGripper(Scrollbar* scrollbar, HDC hdc, const IntRect& rect)
     342static void paintGripper(ScrollbarThemeClient* scrollbar, HDC hdc, const IntRect& rect)
    343343{
    344344    if (!scrollbarTheme)
     
    359359}
    360360
    361 void ScrollbarThemeWin::paintThumb(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     361void ScrollbarThemeWin::paintThumb(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    362362{
    363363    checkAndInitScrollbarTheme();
  • trunk/Source/WebCore/platform/win/ScrollbarThemeWin.h

    r95901 r109451  
    4343
    4444protected:
    45     virtual bool hasButtons(Scrollbar*) { return true; }
    46     virtual bool hasThumb(Scrollbar*);
     45    virtual bool hasButtons(ScrollbarThemeClient*) { return true; }
     46    virtual bool hasThumb(ScrollbarThemeClient*);
    4747
    48     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    49     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    50     virtual IntRect trackRect(Scrollbar*, bool painting = false);
     48    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     49    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     50    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    5151
    52     virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
    53     virtual bool shouldSnapBackToDragOrigin(Scrollbar*, const PlatformMouseEvent&);
     52    virtual bool shouldCenterOnThumb(ScrollbarThemeClient*, const PlatformMouseEvent&);
     53    virtual bool shouldSnapBackToDragOrigin(ScrollbarThemeClient*, const PlatformMouseEvent&);
    5454
    55     virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
    56     virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    57     virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    58     virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
     55    virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     56    virtual void paintTrackPiece(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     57    virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     58    virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
    5959};
    6060
  • trunk/Source/WebCore/platform/wx/ScrollbarThemeWx.cpp

    r96348 r109451  
    7272}
    7373
    74 bool ScrollbarThemeWx::hasThumb(Scrollbar* scrollbar)
     74bool ScrollbarThemeWx::hasThumb(ScrollbarThemeClient* scrollbar)
    7575{
    7676    // This method is just called as a paint-time optimization to see if
     
    7979}
    8080
    81 int ScrollbarThemeWx::minimumThumbLength(Scrollbar* scrollbar)
     81int ScrollbarThemeWx::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    8282{
    8383    return 20;
    8484}
    8585
    86 IntSize ScrollbarThemeWx::buttonSize(Scrollbar*)
     86IntSize ScrollbarThemeWx::buttonSize(ScrollbarThemeClient*)
    8787{
    8888#ifdef __WXMAC__
     
    9393}
    9494
    95 void ScrollbarThemeWx::splitTrack(Scrollbar* scrollbar, const IntRect& unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& afterThumbRect)
     95void ScrollbarThemeWx::splitTrack(ScrollbarThemeClient* scrollbar, const IntRect& unconstrainedTrackRect, IntRect& beforeThumbRect, IntRect& thumbRect, IntRect& afterThumbRect)
    9696{
    9797    ScrollbarThemeComposite::splitTrack(scrollbar, unconstrainedTrackRect, beforeThumbRect, thumbRect, afterThumbRect);
     
    110110}
    111111
    112 IntRect ScrollbarThemeWx::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     112IntRect ScrollbarThemeWx::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    113113{
    114114    // FIXME: Handling this case is needed when there are two sets of arrow buttons
     
    131131}
    132132
    133 IntRect ScrollbarThemeWx::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
     133IntRect ScrollbarThemeWx::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart part, bool)
    134134{
    135135    // FIXME: Handling this case is needed when there are two sets of arrow buttons
     
    156156}
    157157
    158 IntRect ScrollbarThemeWx::trackRect(Scrollbar* scrollbar, bool)
     158IntRect ScrollbarThemeWx::trackRect(ScrollbarThemeClient* scrollbar, bool)
    159159{
    160160    IntSize bs = buttonSize(scrollbar);
     
    180180}
    181181
    182 bool ScrollbarThemeWx::paint(Scrollbar* scrollbar, GraphicsContext* context, const IntRect& rect)
     182bool ScrollbarThemeWx::paint(ScrollbarThemeClient* scrollbar, GraphicsContext* context, const IntRect& rect)
    183183{
    184184    wxOrientation orientation = (scrollbar->orientation() == HorizontalScrollbar) ? wxHORIZONTAL : wxVERTICAL;
    185185    int flags = 0;
    186     if (scrollbar->scrollableArea()->isActive())
     186    if (scrollbar->isScrollableAreaActive())
    187187        flags |= wxCONTROL_FOCUSED;
    188188   
  • trunk/Source/WebCore/platform/wx/ScrollbarThemeWx.h

    r96348 r109451  
    3636    virtual ~ScrollbarThemeWx();
    3737    virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar);
    38     virtual bool paint(Scrollbar*, GraphicsContext*, const IntRect&);
     38    virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect&);
    3939   
    4040protected:
    41     virtual bool hasButtons(Scrollbar*) { return true; }
    42     virtual bool hasThumb(Scrollbar*);
     41    virtual bool hasButtons(ScrollbarThemeClient*) { return true; }
     42    virtual bool hasThumb(ScrollbarThemeClient*);
    4343
    44     virtual IntSize buttonSize(Scrollbar*);
     44    virtual IntSize buttonSize(ScrollbarThemeClient*);
    4545
    46     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    47     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    48     virtual IntRect trackRect(Scrollbar*, bool painting = false);
     46    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     47    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     48    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    4949
    50     virtual void splitTrack(Scrollbar*, const IntRect& track, IntRect& startTrack, IntRect& thumb, IntRect& endTrack);
     50    virtual void splitTrack(ScrollbarThemeClient*, const IntRect& track, IntRect& startTrack, IntRect& thumb, IntRect& endTrack);
    5151   
    52     virtual int minimumThumbLength(Scrollbar*);
     52    virtual int minimumThumbLength(ScrollbarThemeClient*);
    5353};
    5454
  • trunk/Source/WebCore/rendering/RenderScrollbar.h

    r95901 r109451  
    8686};
    8787
    88 inline RenderScrollbar* toRenderScrollbar(Scrollbar* scrollbar)
     88inline RenderScrollbar* toRenderScrollbar(ScrollbarThemeClient* scrollbar)
    8989{
    9090    ASSERT(!scrollbar || scrollbar->isCustomScrollbar());
  • trunk/Source/WebCore/rendering/RenderScrollbarTheme.cpp

    r95901 r109451  
    2727#include "RenderScrollbarTheme.h"
    2828#include "RenderScrollbar.h"
     29#include "ScrollbarThemeClient.h"
    2930#include <wtf/StdLibExtras.h>
    3031
     
    3738}
    3839
    39 void RenderScrollbarTheme::buttonSizesAlongTrackAxis(Scrollbar* scrollbar, int& beforeSize, int& afterSize)
     40void RenderScrollbarTheme::buttonSizesAlongTrackAxis(ScrollbarThemeClient* scrollbar, int& beforeSize, int& afterSize)
    4041{
    4142    IntRect firstButton = backButtonRect(scrollbar, BackButtonStartPart);
     
    5253}
    5354
    54 bool RenderScrollbarTheme::hasButtons(Scrollbar* scrollbar)
     55bool RenderScrollbarTheme::hasButtons(ScrollbarThemeClient* scrollbar)
    5556{
    5657    int startSize;
     
    6061}
    6162
    62 bool RenderScrollbarTheme::hasThumb(Scrollbar* scrollbar)
     63bool RenderScrollbarTheme::hasThumb(ScrollbarThemeClient* scrollbar)
    6364{
    6465    return trackLength(scrollbar) - thumbLength(scrollbar) >= 0;
    6566}
    6667
    67 int RenderScrollbarTheme::minimumThumbLength(Scrollbar* scrollbar)
     68int RenderScrollbarTheme::minimumThumbLength(ScrollbarThemeClient* scrollbar)
    6869{
    6970    return toRenderScrollbar(scrollbar)->minimumThumbLength();
    7071}
    7172
    72 IntRect RenderScrollbarTheme::backButtonRect(Scrollbar* scrollbar, ScrollbarPart partType, bool)
     73IntRect RenderScrollbarTheme::backButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart partType, bool)
    7374{
    7475    return toRenderScrollbar(scrollbar)->buttonRect(partType);
    7576}
    7677
    77 IntRect RenderScrollbarTheme::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart partType, bool)
     78IntRect RenderScrollbarTheme::forwardButtonRect(ScrollbarThemeClient* scrollbar, ScrollbarPart partType, bool)
    7879{
    7980    return toRenderScrollbar(scrollbar)->buttonRect(partType);
    8081}
    8182
    82 IntRect RenderScrollbarTheme::trackRect(Scrollbar* scrollbar, bool)
     83IntRect RenderScrollbarTheme::trackRect(ScrollbarThemeClient* scrollbar, bool)
    8384{
    8485    if (!hasButtons(scrollbar))
     
    9293}
    9394
    94 IntRect RenderScrollbarTheme::constrainTrackRectToTrackPieces(Scrollbar* scrollbar, const IntRect& rect)
     95IntRect RenderScrollbarTheme::constrainTrackRectToTrackPieces(ScrollbarThemeClient* scrollbar, const IntRect& rect)
    9596{
    9697    IntRect backRect = toRenderScrollbar(scrollbar)->trackPieceRectWithMargins(BackTrackPart, rect);
     
    113114}
    114115
    115 void RenderScrollbarTheme::paintScrollbarBackground(GraphicsContext* context, Scrollbar* scrollbar)
     116void RenderScrollbarTheme::paintScrollbarBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar)
    116117{
    117118    toRenderScrollbar(scrollbar)->paintPart(context, ScrollbarBGPart, scrollbar->frameRect());
    118119}
    119120
    120 void RenderScrollbarTheme::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     121void RenderScrollbarTheme::paintTrackBackground(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    121122{
    122123    toRenderScrollbar(scrollbar)->paintPart(context, TrackBGPart, rect);
    123124}
    124125
    125 void RenderScrollbarTheme::paintTrackPiece(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     126void RenderScrollbarTheme::paintTrackPiece(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    126127{
    127128    toRenderScrollbar(scrollbar)->paintPart(context, part, rect);
    128129}
    129130
    130 void RenderScrollbarTheme::paintButton(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
     131void RenderScrollbarTheme::paintButton(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect, ScrollbarPart part)
    131132{
    132133    toRenderScrollbar(scrollbar)->paintPart(context, part, rect);
    133134}
    134135
    135 void RenderScrollbarTheme::paintThumb(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
     136void RenderScrollbarTheme::paintThumb(GraphicsContext* context, ScrollbarThemeClient* scrollbar, const IntRect& rect)
    136137{
    137138    toRenderScrollbar(scrollbar)->paintPart(context, ThumbPart, rect);
  • trunk/Source/WebCore/rendering/RenderScrollbarTheme.h

    r97227 r109451  
    4747    virtual void paintScrollCorner(ScrollView*, GraphicsContext* context, const IntRect& cornerRect);
    4848
    49     virtual bool shouldCenterOnThumb(Scrollbar* scrollbar, const PlatformMouseEvent& event) { return ScrollbarTheme::theme()->shouldCenterOnThumb(scrollbar, event); }
     49    virtual bool shouldCenterOnThumb(ScrollbarThemeClient* scrollbar, const PlatformMouseEvent& event) { return ScrollbarTheme::theme()->shouldCenterOnThumb(scrollbar, event); }
    5050   
    5151    virtual double initialAutoscrollTimerDelay() { return ScrollbarTheme::theme()->initialAutoscrollTimerDelay(); }
    5252    virtual double autoscrollTimerDelay() { return ScrollbarTheme::theme()->autoscrollTimerDelay(); }
    5353
    54     virtual void registerScrollbar(Scrollbar* scrollbar) { return ScrollbarTheme::theme()->registerScrollbar(scrollbar); }
    55     virtual void unregisterScrollbar(Scrollbar* scrollbar) { return ScrollbarTheme::theme()->unregisterScrollbar(scrollbar); }
     54    virtual void registerScrollbar(ScrollbarThemeClient* scrollbar) { return ScrollbarTheme::theme()->registerScrollbar(scrollbar); }
     55    virtual void unregisterScrollbar(ScrollbarThemeClient* scrollbar) { return ScrollbarTheme::theme()->unregisterScrollbar(scrollbar); }
    5656
    57     virtual int minimumThumbLength(Scrollbar*);
     57    virtual int minimumThumbLength(ScrollbarThemeClient*);
    5858
    59     void buttonSizesAlongTrackAxis(Scrollbar* scrollbar, int& beforeSize, int& afterSize);
     59    void buttonSizesAlongTrackAxis(ScrollbarThemeClient*, int& beforeSize, int& afterSize);
    6060   
    6161    static RenderScrollbarTheme* renderScrollbarTheme();
    6262
    6363protected:
    64     virtual bool hasButtons(Scrollbar*);
    65     virtual bool hasThumb(Scrollbar*);
     64    virtual bool hasButtons(ScrollbarThemeClient*);
     65    virtual bool hasThumb(ScrollbarThemeClient*);
    6666
    67     virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    68     virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
    69     virtual IntRect trackRect(Scrollbar*, bool painting = false);
     67    virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     68    virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false);
     69    virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false);
    7070   
    71     virtual void paintScrollbarBackground(GraphicsContext*, Scrollbar*);   
    72     virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
    73     virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    74     virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
    75     virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
     71    virtual void paintScrollbarBackground(GraphicsContext*, ScrollbarThemeClient*);
     72    virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
     73    virtual void paintTrackPiece(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     74    virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart);
     75    virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&);
    7676
    77     virtual IntRect constrainTrackRectToTrackPieces(Scrollbar*, const IntRect&);
     77    virtual IntRect constrainTrackRectToTrackPieces(ScrollbarThemeClient*, const IntRect&);
    7878};
    7979
Note: See TracChangeset for help on using the changeset viewer.