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.cpp132
1 files changed, 50 insertions, 82 deletions
diff --git a/WebCore/platform/android/WidgetAndroid.cpp b/WebCore/platform/android/WidgetAndroid.cpp
index 3ed3abc..baf2a0a 100644
--- a/WebCore/platform/android/WidgetAndroid.cpp
+++ b/WebCore/platform/android/WidgetAndroid.cpp
@@ -17,78 +17,68 @@
#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"
+#include "Font.h"
+#include "FrameView.h"
+#include "GraphicsContext.h"
+#include "HostWindow.h"
+#include "NotImplemented.h"
-#define LOG_TAG "WebCore"
-#undef LOG
-#include "utils/Log.h"
+#include "WebCoreFrameBridge.h"
+#include "WebCoreViewBridge.h"
+#include "WebViewCore.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)
+ Widget::Widget(PlatformWidget widget) : m_data(new WidgetPrivate)
{
- data->m_viewbridge = NULL;
- data->m_client = NULL;
- data->m_visible = false;
+ init(widget);
}
Widget::~Widget()
{
- Release(data->m_viewbridge);
- delete data;
+ ASSERT(!parent());
+ releasePlatformWidget();
+ delete m_data;
}
- void Widget::setEnabled(bool enabled)
+ IntRect Widget::frameRect() const
{
- WebCoreViewBridge* view = data->m_viewbridge;
- ASSERT(data->m_viewbridge);
- if (view)
- view->setEnabled(enabled);
+ // FIXME: use m_frame instead?
+ if (!platformWidget())
+ return IntRect(0, 0, 0, 0);
+ return platformWidget()->getBounds();
}
- bool Widget::isEnabled() const
+ void Widget::setFocus()
{
- ASSERT(data->m_viewbridge);
- return data->m_viewbridge->isEnabled();
+ notImplemented();
}
- IntRect Widget::frameGeometry() const
+ void Widget::paint(GraphicsContext* ctx, const IntRect& r)
{
- ASSERT(data->m_viewbridge);
- return data->m_viewbridge->getBounds();
+ // FIXME: in what case, will this be called for the top frame?
+ if (!platformWidget())
+ return;
+ platformWidget()->draw(ctx, r);
}
- void Widget::setFocus()
+ void Widget::releasePlatformWidget()
{
- ASSERT(data->m_viewbridge);
- data->m_viewbridge->setFocus(true);
+ Release(platformWidget());
}
- void Widget::paint(GraphicsContext* ctx, const IntRect& r)
+ void Widget::retainPlatformWidget()
{
- WebCoreViewBridge* viewBridge = data->m_viewbridge;
- ASSERT(viewBridge);
- viewBridge->layout();
- viewBridge->draw(ctx, r, true);
+ Retain(platformWidget());
}
void Widget::setCursor(const Cursor& cursor)
@@ -98,21 +88,22 @@ namespace WebCore {
void Widget::show()
{
- if (!data || data->m_visible)
- return;
-
- data->m_visible = true;
+ notImplemented();
}
void Widget::hide()
{
- notImplemented();
+ notImplemented();
}
- void Widget::setFrameGeometry(const IntRect& rect)
+ void Widget::setFrameRect(const IntRect& rect)
{
- ASSERT(data->m_viewbridge);
- data->m_viewbridge->setBounds(rect.x(), rect.y(), rect.x() + rect.width(), rect.y() + rect.height());
+ // FIXME: set m_frame instead?
+ // platformWidget() is NULL when called from Scrollbar
+ if (!platformWidget())
+ return;
+ platformWidget()->setLocation(rect.x(), rect.y());
+ platformWidget()->setSize(rect.width(), rect.height());
}
void Widget::setIsSelected(bool isSelected)
@@ -120,42 +111,19 @@ namespace WebCore {
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
+ int Widget::screenWidth() const
{
- return data->m_client;
- }
+ const Widget* widget = this;
+ while (!widget->isFrameView()) {
+ widget = widget->parent();
+ if (!widget)
+ break;
+ }
+ if (!widget)
+ return 0;
- 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);
+ return android::WebViewCore::getWebViewCore(
+ static_cast<const ScrollView*>(widget))->screenWidth();
}
} // WebCore namepsace