| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 public ScrollbarThemeClient, | 49 public ScrollbarThemeClient, |
| 50 public DisplayItemClient { | 50 public DisplayItemClient { |
| 51 public: | 51 public: |
| 52 static Scrollbar* create(ScrollableArea* scrollableArea, | 52 static Scrollbar* create(ScrollableArea* scrollableArea, |
| 53 ScrollbarOrientation orientation, | 53 ScrollbarOrientation orientation, |
| 54 ScrollbarControlSize size, | 54 ScrollbarControlSize size, |
| 55 HostWindow* hostWindow) { | 55 HostWindow* hostWindow) { |
| 56 return new Scrollbar(scrollableArea, orientation, size, hostWindow); | 56 return new Scrollbar(scrollableArea, orientation, size, hostWindow); |
| 57 } | 57 } |
| 58 | 58 |
| 59 // Theme object ownership remains with the caller and it must outlive the scro
llbar. | 59 // Theme object ownership remains with the caller and it must outlive the |
| 60 // scrollbar. |
| 60 static Scrollbar* createForTesting(ScrollableArea* scrollableArea, | 61 static Scrollbar* createForTesting(ScrollableArea* scrollableArea, |
| 61 ScrollbarOrientation orientation, | 62 ScrollbarOrientation orientation, |
| 62 ScrollbarControlSize size, | 63 ScrollbarControlSize size, |
| 63 ScrollbarTheme* theme) { | 64 ScrollbarTheme* theme) { |
| 64 return new Scrollbar(scrollableArea, orientation, size, nullptr, theme); | 65 return new Scrollbar(scrollableArea, orientation, size, nullptr, theme); |
| 65 } | 66 } |
| 66 | 67 |
| 67 ~Scrollbar() override; | 68 ~Scrollbar() override; |
| 68 | 69 |
| 69 // ScrollbarThemeClient implementation. | 70 // ScrollbarThemeClient implementation. |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 bool isOverlayScrollbar() const override; | 131 bool isOverlayScrollbar() const override; |
| 131 bool shouldParticipateInHitTesting(); | 132 bool shouldParticipateInHitTesting(); |
| 132 | 133 |
| 133 bool isWindowActive() const; | 134 bool isWindowActive() const; |
| 134 | 135 |
| 135 // Return if the gesture event was handled. |shouldUpdateCapture| | 136 // Return if the gesture event was handled. |shouldUpdateCapture| |
| 136 // will be set to true if the handler should update the capture | 137 // will be set to true if the handler should update the capture |
| 137 // state for this scrollbar. | 138 // state for this scrollbar. |
| 138 bool gestureEvent(const PlatformGestureEvent&, bool* shouldUpdateCapture); | 139 bool gestureEvent(const PlatformGestureEvent&, bool* shouldUpdateCapture); |
| 139 | 140 |
| 140 // These methods are used for platform scrollbars to give :hover feedback. Th
ey will not get called | 141 // These methods are used for platform scrollbars to give :hover feedback. |
| 141 // when the mouse went down in a scrollbar, since it is assumed the scrollbar
will start | 142 // They will not get called when the mouse went down in a scrollbar, since it |
| 143 // is assumed the scrollbar will start |
| 142 // grabbing all events in that case anyway. | 144 // grabbing all events in that case anyway. |
| 143 void mouseMoved(const PlatformMouseEvent&); | 145 void mouseMoved(const PlatformMouseEvent&); |
| 144 void mouseEntered(); | 146 void mouseEntered(); |
| 145 void mouseExited(); | 147 void mouseExited(); |
| 146 | 148 |
| 147 // Used by some platform scrollbars to know when they've been released from ca
pture. | 149 // Used by some platform scrollbars to know when they've been released from |
| 150 // capture. |
| 148 void mouseUp(const PlatformMouseEvent&); | 151 void mouseUp(const PlatformMouseEvent&); |
| 149 void mouseDown(const PlatformMouseEvent&); | 152 void mouseDown(const PlatformMouseEvent&); |
| 150 | 153 |
| 151 ScrollbarTheme& theme() const { return m_theme; } | 154 ScrollbarTheme& theme() const { return m_theme; } |
| 152 | 155 |
| 153 IntRect convertToContainingWidget(const IntRect&) const override; | 156 IntRect convertToContainingWidget(const IntRect&) const override; |
| 154 IntRect convertFromContainingWidget(const IntRect&) const override; | 157 IntRect convertFromContainingWidget(const IntRect&) const override; |
| 155 | 158 |
| 156 IntPoint convertToContainingWidget(const IntPoint&) const override; | 159 IntPoint convertToContainingWidget(const IntPoint&) const override; |
| 157 IntPoint convertFromContainingWidget(const IntPoint&) const override; | 160 IntPoint convertFromContainingWidget(const IntPoint&) const override; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 188 // Otherwise, the ScrollableArea may redraw using cached renderings of | 191 // Otherwise, the ScrollableArea may redraw using cached renderings of |
| 189 // individual parts. For instance, if the scrollbar is composited, the thumb | 192 // individual parts. For instance, if the scrollbar is composited, the thumb |
| 190 // may be cached in a GPU texture (and is only guaranteed to be repainted if | 193 // may be cached in a GPU texture (and is only guaranteed to be repainted if |
| 191 // ThumbPart is invalidated). | 194 // ThumbPart is invalidated). |
| 192 // | 195 // |
| 193 // Even if no parts are invalidated, the scrollbar may need to be redrawn | 196 // Even if no parts are invalidated, the scrollbar may need to be redrawn |
| 194 // if, for instance, the thumb moves without changing the appearance of any | 197 // if, for instance, the thumb moves without changing the appearance of any |
| 195 // part. | 198 // part. |
| 196 void setNeedsPaintInvalidation(ScrollbarPart invalidParts); | 199 void setNeedsPaintInvalidation(ScrollbarPart invalidParts); |
| 197 | 200 |
| 198 // Promptly unregister from the theme manager + run finalizers of derived Scro
llbars. | 201 // Promptly unregister from the theme manager + run finalizers of derived |
| 202 // Scrollbars. |
| 199 EAGERLY_FINALIZE(); | 203 EAGERLY_FINALIZE(); |
| 200 DECLARE_EAGER_FINALIZATION_OPERATOR_NEW(); | 204 DECLARE_EAGER_FINALIZATION_OPERATOR_NEW(); |
| 201 DECLARE_VIRTUAL_TRACE(); | 205 DECLARE_VIRTUAL_TRACE(); |
| 202 | 206 |
| 203 protected: | 207 protected: |
| 204 Scrollbar(ScrollableArea*, | 208 Scrollbar(ScrollableArea*, |
| 205 ScrollbarOrientation, | 209 ScrollbarOrientation, |
| 206 ScrollbarControlSize, | 210 ScrollbarControlSize, |
| 207 HostWindow* = 0, | 211 HostWindow* = 0, |
| 208 ScrollbarTheme* = 0); | 212 ScrollbarTheme* = 0); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 | 261 |
| 258 DEFINE_TYPE_CASTS(Scrollbar, | 262 DEFINE_TYPE_CASTS(Scrollbar, |
| 259 Widget, | 263 Widget, |
| 260 widget, | 264 widget, |
| 261 widget->isScrollbar(), | 265 widget->isScrollbar(), |
| 262 widget.isScrollbar()); | 266 widget.isScrollbar()); |
| 263 | 267 |
| 264 } // namespace blink | 268 } // namespace blink |
| 265 | 269 |
| 266 #endif // Scrollbar_h | 270 #endif // Scrollbar_h |
| OLD | NEW |