Home | History | Annotate | Download | only in pepper
      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