1ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// found in the LICENSE file. 4ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 5ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#ifndef CONTENT_COMMON_WEBPLUGIN_GEOMETRY_H_ 6ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#define CONTENT_COMMON_WEBPLUGIN_GEOMETRY_H_ 7ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 8ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include <vector> 9ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 10ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "base/basictypes.h" 11ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "ui/gfx/native_widget_types.h" 12ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "ui/gfx/rect.h" 13ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochnamespace content { 15ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 16ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Describes the new location for a plugin window. 17ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochstruct WebPluginGeometry { 18ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch WebPluginGeometry(); 19ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch ~WebPluginGeometry(); 20ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 21ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool Equals(const WebPluginGeometry& rhs) const; 22ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 23ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // On Windows, this is the plugin window in the plugin process. 24ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // On X11, this is the XID of the plugin-side GtkPlug containing the 25ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // GtkSocket hosting the actual plugin window. 26ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // 27ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // On Mac OS X, all of the plugin types are currently "windowless" 28ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // (window == 0) except for the special case of the GPU plugin, 29ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // which currently performs rendering on behalf of the Pepper 3D API 30ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // and WebGL. The GPU plugin uses a simple integer for the 31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // PluginWindowHandle which is used to map to a side data structure 32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // containing information about the plugin. Soon this plugin will be 33ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // generalized, at which point this mechanism will be rethought or 34ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // removed. 35ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch gfx::PluginWindowHandle window; 36ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch gfx::Rect window_rect; 37ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // Clip rect (include) and cutouts (excludes), relative to 38ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // window_rect origin. 39ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch gfx::Rect clip_rect; 40ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch std::vector<gfx::Rect> cutout_rects; 41ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool rects_valid; 42ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool visible; 43ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch}; 44ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 45ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} // namespace content 46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 47ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#endif // CONTENT_COMMON_WEBPLUGIN_GEOMETRY_H_ 48