Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / content / renderer / pepper / fullscreen_container.h
blob9cc540bc27d83d92531113233ac9b2db230cb6d9
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.
5 #ifndef CONTENT_RENDERER_PEPPER_FULLSCREEN_CONTAINER_H_
6 #define CONTENT_RENDERER_PEPPER_FULLSCREEN_CONTAINER_H_
8 namespace blink {
9 class WebLayer;
10 struct WebCursorInfo;
11 struct WebRect;
12 } // namespace blink
14 namespace content {
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;
23 // Invalidates a partial region of the plugin.
24 virtual void InvalidateRect(const blink::WebRect&) = 0;
26 // Scrolls a partial region of the plugin in the given direction.
27 virtual void ScrollRect(int dx, int dy, const blink::WebRect&) = 0;
29 // Destroys the fullscreen window. This also destroys the FullscreenContainer
30 // instance.
31 virtual void Destroy() = 0;
33 // Notifies the container that the mouse cursor has changed.
34 virtual void DidChangeCursor(const blink::WebCursorInfo& cursor) = 0;
36 virtual void SetLayer(blink::WebLayer* layer) = 0;
38 protected:
39 virtual ~FullscreenContainer() {}
42 } // namespace content
44 #endif // CONTENT_RENDERER_PEPPER_FULLSCREEN_CONTAINER_H_