2006-03-04 Eric Seidel <eseidel@apple.com>
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 5 Mar 2006 09:41:40 +0000 (09:41 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 5 Mar 2006 09:41:40 +0000 (09:41 +0000)
        Reviewed by hyatt.

        Re-work ImageViewer to use GraphicsContext.
        Add GraphicsContext(cairo_t*) constructor to make double-buffering easier.
        Add one more stub to prevent slashdot from crashing.
        Also fixed win32 build after Font change.

        * Viewer.vcproj:
        * Viewer/ImageView.cpp:
        * platform/Color.h:
        * platform/GraphicsContext.h:
        * platform/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::GraphicsContext):
        * platform/win/TemporaryLinkStubs.cpp:
        (FrameWin::createPlugin):
        (BrowserExtensionWin::setTypedIconURL):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13136 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/WebCore.vcproj/Image Viewer/Image Viewer.vcproj
WebCore/WebCore.vcproj/Image Viewer/ImageView.cpp
WebCore/WebCore.vcproj/WebCore/WebCore.vcproj
WebCore/platform/Color.h
WebCore/platform/GraphicsContext.h
WebCore/platform/cairo/GraphicsContextCairo.cpp
WebCore/platform/win/TemporaryLinkStubs.cpp
WebCore/platform/win/WidgetWin.cpp

index 87a00c28ebf5b16b266455830d521f313ee53ad4..1626ca0f9d56831c0a9317407b4d32e7c6356c1d 100644 (file)
@@ -1,3 +1,22 @@
+2006-03-04  Eric Seidel  <eseidel@apple.com>
+
+        Reviewed by hyatt.
+
+        Re-work ImageViewer to use GraphicsContext.
+        Add GraphicsContext(cairo_t*) constructor to make double-buffering easier.
+        Add one more stub to prevent slashdot from crashing.
+        Also fixed win32 build after Font change.
+
+        * Viewer.vcproj:
+        * Viewer/ImageView.cpp:
+        * platform/Color.h:
+        * platform/GraphicsContext.h:
+        * platform/cairo/GraphicsContextCairo.cpp:
+        (WebCore::GraphicsContext::GraphicsContext):
+        * platform/win/TemporaryLinkStubs.cpp:
+        (FrameWin::createPlugin):
+        (BrowserExtensionWin::setTypedIconURL):
+
 2006-03-05  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Darin, landed by ap.
index eaf63351942bb4fde1fe5e43de01fb9e6391fa73..1469e4bdf41abfeb30fb8dc2370cbd7511651b35 100755 (executable)
@@ -44,7 +44,7 @@
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(SolutionDir)\..&quot;;&quot;$(SolutionDir)\..\platform&quot;;&quot;$(SolutionDir)\..\platform\cairo\cairo\src&quot;;&quot;$(SolutionDir)\..\..\JavaScriptCore&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(SolutionDir)\..&quot;;&quot;$(SolutionDir)\..\dom&quot;;&quot;$(SolutionDir)\..\bridge\win&quot;;&quot;$(SolutionDir)\..\bridge&quot;;&quot;$(SolutionDir)\..\editing&quot;;&quot;$(SolutionDir)\..\page&quot;;&quot;$(SolutionDir)\..\khtml&quot;;&quot;$(SolutionDir)\..\khtml\misc&quot;;&quot;$(SolutionDir)\..\khtml\html&quot;;&quot;$(SolutionDir)\..\..\icu\include&quot;;&quot;$(SolutionDir)\..\icu&quot;;&quot;$(SolutionDir)\..\kwq&quot;;&quot;$(SolutionDir)\..\platform\win&quot;;&quot;$(SolutionDir)\..\platform&quot;;&quot;$(SolutionDir)\..\platform\cairo\cairo\src&quot;;&quot;$(SolutionDir)\..\..\JavaScriptCore\os-win32&quot;;&quot;$(SolutionDir)\..\..\JavaScriptCore&quot;;&quot;$(SolutionDir)\..\ForwardingHeaders&quot;"\r
                                PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
