Unreviewed, rolling out r126169.
[WebKit-https.git] / Source / WebCore / platform / Widget.h
index 3ceb0d5..65f04d9 100644 (file)
 #endif
 
 #if PLATFORM(QT)
+#include <QPointer>
 #include <qglobal.h>
-#include <QWeakPointer>
 #endif
 
 #if PLATFORM(MAC)
-#ifdef __OBJC__
-@class NSView;
-@class NSWindow;
-#else
-class NSView;
-class NSWindow;
-#endif
+OBJC_CLASS NSView;
+OBJC_CLASS NSWindow;
 typedef NSView *PlatformWidget;
 #endif
 
@@ -68,9 +63,13 @@ typedef GtkWidget* PlatformWidget;
 
 #if PLATFORM(QT)
 QT_BEGIN_NAMESPACE
-class QWidget;
+class QObject;
 QT_END_NAMESPACE
-typedef QWidget* PlatformWidget;
+typedef QObject* PlatformWidget;
+#endif
+
+#if PLATFORM(BLACKBERRY)
+typedef void* PlatformWidget;
 #endif
 
 #if PLATFORM(WX)
@@ -78,15 +77,6 @@ class wxWindow;
 typedef wxWindow* PlatformWidget;
 #endif
 
-#if PLATFORM(HAIKU)
-class BView;
-typedef BView* PlatformWidget;
-#endif
-
-#if PLATFORM(BREWMP)
-typedef void* PlatformWidget;
-#endif
-
 #if PLATFORM(EFL)
 typedef struct _Evas_Object Evas_Object;
 typedef struct _Evas Evas;
@@ -97,6 +87,12 @@ typedef Evas_Object* PlatformWidget;
 #if PLATFORM(QT)
 class QWebPageClient;
 typedef QWebPageClient* PlatformPageClient;
+#elif PLATFORM(BLACKBERRY)
+#include "PageClientBlackBerry.h"
+typedef PageClientBlackBerry* PlatformPageClient;
+#elif PLATFORM(EFL)
+class PageClientEfl;
+typedef PageClientEfl* PlatformPageClient;
 #else
 typedef PlatformWidget PlatformPageClient;
 #endif
@@ -131,20 +127,12 @@ enum WidgetNotification { WillPaintFlattened, DidPaintFlattened };
 //
 class Widget : public RefCounted<Widget> {
 public:
-    Widget(PlatformWidget = 0);
+    explicit Widget(PlatformWidget = 0);
     virtual ~Widget();
 
     PlatformWidget platformWidget() const;
     void setPlatformWidget(PlatformWidget);
 
-#if PLATFORM(HAIKU)
-    PlatformWidget topLevelPlatformWidget() const { return m_topLevelPlatformWidget; }
-    void setTopLevelPlatformWidget(PlatformWidget widget)
-    {
-        m_topLevelPlatformWidget = widget;
-    }
-#endif
-
     int x() const { return frameRect().x(); }
     int y() const { return frameRect().y(); }
     int width() const { return frameRect().width(); }
@@ -153,12 +141,11 @@ public:
     IntPoint location() const { return frameRect().location(); }
 
     virtual void setFrameRect(const IntRect&);
-    virtual void setBoundsSize(const IntSize&);
-    virtual IntRect frameRect() const;
+    IntRect frameRect() const;
     IntRect boundsRect() const { return IntRect(0, 0, width(),  height()); }
 
-    void resize(int w, int h) { setFrameRect(IntRect(x(), y(), w, h)); setBoundsSize(IntSize(w, h)); }
-    void resize(const IntSize& s) { setFrameRect(IntRect(location(), s)); setBoundsSize(s); }
+    void resize(int w, int h) { setFrameRect(IntRect(x(), y(), w, h)); }
+    void resize(const IntSize& s) { setFrameRect(IntRect(location(), s)); }
     void move(int x, int y) { setFrameRect(IntRect(x, y, width(), height())); }
     void move(const IntPoint& p) { setFrameRect(IntRect(p, size())); }
 
@@ -195,6 +182,12 @@ public:
 
     virtual void notifyWidget(WidgetNotification) { }
 
+    IntRect convertToRootView(const IntRect&) const;
+    IntRect convertFromRootView(const IntRect&) const;
+
+    IntPoint convertToRootView(const IntPoint&) const;
+    IntPoint convertFromRootView(const IntPoint&) const;
+
     // It is important for cross-platform code to realize that Mac has flipped coordinates.  Therefore any code
     // that tries to convert the location of a rect using the point-based convertFromContainingWindow will end
     // up with an inaccurate rect.  Always make sure to use the rect-based convertFromContainingWindow method
@@ -210,12 +203,13 @@ public:
     // Notifies this widget that other widgets on the page have been repositioned.
     virtual void widgetPositionsUpdated() {}
 
+    // Whether transforms affect the frame rect. FIXME: We get rid of this and have
+    // the frame rects be the same no matter what transforms are applied.
+    virtual bool transformsAffectFrameRect() { return true; }
+
 #if PLATFORM(MAC)
     NSView* getOuterView() const;
 
-    static void beforeMouseDown(NSView*, Widget*);
-    static void afterMouseDown(NSView*, Widget*);
-
     void removeFromSuperview();
 #endif
 
@@ -227,10 +221,6 @@ public:
 
     void setEvasObject(Evas_Object*);
     Evas_Object* evasObject() const;
-
-    const String edjeTheme() const;
-    void setEdjeTheme(const String &);
-    const String edjeThemeRecursive() const;
 #endif
 
 #if PLATFORM(CHROMIUM)
@@ -277,25 +267,14 @@ private:
 
     IntRect m_frame; // Not used when a native widget exists.
 
-#if PLATFORM(EFL)
-    // FIXME: Please see the previous #if PLATFORM(EFL) block.
-    Ecore_Evas* ecoreEvas() const;
-
-    void applyFallbackCursor();
-    void applyCursor();
-#endif
-
 #if PLATFORM(MAC) || PLATFORM(EFL)
     WidgetPrivate* m_data;
 #endif
 
 #if PLATFORM(QT)
-    QWeakPointer<QObject> m_bindingObject;
+    QPointer<QObject> m_bindingObject;
 #endif
 
-#if PLATFORM(HAIKU)
-    PlatformWidget m_topLevelPlatformWidget;
-#endif
 };
 
 #if !PLATFORM(MAC)