Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(738)

Side by Side Diff: third_party/WebKit/Source/platform/scroll/Scrollbar.h

Issue 1550983002: Revert of Make ScrollbarThemeAura selectively invalidate scrollbar parts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 87
88 ScrollbarPart pressedPart() const override { return m_pressedPart; } 88 ScrollbarPart pressedPart() const override { return m_pressedPart; }
89 ScrollbarPart hoveredPart() const override { return m_hoveredPart; } 89 ScrollbarPart hoveredPart() const override { return m_hoveredPart; }
90 90
91 void styleChanged() override { } 91 void styleChanged() override { }
92 void visibilityChanged() override; 92 void visibilityChanged() override;
93 bool enabled() const override { return m_enabled; } 93 bool enabled() const override { return m_enabled; }
94 void setEnabled(bool) override; 94 void setEnabled(bool) override;
95 95
96 // Called by the ScrollableArea when the scroll offset changes. 96 // Called by the ScrollableArea when the scroll offset changes.
97 // 97 void offsetDidChange();
98 // Will invalidate the scrollbar if either the track or the thumb is
99 // invalidated. The caller is responsible for issuing paint invalidations
100 // when only the thumb position changes, as the scrollbar is unaware of
101 // whether the thumb can be moved without repainting.
102 //
103 // Returns true if the scrollbar's offset was actually updated, so that the
104 // caller can issue additional invalidations as needed.
105 bool offsetDidChange();
106 98
107 void disconnectFromScrollableArea(); 99 void disconnectFromScrollableArea();
108 ScrollableArea* scrollableArea() const { return m_scrollableArea; } 100 ScrollableArea* scrollableArea() const { return m_scrollableArea; }
109 101
110 int pressedPos() const { return m_pressedPos; } 102 int pressedPos() const { return m_pressedPos; }
111 103
112 virtual void setHoveredPart(ScrollbarPart); 104 virtual void setHoveredPart(ScrollbarPart);
113 virtual void setPressedPart(ScrollbarPart); 105 virtual void setPressedPart(ScrollbarPart);
114 106
115 void setProportion(int visibleSize, int totalSize); 107 void setProportion(int visibleSize, int totalSize);
(...skipping 26 matching lines...) Expand all
142 IntRect convertFromContainingWidget(const IntRect&) const override; 134 IntRect convertFromContainingWidget(const IntRect&) const override;
143 135
144 IntPoint convertToContainingWidget(const IntPoint&) const override; 136 IntPoint convertToContainingWidget(const IntPoint&) const override;
145 IntPoint convertFromContainingWidget(const IntPoint&) const override; 137 IntPoint convertFromContainingWidget(const IntPoint&) const override;
146 138
147 void moveThumb(int pos, bool draggingDocument = false); 139 void moveThumb(int pos, bool draggingDocument = false);
148 140
149 float elasticOverscroll() const override { return m_elasticOverscroll; } 141 float elasticOverscroll() const override { return m_elasticOverscroll; }
150 void setElasticOverscroll(float elasticOverscroll) override { m_elasticOvers croll = elasticOverscroll; } 142 void setElasticOverscroll(float elasticOverscroll) override { m_elasticOvers croll = elasticOverscroll; }
151 143
152 // Use setNeedsPaintInvalidation to cause scrollbar parts to repaint.
153 bool trackNeedsRepaint() const { return m_trackNeedsRepaint; } 144 bool trackNeedsRepaint() const { return m_trackNeedsRepaint; }
154 void setTrackNeedsRepaint(bool trackNeedsRepaint) { m_trackNeedsRepaint = tr ackNeedsRepaint; } 145 void setTrackNeedsRepaint(bool trackNeedsRepaint) { m_trackNeedsRepaint = tr ackNeedsRepaint; }
155 bool thumbNeedsRepaint() const { return m_thumbNeedsRepaint; } 146 bool thumbNeedsRepaint() const { return m_thumbNeedsRepaint; }
156 void setThumbNeedsRepaint(bool thumbNeedsRepaint) { m_thumbNeedsRepaint = th umbNeedsRepaint; } 147 void setThumbNeedsRepaint(bool thumbNeedsRepaint) { m_thumbNeedsRepaint = th umbNeedsRepaint; }
157 148
158 bool overlapsResizer() const { return m_overlapsResizer; } 149 bool overlapsResizer() const { return m_overlapsResizer; }
159 void setOverlapsResizer(bool overlapsResizer) { m_overlapsResizer = overlaps Resizer; } 150 void setOverlapsResizer(bool overlapsResizer) { m_overlapsResizer = overlaps Resizer; }
160 151
161 // DisplayItemClient methods. 152 // DisplayItemClient methods.
162 String debugName() const final { return m_orientation == HorizontalScrollbar ? "HorizontalScrollbar" : "VerticalScrollbar"; } 153 String debugName() const final { return m_orientation == HorizontalScrollbar ? "HorizontalScrollbar" : "VerticalScrollbar"; }
163 // TODO(chrishtr): fix this. 154 // TODO(chrishtr): fix this.
164 IntRect visualRect() const override { return IntRect(); } 155 IntRect visualRect() const override { return IntRect(); }
165 156
166 // Marks the specified parts of the scrollbar as needing paint invalidation. 157 void setNeedsPaintInvalidation();
167 // Uses the associated ScrollableArea to cause invalidation.
168 void setNeedsPaintInvalidation(ScrollbarPart = AllParts);
169 158
170 // Promptly unregister from the theme manager + run finalizers of derived Sc rollbars. 159 // Promptly unregister from the theme manager + run finalizers of derived Sc rollbars.
171 EAGERLY_FINALIZE(); 160 EAGERLY_FINALIZE();
172 #if ENABLE(OILPAN) 161 #if ENABLE(OILPAN)
173 DECLARE_EAGER_FINALIZATION_OPERATOR_NEW(); 162 DECLARE_EAGER_FINALIZATION_OPERATOR_NEW();
174 #endif 163 #endif
175 DECLARE_VIRTUAL_TRACE(); 164 DECLARE_VIRTUAL_TRACE();
176 165
177 protected: 166 protected:
178 Scrollbar(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize, Scrol lbarTheme* = 0); 167 Scrollbar(ScrollableArea*, ScrollbarOrientation, ScrollbarControlSize, Scrol lbarTheme* = 0);
179 168
169 void updateThumb();
180 170
181 void autoscrollTimerFired(Timer<Scrollbar>*); 171 void autoscrollTimerFired(Timer<Scrollbar>*);
182 void startTimerIfNeeded(double delay); 172 void startTimerIfNeeded(double delay);
183 void stopTimerIfNeeded(); 173 void stopTimerIfNeeded();
184 void autoscrollPressedPart(double delay); 174 void autoscrollPressedPart(double delay);
185 ScrollDirectionPhysical pressedPartScrollDirectionPhysical(); 175 ScrollDirectionPhysical pressedPartScrollDirectionPhysical();
186 ScrollGranularity pressedPartScrollGranularity(); 176 ScrollGranularity pressedPartScrollGranularity();
187 177
188 RawPtrWillBeMember<ScrollableArea> m_scrollableArea; 178 RawPtrWillBeMember<ScrollableArea> m_scrollableArea;
189 ScrollbarOrientation m_orientation; 179 ScrollbarOrientation m_orientation;
(...skipping 20 matching lines...) Expand all
210 float m_elasticOverscroll; 200 float m_elasticOverscroll;
211 201
212 private: 202 private:
213 bool isScrollbar() const override { return true; } 203 bool isScrollbar() const override { return true; }
214 204
215 void invalidate() override { setNeedsPaintInvalidation(); } 205 void invalidate() override { setNeedsPaintInvalidation(); }
216 void invalidateRect(const IntRect&) override { setNeedsPaintInvalidation(); } 206 void invalidateRect(const IntRect&) override { setNeedsPaintInvalidation(); }
217 207
218 float scrollableAreaCurrentPos() const; 208 float scrollableAreaCurrentPos() const;
219 209
210 void updateThumbPosition();
211 void updateThumbProportion();
212
220 bool m_trackNeedsRepaint; 213 bool m_trackNeedsRepaint;
221 bool m_thumbNeedsRepaint; 214 bool m_thumbNeedsRepaint;
222 }; 215 };
223 216
224 DEFINE_TYPE_CASTS(Scrollbar, Widget, widget, widget->isScrollbar(), widget.isScr ollbar()); 217 DEFINE_TYPE_CASTS(Scrollbar, Widget, widget, widget->isScrollbar(), widget.isScr ollbar());
225 218
226 } // namespace blink 219 } // namespace blink
227 220
228 #endif // Scrollbar_h 221 #endif // Scrollbar_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698