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) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_rect.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_size.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/shared_impl/resource.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/thunk/ppb_view_api.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If you add to this struct, be sure to update the serialization in 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ppapi_messages.h. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPAPI_SHARED_EXPORT ViewData { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ViewData(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~ViewData(); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool Equals(const ViewData& other) const; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Rect rect; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_fullscreen; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_page_visible; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Rect clip_rect; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float device_scale; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float css_scale; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PPAPI_SHARED_EXPORT PPB_View_Shared 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : public Resource, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public thunk::PPB_View_API { 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PPB_View_Shared(ResourceObjectType type, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ViewData& data); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~PPB_View_Shared(); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Resource overrides. 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual thunk::PPB_View_API* AsPPB_View_API() OVERRIDE; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // PPB_View_API implementation. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const ViewData& GetData() const OVERRIDE; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual PP_Bool GetRect(PP_Rect* viewport) const OVERRIDE; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual PP_Bool IsFullscreen() const OVERRIDE; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual PP_Bool IsVisible() const OVERRIDE; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual PP_Bool IsPageVisible() const OVERRIDE; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual PP_Bool GetClipRect(PP_Rect* clip) const 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OVERRIDE; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual float GetDeviceScale() const OVERRIDE; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual float GetCSSScale() const OVERRIDE; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ViewData data_; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PPB_View_Shared); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ppapi 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_ 64