summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webwidget.h
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-16 05:33:47 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-16 05:33:47 +0000
commitcf13bb696f6a50b06930ed8fabb0984cd6af7be9 (patch)
treea883217d4a1eee49750954f851188c5ca6fa6308 /webkit/glue/webwidget.h
parent05158051ea881677c03a22ddf38a3e6779cebb9e (diff)
downloadchromium_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.h80
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__