15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#ifndef CONTENT_RENDERER_PEPPER_PPB_FULLSCREEN_CONTAINER_IMPL_H_ 6bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#define CONTENT_RENDERER_PEPPER_PPB_FULLSCREEN_CONTAINER_IMPL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 9bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebLayer; 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebCursorInfo; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebRect; 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace blink 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochnamespace content { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This class is like a lightweight WebPluginContainer for fullscreen PPAPI 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// plugins, that only handles painting. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FullscreenContainer { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invalidates the full plugin region. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Invalidate() = 0; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invalidates a partial region of the plugin. 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void InvalidateRect(const blink::WebRect&) = 0; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Scrolls a partial region of the plugin in the given direction. 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void ScrollRect(int dx, int dy, const blink::WebRect&) = 0; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Destroys the fullscreen window. This also destroys the FullscreenContainer 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // instance. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Destroy() = 0; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Notifies the container that the mouse cursor has changed. 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DidChangeCursor(const blink::WebCursorInfo& cursor) = 0; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void SetLayer(blink::WebLayer* layer) = 0; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~FullscreenContainer() {} 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch} // namespace content 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 44bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#endif // CONTENT_RENDERER_PEPPER_PPB_FULLSCREEN_CONTAINER_IMPL_H_ 45