diff options
Diffstat (limited to 'WebCore/platform/android/WidgetAndroid.cpp')
-rw-r--r-- | WebCore/platform/android/WidgetAndroid.cpp | 161 |
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 |