1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_RENDERER_PEPPER_PPB_FULLSCREEN_CONTAINER_IMPL_H_ 6#define CONTENT_RENDERER_PEPPER_PPB_FULLSCREEN_CONTAINER_IMPL_H_ 7 8namespace blink { 9class WebLayer; 10struct WebCursorInfo; 11struct WebRect; 12} // namespace blink 13 14namespace content { 15 16// This class is like a lightweight WebPluginContainer for fullscreen PPAPI 17// plugins, that only handles painting. 18class FullscreenContainer { 19 public: 20 // Invalidates the full plugin region. 21 virtual void Invalidate() = 0; 22 23 // Invalidates a partial region of the plugin. 24 virtual void InvalidateRect(const blink::WebRect&) = 0; 25 26 // Scrolls a partial region of the plugin in the given direction. 27 virtual void ScrollRect(int dx, int dy, const blink::WebRect&) = 0; 28 29 // Destroys the fullscreen window. This also destroys the FullscreenContainer 30 // instance. 31 virtual void Destroy() = 0; 32 33 // Notifies the container that the mouse cursor has changed. 34 virtual void DidChangeCursor(const blink::WebCursorInfo& cursor) = 0; 35 36 virtual void SetLayer(blink::WebLayer* layer) = 0; 37 38 protected: 39 virtual ~FullscreenContainer() {} 40}; 41 42} // namespace content 43 44#endif // CONTENT_RENDERER_PEPPER_PPB_FULLSCREEN_CONTAINER_IMPL_H_ 45