summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/android/WidgetAndroid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/android/WidgetAndroid.cpp')
-rw-r--r--WebCore/platform/android/WidgetAndroid.cpp161
1 files changed, 161 insertions, 0 deletions
diff --git a/WebCore/platform/android/WidgetAndroid.cpp b/WebCore/platform/android/WidgetAndroid.cpp
new file mode 100644
index 0000000..3ed3abc
--- /dev/null
+++ b/WebCore/platform/android/WidgetAndroid.cpp
@@ -0,0 +1,161 @@
+/*
+**
+** Copyright 2007, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+
+#include "config.h"
+#include "Widget.h"
+#include "WebCoreViewBridge.h"
+#include "WidgetClient.h"
+#include "Font.h"
+#include "IntRect.h"
+#include "GraphicsContext.h"
+#include "FrameAndroid.h"
+#include "WebCoreFrameBridge.h"
+#include "Document.h"
+#include "Element.h"
+
+#define LOG_TAG "WebCore"
+#undef LOG
+#include "utils/Log.h"
+
+namespace WebCore {
+
+#define notImplemented() LOGV("WidgetAndroid: NotYetImplemented")
+
+ class WidgetPrivate
+ {
+ public:
+ Font m_font;
+ WebCoreViewBridge* m_viewbridge; // we point to this, but don't delete it (unless we had refcounting...)
+ WidgetClient* m_client;
+ bool m_visible;
+ };
+
+ Widget::Widget() : data(new WidgetPrivate)
+ {
+ data->m_viewbridge = NULL;
+ data->m_client = NULL;
+ data->m_visible = false;
+ }
+
+ Widget::~Widget()
+ {
+ Release(data->m_viewbridge);
+ delete data;
+ }
+
+ void Widget::setEnabled(bool enabled)
+ {
+ WebCoreViewBridge* view = data->m_viewbridge;
+ ASSERT(data->m_viewbridge);
+ if (view)
+ view->setEnabled(enabled);
+ }
+
+ bool Widget::isEnabled() const
+ {
+ ASSERT(data->m_viewbridge);
+ return data->m_viewbridge->isEnabled();
+ }
+
+ IntRect Widget::frameGeometry() const
+ {
+ ASSERT(data->m_viewbridge);
+ return data->m_viewbridge->getBounds();
+ }
+
+ void Widget::setFocus()
+ {
+ ASSERT(data->m_viewbridge);
+ data->m_viewbridge->setFocus(true);
+ }
+
+ void Widget::paint(GraphicsContext* ctx, const IntRect& r)
+ {
+ WebCoreViewBridge* viewBridge = data->m_viewbridge;
+ ASSERT(viewBridge);
+ viewBridge->layout();
+ viewBridge->draw(ctx, r, true);
+ }
+
+ void Widget::setCursor(const Cursor& cursor)
+ {
+ notImplemented();
+ }
+
+ void Widget::show()
+ {
+ if (!data || data->m_visible)
+ return;
+
+ data->m_visible = true;
+ }
+
+ void Widget::hide()
+ {
+ notImplemented();
+ }
+
+ void Widget::setFrameGeometry(const IntRect& rect)
+ {
+ ASSERT(data->m_viewbridge);
+ data->m_viewbridge->setBounds(rect.x(), rect.y(), rect.x() + rect.width(), rect.y() + rect.height());
+ }
+
+ void Widget::setIsSelected(bool isSelected)
+ {
+ notImplemented();
+ }
+
+ void Widget::invalidate()
+ {
+ notImplemented();
+ }
+
+ void Widget::invalidateRect(const IntRect&)
+ {
+ notImplemented();
+ }
+
+ void Widget::removeFromParent()
+ {
+ notImplemented();
+ }
+
+ void Widget::setClient(WidgetClient* c)
+ {
+ data->m_client = c;
+ }
+
+ WidgetClient* Widget::client() const
+ {
+ return data->m_client;
+ }
+
+ WebCoreViewBridge* Widget::getWebCoreViewBridge() const
+ {
+ return data->m_viewbridge;
+ }
+
+ void Widget::setWebCoreViewBridge(WebCoreViewBridge* view)
+ {
+ Release(data->m_viewbridge);
+ data->m_viewbridge = view;
+ view->setWidget(this);
+ Retain(data->m_viewbridge);
+ }
+
+} // WebCore namepsace