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 8 namespace blink { 9 class WebLayer; 10 struct WebCursorInfo; 11 struct WebRect; 12 } // namespace blink 13 14 namespace content { 15 16 // This class is like a lightweight WebPluginContainer for fullscreen PPAPI 17 // plugins, that only handles painting. 18 class 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