| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 m_scrollbar->setProportion(length, m_scrollbar->totalSize()); | 87 m_scrollbar->setProportion(length, m_scrollbar->totalSize()); |
| 88 } | 88 } |
| 89 | 89 |
| 90 int WebScrollbarImpl::value() const | 90 int WebScrollbarImpl::value() const |
| 91 { | 91 { |
| 92 return m_scrollbar->value(); | 92 return m_scrollbar->value(); |
| 93 } | 93 } |
| 94 | 94 |
| 95 void WebScrollbarImpl::setValue(int position) | 95 void WebScrollbarImpl::setValue(int position) |
| 96 { | 96 { |
| 97 m_scrollbar->setValue(position); | 97 m_scrollbar->setValue(position, Scrollbar::NotFromScrollAnimator); |
| 98 } | 98 } |
| 99 | 99 |
| 100 void WebScrollbarImpl::setDocumentSize(int size) | 100 void WebScrollbarImpl::setDocumentSize(int size) |
| 101 { | 101 { |
| 102 int length = m_scrollbar->orientation() == HorizontalScrollbar ? m_scrollbar
->width() : m_scrollbar->height(); | 102 int length = m_scrollbar->orientation() == HorizontalScrollbar ? m_scrollbar
->width() : m_scrollbar->height(); |
| 103 m_scrollbar->setEnabled(size > length); | 103 m_scrollbar->setEnabled(size > length); |
| 104 m_scrollbar->setProportion(length, size); | 104 m_scrollbar->setProportion(length, size); |
| 105 } | 105 } |
| 106 | 106 |
| 107 void WebScrollbarImpl::scroll(ScrollDirection direction, ScrollGranularity granu
larity, float multiplier) | 107 void WebScrollbarImpl::scroll(ScrollDirection direction, ScrollGranularity granu
larity, float multiplier) |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 int maxScrollDelta = m_scrollbar->maximum() - m_scrollbar->value(); | 211 int maxScrollDelta = m_scrollbar->maximum() - m_scrollbar->value(); |
| 212 float delta = m_scrollbar->orientation() == HorizontalScrollbar ? mousew
heel.deltaX : mousewheel.deltaY; | 212 float delta = m_scrollbar->orientation() == HorizontalScrollbar ? mousew
heel.deltaX : mousewheel.deltaY; |
| 213 if ((delta < 0 && maxScrollDelta > 0) || (delta > 0 && m_scrollbar->valu
e() > 0)) { | 213 if ((delta < 0 && maxScrollDelta > 0) || (delta > 0 && m_scrollbar->valu
e() > 0)) { |
| 214 if (mousewheel.scrollByPage) { | 214 if (mousewheel.scrollByPage) { |
| 215 ASSERT(m_scrollbar->orientation() == VerticalScrollbar); | 215 ASSERT(m_scrollbar->orientation() == VerticalScrollbar); |
| 216 bool negative = delta < 0; | 216 bool negative = delta < 0; |
| 217 delta = max(max(static_cast<float>(m_scrollbar->visibleSize()) *
Scrollbar::minFractionToStepWhenPaging(), static_cast<float>(m_scrollbar->visib
leSize() - Scrollbar::maxOverlapBetweenPages())), 1.0f); | 217 delta = max(max(static_cast<float>(m_scrollbar->visibleSize()) *
Scrollbar::minFractionToStepWhenPaging(), static_cast<float>(m_scrollbar->visib
leSize() - Scrollbar::maxOverlapBetweenPages())), 1.0f); |
| 218 if (negative) | 218 if (negative) |
| 219 delta *= -1; | 219 delta *= -1; |
| 220 } | 220 } |
| 221 m_scrollbar->setValue(m_scrollbar->value() - delta); | 221 m_scrollbar->scroll((m_scrollbar->orientation() == HorizontalScrollb
ar) ? WebCore::ScrollLeft : WebCore::ScrollUp, WebCore::ScrollByPixel, delta); |
| 222 return true; | 222 return true; |
| 223 } | 223 } |
| 224 | 224 |
| 225 return false; | 225 return false; |
| 226 } | 226 } |
| 227 | 227 |
| 228 bool WebScrollbarImpl::onKeyDown(const WebInputEvent& event) | 228 bool WebScrollbarImpl::onKeyDown(const WebInputEvent& event) |
| 229 { | 229 { |
| 230 WebKeyboardEvent keyboard = *static_cast<const WebKeyboardEvent*>(&event
); | 230 WebKeyboardEvent keyboard = *static_cast<const WebKeyboardEvent*>(&event
); |
| 231 int keyCode; | 231 int keyCode; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 255 } | 255 } |
| 256 WebCore::ScrollDirection scrollDirection; | 256 WebCore::ScrollDirection scrollDirection; |
| 257 WebCore::ScrollGranularity scrollGranularity; | 257 WebCore::ScrollGranularity scrollGranularity; |
| 258 if (WebViewImpl::mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollG
ranularity)) { | 258 if (WebViewImpl::mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollG
ranularity)) { |
| 259 // Will return false if scroll direction wasn't compatible with this
scrollbar. | 259 // Will return false if scroll direction wasn't compatible with this
scrollbar. |
| 260 return m_scrollbar->scroll(scrollDirection, scrollGranularity); | 260 return m_scrollbar->scroll(scrollDirection, scrollGranularity); |
| 261 } | 261 } |
| 262 return false; | 262 return false; |
| 263 } | 263 } |
| 264 | 264 |
| 265 int WebScrollbarImpl::scrollSize(WebCore::ScrollbarOrientation orientation) cons
t |
| 266 { |
| 267 return (orientation == m_scrollbar->orientation()) ? (m_scrollbar->totalSize
() - m_scrollbar->visibleSize()) : 0; |
| 268 } |
| 269 |
| 270 void WebScrollbarImpl::setScrollOffsetFromAnimation(const WebCore::IntPoint& off
set) |
| 271 { |
| 272 m_scrollbar->setValue((m_scrollbar->orientation() == HorizontalScrollbar) ?
offset.x() : offset.y(), Scrollbar::FromScrollAnimator); |
| 273 } |
| 274 |
| 265 void WebScrollbarImpl::valueChanged(WebCore::Scrollbar*) | 275 void WebScrollbarImpl::valueChanged(WebCore::Scrollbar*) |
| 266 { | 276 { |
| 267 m_client->valueChanged(this); | 277 m_client->valueChanged(this); |
| 268 } | 278 } |
| 269 | 279 |
| 270 void WebScrollbarImpl::invalidateScrollbarRect(WebCore::Scrollbar*, const WebCor
e::IntRect& rect) | 280 void WebScrollbarImpl::invalidateScrollbarRect(WebCore::Scrollbar*, const WebCor
e::IntRect& rect) |
| 271 { | 281 { |
| 272 WebRect webrect(rect); | 282 WebRect webrect(rect); |
| 273 webrect.x += m_scrollbar->x(); | 283 webrect.x += m_scrollbar->x(); |
| 274 webrect.y += m_scrollbar->y(); | 284 webrect.y += m_scrollbar->y(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 288 void WebScrollbarImpl::getTickmarks(Vector<WebCore::IntRect>& tickmarks) const | 298 void WebScrollbarImpl::getTickmarks(Vector<WebCore::IntRect>& tickmarks) const |
| 289 { | 299 { |
| 290 WebVector<WebRect> ticks; | 300 WebVector<WebRect> ticks; |
| 291 m_client->getTickmarks(const_cast<WebScrollbarImpl*>(this), &ticks); | 301 m_client->getTickmarks(const_cast<WebScrollbarImpl*>(this), &ticks); |
| 292 tickmarks.resize(ticks.size()); | 302 tickmarks.resize(ticks.size()); |
| 293 for (size_t i = 0; i < ticks.size(); ++i) | 303 for (size_t i = 0; i < ticks.size(); ++i) |
| 294 tickmarks[i] = ticks[i]; | 304 tickmarks[i] = ticks[i]; |
| 295 } | 305 } |
| 296 | 306 |
| 297 } // namespace WebKit | 307 } // namespace WebKit |
| OLD | NEW |