@@ -68,7 +68,7 @@
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalOptions="&quot;$(WebKitOutputDir)\WebCore.intermediate\$(ConfigurationName)\WebCore.intermediate\WebCore.lib&quot;&#x0D;&#x0A;&quot;$(WebKitOutputDir)\JavaScriptCore.intermediate\$(ConfigurationName)\JavaScriptCore.intermediate\JavaScriptCore.lib&quot;"\r
+                               AdditionalOptions="&quot;$(WebKitOutputDir)\WebCore.intermediate\$(ConfigurationName)\WebCore.intermediate\WebCore.lib&quot;&#x0D;&#x0A;&quot;$(WebKitOutputDir)\JavaScriptCore.intermediate\$(ConfigurationName)\JavaScriptCore.intermediate\JavaScriptCore.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\iconv\lib\iconv.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\libxml\lib\libxml2.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\libxslt\lib\libxslt.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\icu\lib\icuuc.lib&quot;"\r
                                LinkIncremental="2"\r
                                GenerateDebugInformation="true"\r
                                SubSystem="2"\r
                        />\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(SolutionDir)\..&quot;;&quot;$(SolutionDir)\..\platform&quot;;&quot;$(SolutionDir)\..\platform\cairo\cairo\src&quot;;&quot;$(SolutionDir)\..\..\JavaScriptCore&quot;"\r
+                               AdditionalIncludeDirectories="&quot;$(SolutionDir)\..&quot;;&quot;$(SolutionDir)\..\dom&quot;;&quot;$(SolutionDir)\..\bridge\win&quot;;&quot;$(SolutionDir)\..\bridge&quot;;&quot;$(SolutionDir)\..\editing&quot;;&quot;$(SolutionDir)\..\page&quot;;&quot;$(SolutionDir)\..\khtml&quot;;&quot;$(SolutionDir)\..\khtml\misc&quot;;&quot;$(SolutionDir)\..\khtml\html&quot;;&quot;$(SolutionDir)\..\..\icu\include&quot;;&quot;$(SolutionDir)\..\icu&quot;;&quot;$(SolutionDir)\..\kwq&quot;;&quot;$(SolutionDir)\..\platform\win&quot;;&quot;$(SolutionDir)\..\platform&quot;;&quot;$(SolutionDir)\..\platform\cairo\cairo\src&quot;;&quot;$(SolutionDir)\..\..\JavaScriptCore\os-win32&quot;;&quot;$(SolutionDir)\..\..\JavaScriptCore&quot;;&quot;$(SolutionDir)\..\ForwardingHeaders&quot;"\r
                                PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"\r
                                MinimalRebuild="false"\r
                                RuntimeLibrary="2"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalOptions="&quot;$(WebKitOutputDir)\WebCore.intermediate\$(ConfigurationName)\WebCore.intermediate\WebCore.lib&quot;&#x0D;&#x0A;&quot;$(WebKitOutputDir)\JavaScriptCore.intermediate\$(ConfigurationName)\JavaScriptCore.intermediate\JavaScriptCore.lib&quot;"\r
+                               AdditionalOptions="&quot;$(WebKitOutputDir)\WebCore.intermediate\$(ConfigurationName)\WebCore.intermediate\WebCore.lib&quot;&#x0D;&#x0A;&quot;$(WebKitOutputDir)\JavaScriptCore.intermediate\$(ConfigurationName)\JavaScriptCore.intermediate\JavaScriptCore.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\iconv\lib\iconv.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\libxml\lib\libxml2.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\libxslt\lib\libxslt.lib&quot;&#x0D;&#x0A;&quot;$(SolutionDir)\..\..\icu\lib\icuuc.lib&quot;"\r
                                LinkIncremental="1"\r
                                GenerateDebugInformation="true"\r
                                SubSystem="2"\r
