diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-16 05:33:47 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-16 05:33:47 +0000 |
commit | cf13bb696f6a50b06930ed8fabb0984cd6af7be9 (patch) | |
tree | a883217d4a1eee49750954f851188c5ca6fa6308 /webkit/glue/webwidget.h | |
parent | 05158051ea881677c03a22ddf38a3e6779cebb9e (diff) | |
download | chromium_src-cf13bb696f6a50b06930ed8fabb0984cd6af7be9.zip chromium_src-cf13bb696f6a50b06930ed8fabb0984cd6af7be9.tar.gz chromium_src-cf13bb696f6a50b06930ed8fabb0984cd6af7be9.tar.bz2 |
Reverting 20854.
Review URL: http://codereview.chromium.org/155621
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20855 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webwidget.h')
-rw-r--r-- | webkit/glue/webwidget.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/webkit/glue/webwidget.h b/webkit/glue/webwidget.h new file mode 100644 index 0000000..6653e28 --- /dev/null +++ b/webkit/glue/webwidget.h @@ -0,0 +1,80 @@ +// Copyright (c) 2006-2008 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 WEBKIT_GLUE_WEBWIDGET_H__ +#define WEBKIT_GLUE_WEBWIDGET_H__ + +#include "skia/ext/platform_canvas.h" +#include "webkit/glue/webtextdirection.h" + +namespace WebKit { +class WebInputEvent; +struct WebRect; +struct WebSize; +} + +class WebWidgetDelegate; + +class WebWidget { + public: + WebWidget() {} + + // This method creates a WebWidget that is initially invisible and positioned + // according to the given bounds relative to the specified parent window. + // The caller is responsible for showing the WebWidget's view window (see + // GetViewWindow) once it is ready to have the WebWidget appear on the screen. + static WebWidget* Create(WebWidgetDelegate* delegate); + + // This method closes and deletes the WebWidget. + virtual void Close() = 0; + + // Called to resize the WebWidget. + virtual void Resize(const WebKit::WebSize& new_size) = 0; + + // Returns the current size of the WebWidget. + virtual WebKit::WebSize GetSize() = 0; + + // Called to layout the WebWidget. This MUST be called before Paint, and it + // may result in calls to WebWidgetDelegate::DidInvalidateRect. + virtual void Layout() = 0; + + // Called to paint the specified region of the WebWidget onto the given canvas. + // You MUST call Layout before calling this method. It is okay to call Paint + // multiple times once Layout has been called, assuming no other changes are + // made to the WebWidget (e.g., once events are processed, it should be assumed + // that another call to Layout is warranted before painting again). + virtual void Paint(skia::PlatformCanvas* canvas, + const WebKit::WebRect& rect) = 0; + + // Called to inform the WebWidget of an input event. + // Returns true if the event has been processed, false otherwise. + virtual bool HandleInputEvent(const WebKit::WebInputEvent* input_event) = 0; + + // Called to inform the WebWidget that mouse capture was lost. + virtual void MouseCaptureLost() = 0; + + // Called to inform the WebWidget that it has gained or lost keyboard focus. + virtual void SetFocus(bool enable) = 0; + + // Called to inform the webwidget of a composition event from IMM + // (Input Method Manager). + virtual bool ImeSetComposition(int string_type, int cursor_position, + int target_start, int target_end, + const std::wstring& ime_string) = 0; + + // Retrieve the status of this widget required by IME APIs. + virtual bool ImeUpdateStatus(bool* enable_ime, + WebKit::WebRect* caret_rect) = 0; + + // Changes the text direction of the selected input node. + virtual void SetTextDirection(WebTextDirection direction) = 0; + + protected: + virtual ~WebWidget() {} + + private: + DISALLOW_EVIL_CONSTRUCTORS(WebWidget); +}; + +#endif // #ifndef WEBKIT_GLUE_WEBWIDGET_H__ |