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

Unified Diff: chrome/renderer/pepper_scrollbar_widget.cc

Issue 6646025: Deleted WebPluginDelegatePepper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/pepper_scrollbar_widget.h ('k') | chrome/renderer/pepper_widget.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/pepper_scrollbar_widget.cc
===================================================================
--- chrome/renderer/pepper_scrollbar_widget.cc (revision 77518)
+++ chrome/renderer/pepper_scrollbar_widget.cc (working copy)
@@ -1,300 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/renderer/pepper_scrollbar_widget.h"
-
-#include "base/basictypes.h"
-#include "base/logging.h"
-#include "base/message_loop.h"
-#include "chrome/renderer/pepper_devices.h"
-#include "skia/ext/platform_canvas.h"
-#include "skia/ext/platform_device.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebScrollbar.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebVector.h"
-#include "webkit/plugins/npapi/plugin_instance.h"
-#include "webkit/glue/webkit_glue.h"
-
-using WebKit::WebInputEvent;
-using WebKit::WebKeyboardEvent;
-using WebKit::WebMouseEvent;
-using WebKit::WebMouseWheelEvent;
-using WebKit::WebRect;
-using WebKit::WebScrollbar;
-using WebKit::WebVector;
-
-
-// Anonymous namespace for functions converting NPAPI to WebInputEvents types.
-namespace {
-
-WebKeyboardEvent BuildKeyEvent(const NPPepperEvent& event) {
- WebKeyboardEvent key_event;
- switch (event.type) {
- case NPEventType_RawKeyDown:
- key_event.type = WebInputEvent::RawKeyDown;
- break;
- case NPEventType_KeyDown:
- key_event.type = WebInputEvent::KeyDown;
- break;
- case NPEventType_KeyUp:
- key_event.type = WebInputEvent::KeyUp;
- break;
- }
- key_event.timeStampSeconds = event.timeStampSeconds;
- key_event.modifiers = event.u.key.modifier;
- key_event.windowsKeyCode = event.u.key.normalizedKeyCode;
- return key_event;
-}
-
-WebKeyboardEvent BuildCharEvent(const NPPepperEvent& event) {
- WebKeyboardEvent key_event;
- key_event.type = WebInputEvent::Char;
- key_event.timeStampSeconds = event.timeStampSeconds;
- key_event.modifiers = event.u.character.modifier;
- // For consistency, check that the sizes of the texts agree.
- DCHECK(sizeof(event.u.character.text) == sizeof(key_event.text));
- DCHECK(sizeof(event.u.character.unmodifiedText) ==
- sizeof(key_event.unmodifiedText));
- for (size_t i = 0; i < WebKeyboardEvent::textLengthCap; ++i) {
- key_event.text[i] = event.u.character.text[i];
- key_event.unmodifiedText[i] = event.u.character.unmodifiedText[i];
- }
- return key_event;
-}
-
-WebMouseEvent BuildMouseEvent(const NPPepperEvent& event) {
- WebMouseEvent mouse_event;
- switch (event.type) {
- case NPEventType_MouseDown:
- mouse_event.type = WebInputEvent::MouseDown;
- break;
- case NPEventType_MouseUp:
- mouse_event.type = WebInputEvent::MouseUp;
- break;
- case NPEventType_MouseMove:
- mouse_event.type = WebInputEvent::MouseMove;
- break;
- case NPEventType_MouseEnter:
- mouse_event.type = WebInputEvent::MouseEnter;
- break;
- case NPEventType_MouseLeave:
- mouse_event.type = WebInputEvent::MouseLeave;
- break;
- }
- mouse_event.timeStampSeconds = event.timeStampSeconds;
- mouse_event.modifiers = event.u.mouse.modifier;
- mouse_event.button = static_cast<WebMouseEvent::Button>(event.u.mouse.button);
- mouse_event.x = event.u.mouse.x;
- mouse_event.y = event.u.mouse.y;
- mouse_event.clickCount = event.u.mouse.clickCount;
- return mouse_event;
-}
-
-WebMouseWheelEvent BuildMouseWheelEvent(const NPPepperEvent& event) {
- WebMouseWheelEvent mouse_wheel_event;
- mouse_wheel_event.type = WebInputEvent::MouseWheel;
- mouse_wheel_event.timeStampSeconds = event.timeStampSeconds;
- mouse_wheel_event.modifiers = event.u.wheel.modifier;
- mouse_wheel_event.deltaX = event.u.wheel.deltaX;
- mouse_wheel_event.deltaY = event.u.wheel.deltaY;
- mouse_wheel_event.wheelTicksX = event.u.wheel.wheelTicksX;
- mouse_wheel_event.wheelTicksY = event.u.wheel.wheelTicksY;
- mouse_wheel_event.scrollByPage = event.u.wheel.scrollByPage;
- return mouse_wheel_event;
-}
-
-} // namespace
-
-PepperScrollbarWidget::PepperScrollbarWidget(
- const NPScrollbarCreateParams& params) {
- scrollbar_.reset(WebScrollbar::create(
- static_cast<WebKit::WebScrollbarClient*>(this),
- params.vertical ? WebScrollbar::Vertical : WebScrollbar::Horizontal));
- AddRef();
-}
-
-PepperScrollbarWidget::~PepperScrollbarWidget() {
-}
-
-void PepperScrollbarWidget::Destroy() {
- Release();
-}
-
-void PepperScrollbarWidget::Paint(Graphics2DDeviceContext* context,
- const NPRect& dirty) {
- gfx::Rect rect(dirty.left, dirty.top, dirty.right - dirty.left,
- dirty.bottom - dirty.top);
- scrollbar_->paint(webkit_glue::ToWebCanvas(context->canvas()), rect);
- dirty_rect_ = dirty_rect_.Subtract(rect);
-}
-
-bool PepperScrollbarWidget::HandleEvent(const NPPepperEvent& event) {
- bool rv = false;
-
- switch (event.type) {
- case NPEventType_Undefined:
- return false;
- case NPEventType_MouseDown:
- case NPEventType_MouseUp:
- case NPEventType_MouseMove:
- case NPEventType_MouseEnter:
- case NPEventType_MouseLeave:
- rv = scrollbar_->handleInputEvent(BuildMouseEvent(event));
- break;
- case NPEventType_MouseWheel:
- rv = scrollbar_->handleInputEvent(BuildMouseWheelEvent(event));
- break;
- case NPEventType_RawKeyDown:
- case NPEventType_KeyDown:
- case NPEventType_KeyUp:
- rv = scrollbar_->handleInputEvent(BuildKeyEvent(event));
- break;
- case NPEventType_Char:
- rv = scrollbar_->handleInputEvent(BuildCharEvent(event));
- break;
- case NPEventType_Minimize:
- case NPEventType_Focus:
- case NPEventType_Device:
- // NOTIMPLEMENTED();
- break;
- }
-
- return rv;
-}
-
-void PepperScrollbarWidget::GetProperty(
- NPWidgetProperty property, void* value) {
- switch (property) {
- case NPWidgetPropertyLocation: {
- NPRect* rv = static_cast<NPRect*>(value);
- rv->left = location_.x();
- rv->top = location_.y();
- rv->right = location_.right();
- rv->bottom = location_.bottom();
- break;
- }
- case NPWidgetPropertyDirtyRect: {
- NPRect* rv = reinterpret_cast<NPRect*>(value);
- rv->left = dirty_rect_.x();
- rv->top = dirty_rect_.y();
- rv->right = dirty_rect_.right();
- rv->bottom = dirty_rect_.bottom();
- break;
- }
- case NPWidgetPropertyScrollbarThickness: {
- int32* rv = static_cast<int32*>(value);
- *rv = WebScrollbar::defaultThickness();
- break;
- }
- case NPWidgetPropertyScrollbarValue: {
- int32* rv = static_cast<int32*>(value);
- *rv = scrollbar_->value();
- break;
- }
- default:
- NOTREACHED();
- break;
- }
-}
-
-void PepperScrollbarWidget::SetProperty(
- NPWidgetProperty property, void* value) {
- switch (property) {
- case NPWidgetPropertyLocation: {
- NPRect* r = static_cast<NPRect*>(value);
- location_ = gfx::Rect(
- r->left, r->top, r->right - r->left, r->bottom - r->top);
- scrollbar_->setLocation(location_);
- break;
- }
- case NPWidgetPropertyScrollbarValue: {
- int32* position = static_cast<int*>(value);
- scrollbar_->setValue(*position);
- break;
- }
- case NPWidgetPropertyScrollbarDocumentSize: {
- int32* total_length = static_cast<int32*>(value);
- scrollbar_->setDocumentSize(*total_length);
- break;
- }
- case NPWidgetPropertyScrollbarTickMarks: {
- NPScrollbarTickMarks* tickmarks =
- static_cast<NPScrollbarTickMarks*>(value);
- tickmarks_.resize(tickmarks->count);
- for (uint32 i = 0; i < tickmarks->count; ++i) {
- WebRect rect(
- tickmarks->tickmarks[i].left,
- tickmarks->tickmarks[i].top,
- tickmarks->tickmarks[i].right - tickmarks->tickmarks[i].left,
- tickmarks->tickmarks[i].bottom - tickmarks->tickmarks[i].top);
- tickmarks_[i] = rect;
- }
- dirty_rect_ = location_;
- NotifyInvalidate();
- break;
- }
- case NPWidgetPropertyScrollbarScrollByLine:
- case NPWidgetPropertyScrollbarScrollByPage:
- case NPWidgetPropertyScrollbarScrollByDocument:
- case NPWidgetPropertyScrollbarScrollByPixels: {
- bool forward;
- float multiplier = 1.0;
-
- WebScrollbar::ScrollGranularity granularity;
- if (property == NPWidgetPropertyScrollbarScrollByLine) {
- forward = *static_cast<bool*>(value);
- granularity = WebScrollbar::ScrollByLine;
- } else if (property == NPWidgetPropertyScrollbarScrollByPage) {
- forward = *static_cast<bool*>(value);
- granularity = WebScrollbar::ScrollByPage;
- } else if (property == NPWidgetPropertyScrollbarScrollByDocument) {
- forward = *static_cast<bool*>(value);
- granularity = WebScrollbar::ScrollByDocument;
- } else {
- multiplier = static_cast<float>(*static_cast<int32*>(value));
- forward = multiplier >= 0;
- if (multiplier < 0)
- multiplier *= -1;
- granularity = WebScrollbar::ScrollByPixel;
- }
- scrollbar_->scroll(
- forward ? WebScrollbar::ScrollForward : WebScrollbar::ScrollBackward,
- granularity, multiplier);
- break;
- }
- default:
- NOTREACHED();
- break;
- }
-}
-
-void PepperScrollbarWidget::valueChanged(WebScrollbar*) {
- WidgetPropertyChanged(NPWidgetPropertyScrollbarValue);
-}
-
-void PepperScrollbarWidget::invalidateScrollbarRect(WebScrollbar*,
- const WebRect& rect) {
- dirty_rect_ = dirty_rect_.Union(rect);
- // Can't call into the client to tell them about the invalidate right away,
- // since the Scrollbar code is still in the middle of updating its internal
- // state.
- MessageLoop::current()->PostTask(
- FROM_HERE,
- NewRunnableMethod(this, &PepperScrollbarWidget::NotifyInvalidate));
-}
-
-void PepperScrollbarWidget::getTickmarks(WebKit::WebScrollbar*,
- WebVector<WebRect>* tickmarks) const {
- if (tickmarks_.empty()) {
- WebRect* rects = NULL;
- tickmarks->assign(rects, 0);
- } else {
- tickmarks->assign(&tickmarks_[0], tickmarks_.size());
- }
-}
-
-void PepperScrollbarWidget::NotifyInvalidate() {
- if (!dirty_rect_.IsEmpty())
- WidgetPropertyChanged(NPWidgetPropertyDirtyRect);
-}
« no previous file with comments | « chrome/renderer/pepper_scrollbar_widget.h ('k') | chrome/renderer/pepper_widget.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698