index 505365384fa327a4748ee3dc426daf09e493678b..ebc54c804bc8456d525852d50507ecf173c89ae2 100755 (executable)
@@ -9,8 +9,10 @@
 #include "Image.h"
 #include "FloatRect.h"
 #include "IntSize.h"
+#include "GraphicsContext.h"
+#include "FrameWin.h"
 
-using WebCore::Image;
+using namespace WebCore;
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -33,6 +35,8 @@ END_MESSAGE_MAP()
 
 ImageView::ImageView()
 {
+    // Needed to make sure everything is properly initialized;
+    static FrameWin *dummyFrame = new FrameWin(0,0);
 }
 
 ImageView::~ImageView()
@@ -81,11 +85,10 @@ void ImageView::OnDraw(CDC* pDC)
                                                             CAIRO_CONTENT_COLOR_ALPHA,
                                                             rect.right, rect.bottom);
 
-    // Fill with white.
     cairo_t* context = cairo_create(surface);
-    cairo_rectangle(context, 0, 0, rect.right, rect.bottom);
-    cairo_set_source_rgb(context, 1.0, 1.0, 1.0);
-    cairo_fill(context);
+    GraphicsContext gc(context);
+    // Fill with white.
+    gc.fillRect(0, 0, rect.right, rect.bottom, Brush(Color::white));
 
     // Comment in to test overlapping.
     bool overlapping = false; // true;
@@ -106,14 +109,14 @@ void ImageView::OnDraw(CDC* pDC)
     FloatRect dstRect(FloatPoint(left, top), FloatSize(width, height));
     FloatRect imageRect(srcPoint, image->size());
     if (tile)
-        image->tileInRect(dstRect, srcPoint, context);
+        gc.drawTiledImage(image, dstRect.x(), dstRect.y(), dstRect.width(), dstRect.height(), srcPoint.x(), srcPoint.y());
     else {
-        image->drawInRect(dstRect, imageRect, Image::CompositeSourceOver, (void*)context);
+        gc.drawFloatImage(image, dstRect.x(), dstRect.y(), dstRect.width(), dstRect.height(),
+            imageRect.x(), imageRect.y(), imageRect.width(), imageRect.height(), Image::CompositeSourceOver);
     //    if (overlapping)
      //       image->drawInRect(FloatRect(dstRect.x() + dstRect.width()/2, dstRect.y(), dstRect.width(), dstRect.height()),
      //                        imageRect, Image::CompositeSourceOver, context);
     }
-    cairo_destroy(context);
     
     context = cairo_create(finalSurface);
     cairo_set_operator(context, CAIRO_OPERATOR_SOURCE);
index 4c11eefe583605740cd5cd1d717c697b65da5cd0..5ca17709896f85fb43aae7e146aa851fab01a13d 100644 (file)
                                >\r
                        </File>\r
                </Filter>\r
-               <Filter\r
-                       Name="bridge"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\bridge\BrowserExtension.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\bridge\History.h"\r
-                               >\r
-                       </File>\r
-                       <Filter\r
-                               Name="win"\r
-                               >\r
-                               <File\r
-                                       RelativePath="..\..\bridge\win\BrowserExtensionWin.h"\r
-                                       >\r
-                               </File>\r
-                               <File\r
-                                       RelativePath="..\..\bridge\win\FrameWin.cpp"\r
-                                       >\r
-                               </File>\r
-                               <File\r
-                                       RelativePath="..\..\bridge\win\FrameWin.h"\r
-                                       >\r
-                               </File>\r
-                       </Filter>\r
-               </Filter>\r
                <Filter\r
                        Name="xml"\r
                        >\r
                                >\r
                        </File>\r
                </Filter>\r
