summaryrefslogtreecommitdiffstats
path: root/webkit/glue/chromium_bridge_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue/chromium_bridge_impl.cc')
-rw-r--r--webkit/glue/chromium_bridge_impl.cc40
1 files changed, 40 insertions, 0 deletions
diff --git a/webkit/glue/chromium_bridge_impl.cc b/webkit/glue/chromium_bridge_impl.cc
index c936b30..ff977ef 100644
--- a/webkit/glue/chromium_bridge_impl.cc
+++ b/webkit/glue/chromium_bridge_impl.cc
@@ -5,13 +5,22 @@
#include "config.h"
#include "ChromiumBridge.h"
+#include "Cursor.h"
+#include "Frame.h"
+#include "FrameView.h"
#include "HostWindow.h"
+#include "Page.h"
#include "PlatformWidget.h"
#include "ScrollView.h"
#include "Widget.h"
+#undef LOG
+#include "webkit/glue/chrome_client_impl.h"
#include "webkit/glue/glue_util.h"
+#include "webkit/glue/webcursor.h"
#include "webkit/glue/webkit_glue.h"
+#include "webkit/glue/webview_impl.h"
+#include "webkit/glue/webview_delegate.h"
namespace WebCore {
@@ -19,6 +28,23 @@ static PlatformWidget ToPlatform(Widget* widget) {
return widget ? widget->root()->hostWindow()->platformWindow() : 0;
}
+static ChromeClientImpl* ToChromeClient(Widget* widget) {
+ FrameView* view;
+ if (widget->isFrameView()) {
+ view = static_cast<FrameView*>(widget);
+ } else if (widget->parent() && widget->parent()->isFrameView()) {
+ view = static_cast<FrameView*>(widget->parent());
+ } else {
+ return NULL;
+ }
+
+ Page* page = view->frame() ? view->frame()->page() : NULL;
+ if (!page)
+ return NULL;
+
+ return static_cast<ChromeClientImpl*>(page->chrome()->client());
+}
+
// Screen ---------------------------------------------------------------------
int ChromiumBridge::screenDepth(Widget* widget) {
@@ -43,4 +69,18 @@ IntRect ChromiumBridge::screenAvailableRect(Widget* widget) {
webkit_glue::GetScreenInfo(ToPlatform(widget)).available_rect);
}
+// Widget ---------------------------------------------------------------------
+
+void ChromiumBridge::widgetSetCursor(Widget* widget, const Cursor& cursor) {
+ ChromeClientImpl* chrome_client = ToChromeClient(widget);
+ if (chrome_client)
+ chrome_client->SetCursor(WebCursor(cursor.impl()));
+}
+
+void ChromiumBridge::widgetSetFocus(Widget* widget) {
+ ChromeClientImpl* chrome_client = ToChromeClient(widget);
+ if (chrome_client)
+ chrome_client->focus();
+}
+
} // namespace WebCore