cef/libcef/webview_host.h
Marshall Greenblatt 1073577d03 Make CEF compliant with Google/Chromium style (issue #473).
- Add a new check_style tool based on Google's cpplint that can be used to verify compliance of pending changes and specific files/directories.
- Update existing CEF source code to be compliant with the style requirements.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@463 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-01-09 23:46:23 +00:00

80 lines
2.5 KiB
C++

// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CEF_LIBCEF_WEBVIEW_HOST_H_
#define CEF_LIBCEF_WEBVIEW_HOST_H_
#pragma once
#include "libcef/webwidget_host.h"
#include "base/basictypes.h"
#include "ui/gfx/native_widget_types.h"
#if defined(TOOLKIT_USES_GTK)
#include "webkit/plugins/npapi/gtk_plugin_container_manager.h"
#endif
struct WebPreferences;
class BrowserWebViewDelegate;
namespace WebKit {
class WebDevToolsAgentClient;
class WebView;
}
// This class is a simple NativeView-based host for a WebView
class WebViewHost : public WebWidgetHost {
public:
// The new instance is deleted once the associated NativeView is destroyed.
// The newly created window should be resized after it is created, using the
// MoveWindow (or equivalent) function.
static WebViewHost* Create(gfx::NativeView parent_view,
const gfx::Rect& rect,
BrowserWebViewDelegate* delegate,
PaintDelegate* paint_delegate,
WebKit::WebDevToolsAgentClient* devtools_client,
const WebPreferences& prefs);
virtual ~WebViewHost();
WebKit::WebView* webview() const;
#if defined(TOOLKIT_USES_GTK)
// Create a new plugin parent container for a given plugin XID.
void CreatePluginContainer(gfx::PluginWindowHandle id);
// Destroy the plugin parent container when a plugin has been destroyed.
void DestroyPluginContainer(gfx::PluginWindowHandle id);
webkit::npapi::GtkPluginContainerManager* plugin_container_manager() {
return &plugin_container_manager_;
}
virtual void KeyEvent(GdkEventKey* event);
#elif defined(OS_MACOSX)
void SetIsActive(bool active);
virtual void MouseEvent(NSEvent* event);
virtual void KeyEvent(NSEvent* event);
virtual void SetFocus(bool enable);
#endif
protected:
explicit WebViewHost(BrowserWebViewDelegate* delegate);
#if defined(OS_WIN)
virtual bool WndProc(UINT message, WPARAM wparam, LPARAM lparam);
virtual void MouseEvent(UINT message, WPARAM wparam, LPARAM lparam);
virtual void KeyEvent(UINT message, WPARAM wparam, LPARAM lparam);
#endif
#if defined(TOOLKIT_USES_GTK)
// Helper class that creates and moves plugin containers.
webkit::npapi::GtkPluginContainerManager plugin_container_manager_;
#endif
// The delegate pointer will always outlive the WebViewHost object.
BrowserWebViewDelegate* delegate_;
};
#endif // CEF_LIBCEF_WEBVIEW_HOST_H_