+               <Filter\r
+                       Name="bridge"\r
+                       >\r
+                       <File\r
+                               RelativePath="..\..\bridge\BrowserExtension.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\..\bridge\History.h"\r
+                               >\r
+                       </File>\r
+                       <Filter\r
+                               Name="win"\r
+                               >\r
+                               <File\r
+                                       RelativePath="..\..\bridge\win\BrowserExtensionWin.h"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\bridge\win\FrameWin.cpp"\r
+                                       >\r
+                               </File>\r
+                               <File\r
+                                       RelativePath="..\..\bridge\win\FrameWin.h"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
        </Files>\r
        <Globals>\r
        </Globals>\r
index 8b0ac1801f2bf7c1e45902330dbc966a4066e7a9..4f9ea7b1dc5fd3d5c8ba251e5ec9ab9ffbf0226b 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef COLOR_H_
 #define COLOR_H_
 
-#include "QString.h"
+class QString;
 
 #if __APPLE__
 #ifdef __OBJC__
index 2cef8371e54f5a4f0a37ab4872e7ea79c338ba4b..5f5ac6597cf01ba75fb7f64fdf02ed0631e233bd 100644 (file)
@@ -38,9 +38,11 @@ typedef struct CGContext* CGContextRef;
 
 #if WIN32
 typedef struct HDC__ *HDC;
+typedef struct _cairo cairo_t;
 #endif
 
 class QString;
+class QChar;
 
 namespace WebCore {
 
@@ -64,6 +66,11 @@ namespace WebCore {
         // eventually require clients to pass some sort of printer-info
         // struct to that we can CreateDC the printer device correctly.
         GraphicsContext(HDC);
+
+        // This is temporarily public to allow Spinneret to do double-buffering.
+        // Long term, we should get the GraphicsContext from the FrameView
+        // and then have a blit() method on the FrameView.
+        GraphicsContext(cairo_t* context);
 #endif
         GraphicsContext(bool forPrinting);
         ~GraphicsContext();
index 2500174930438494329337c98b228418b7065c7f..98ea2b4086f7d367b1d698a8b54a086faa57edcc 100644 (file)
@@ -30,6 +30,7 @@
 #include "Pen.h"
 #include "FloatRect.h"
 #include "IntPointArray.h"
+#include "IntRect.h"
 
 #include <cairo.h>
 #include <cairo-win32.h>
@@ -93,6 +94,15 @@ GraphicsContext::GraphicsContext(HDC dc)
     m_data->context = cairo_create(surface);
 }
 
+GraphicsContext::GraphicsContext(cairo_t* context)
+    : m_data(new GraphicsContextPrivate)
+    , m_isForPrinting(false)
+    , m_usesInactiveTextBackgroundColor(false)
+    , m_updatingControlTints(false)
+{
+    m_data->context = cairo_reference(context);
+}
+
 GraphicsContext::GraphicsContext(bool forPrinting)
     : m_data(new GraphicsContextPrivate)
     , m_isForPrinting(forPrinting)
index 7b42225b75340eacf229fcb30f5b4cb82340f623..08850d3b42aeb8c9b59eaf24d5c552ce41878d12 100644 (file)
@@ -12,7 +12,6 @@
 #include "KWQComboBox.h"
 #include "IntPoint.h"
 #include "Widget.h"
-#include "KWQFontMetrics.h"
 #include "GraphicsContext.h"
 #include "KWQSlider.h"
 #include "Cursor.h"
@@ -36,6 +35,7 @@
 #include "BrowserExtensionWin.h"
 #include "TransferJob.h"
 #include "RenderThemeWin.h"
+#include "FontRenderer.h"
 
 using namespace WebCore;
 
@@ -97,7 +97,6 @@ void GraphicsContext::clearShadow() { notImplemented(); }
 void QTextEdit::setLineHeight(int) { notImplemented(); }
 void QScrollBar::setKnobProportion(int,int) { notImplemented(); }
 KWQFileButton::KWQFileButton(Frame*) { notImplemented(); }
-IntRect QFontMetrics::boundingRect(int,int,int,int,int,QString const&,int,int) const { notImplemented(); return IntRect(); }
 void QTextEdit::setSelectionStart(int) { notImplemented(); }
 void GraphicsContext::beginTransparencyLayer(float) { notImplemented(); }
 void QListBox::setSelected(int,bool) { notImplemented(); }
@@ -121,7 +120,6 @@ void Widget::lockDrawingFocus() { notImplemented(); }
 void QTextEdit::setSelectionRange(int,int) { notImplemented(); }
 void ScrollView::scrollPointRecursively(int,int) { notImplemented(); }
 IntSize QLineEdit::sizeForCharacterWidth(int) const { notImplemented(); return IntSize(); }
-IntRect QFontMetrics::selectionRectForText(int,int,int,int,int,QChar const*,int,int,int,int,bool,bool,int,int,bool) const { notImplemented(); return IntRect(); }
 void QTextEdit::getCursorPosition(int*,int*) const { notImplemented(); }
 bool FrameView::isFrameView() const { notImplemented(); return 0; }
 void QScrollBar::setSteps(int,int) { notImplemented(); }
@@ -203,7 +201,6 @@ PluginInfo*PlugInInfoStore::createPluginInfoForPluginAtIndex(unsigned) { notImpl
 unsigned PlugInInfoStore::pluginCount() const { notImplemented(); return 0; }
 void WebCore::refreshPlugins(bool) { notImplemented(); }
 int WebCore::screenDepth(Widget*) { notImplemented(); return 96; }
-static QFontMetrics localFontMetrics;
 IntRect WebCore::usableScreenRect(Widget*) { notImplemented(); return IntRect(0,0,800,600); }
 Array<char> KWQServeSynchronousRequest(Loader*,DocLoader*,TransferJob*,KURL&,QString&) { notImplemented(); return 0; }
 Widget* WebCore::FrameView::topLevelWidget() const { notImplemented(); return 0; }
@@ -249,7 +246,6 @@ enum WebCore::ObjectContentType FrameWin::objectContentType(KURL const&,QString
 bool FrameWin::canGoBackOrForward(int) const { notImplemented(); return 0; }
 void FrameWin::issuePasteAndMatchStyleCommand() { notImplemented(); }
 WebCore::Plugin * FrameWin::createPlugin(KURL const&,QStringList const&,QStringList const&,QString const&) { notImplemented(); return 0; }
-void BrowserExtensionWin::setTypedIconURL(KURL const&,QString const&) { notImplemented(); }
 void BrowserExtensionWin::openURLRequest(KURL const&,struct WebCore::URLArgs const&) { notImplemented(); }
 int BrowserExtensionWin::getHistoryLength() { notImplemented(); return 0; }
 bool BrowserExtensionWin::canRunModal() { notImplemented(); return 0; }
@@ -270,6 +266,8 @@ void QTextEdit::setWritingDirection(enum WebCore::TextDirection) { notImplemente
 GraphicsContext::GraphicsContext() { notImplemented(); }
 void WebCore::TransferJob::retrieveCharset() const { notImplemented(); }
 void WebCore::TransferJob::assembleResponseHeaders() const { notImplemented(); }
+IntRect Font::selectionRectForText(int, int, int, int, int, const QChar*, int, int, int, int, bool, bool, int, int) const { notImplemented(); return IntRect(); }
+void Font::drawHighlightForText(WebCore::GraphicsContext*, int, int, int, int, int, const QChar*, int, int, int, int, WebCore::TextDirection, bool, int, int, WebCore::Color) const { notImplemented(); }
 
 // Completely empty stubs (mostly to allow DRT to run):
 bool WebCore::historyContains(QString const&) { return false; }
@@ -278,22 +276,6 @@ QString inputElementAltText() { return QString(); }
 QString resetButtonDefaultLabel() { return "Reset"; }
 QString KLocale::language() { return "en"; }
 
-QFontMetrics::QFontMetrics() { }
-QFontMetrics::~QFontMetrics() { }
-QFontMetrics::QFontMetrics(QFontMetrics const&) { }
-QFontMetrics::QFontMetrics(WebCore::FontDescription const&) { }
-QFontMetrics& QFontMetrics::operator=(QFontMetrics const&) { return localFontMetrics; }
-float QFontMetrics::floatWidth(QChar const*,int,int,int len,int,int,int,int,bool) const { return len * 10; }
-int QFontMetrics::lineSpacing() const { return 10; }
-int QFontMetrics::height() const { return ascent() + descent(); }
-int QFontMetrics::width(QString const& str,int,int,int) const { return str.length() * 10; }
-float QFontMetrics::xHeight() const { return 10; }
-int QFontMetrics::ascent() const { return 12; }
-int QFontMetrics::descent() const { return 12; }
-void QFontMetrics::setFontDescription(WebCore::FontDescription const&) { }
-bool QFontMetrics::isFixedPitch() const { return false; }
-int QFontMetrics::checkSelectionPoint(QChar const*,int,int,int,int,int,int,int,int,bool,int,bool,bool,bool) const { return 0; }
-
 void FrameWin::restoreDocumentState() { }
 void FrameWin::partClearedInBegin() { }
 void FrameWin::createEmptyDocument() { }
@@ -313,6 +295,7 @@ void FrameWin::clearUndoRedoOperations(void) {}
 void FrameWin::urlSelected(KURL const&,struct WebCore::URLArgs const&) { }
 
 BrowserExtensionWin::BrowserExtensionWin(WebCore::Frame*) { }
+void BrowserExtensionWin::setTypedIconURL(KURL const&,QString const&) { }
 
 bool KWQCheckIfReloading(WebCore::DocLoader*) { return false; }
 void KWQCheckCacheObjectStatus(DocLoader*, CachedObject*) { }
@@ -334,12 +317,23 @@ int ScrollView::contentsWidth() const { return 1000; }
 void ScrollView::viewportToContents(int x1, int y1, int& x2, int& y2) { x2 = x1; y2 = y1; }
 void ScrollView::setStaticBackground(bool) { }
 
+float Font::floatWidth(QChar const*, int, int, int len, int, int) const { return len * 10; }
+int Font::descent() const { return 10; }
+float Font::xHeight() const { return 10; }
+int Font::ascent() const { return 10; }
+int Font::lineSpacing() const { return 10; }
+bool Font::isFixedPitch() const { return true; }
+void Font::drawText(WebCore::GraphicsContext *, int, int, int, int, const QChar*, int, int, int, int, WebCore::TextDirection, bool, int, int, WebCore::Color) const { }
+int Font::checkSelectionPoint(const QChar*, int, int, int, int, int, int, int, WebCore::TextDirection, bool, bool) const { return 0; }
+
+FontRenderer::FontRenderer() { }
+void FontRenderer::update(FontDescription const &) { }
+
 Font const& GraphicsContext::font() const { return localFont; }
 void GraphicsContext::setFont(Font const&) { }
 void GraphicsContext::drawText(int,int,int,int,int,int,int,QString const&) { }
 void GraphicsContext::drawText(int,int,int,int,QChar const*,int,int,int,int,Color const&,TextDirection,bool,int,int,bool) { }
 void GraphicsContext::drawLineForText(int,int,int,int) { }
-QFontMetrics GraphicsContext::fontMetrics() const { return QFontMetrics(); }
 
 bool RenderThemeWin::paintCheckbox(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { notImplemented(); return false; }
 bool RenderThemeWin::paintRadio(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { notImplemented(); return false; }
index 3496dc323606ab17894972939105c5e710583f51..a6994cb5970f2f4cf0ac08870fffcbdc96504d8f 100644 (file)
@@ -29,6 +29,7 @@
 #include "Cursor.h"
 #include "GraphicsContext.h"
 #include "FrameWin.h"
+#include "IntRect.h"
 #include "Font.h"
 
 namespace WebCore {