Title: [153589] trunk/Source/WebCore
Revision
153589
Author
par...@webkit.org
Date
2013-08-01 10:07:03 -0700 (Thu, 01 Aug 2013)

Log Message

Merge FrameWinCE into FrameWin
https://bugs.webkit.org/show_bug.cgi?id=117988

Reviewed by Brent Fulgham.

Reuse the code from FrameWin.cpp instead of duplicating it.

* PlatformWinCE.cmake:
* page/win/FrameGdiWin.cpp: Added.
(WebCore::imageFromRect):
* page/wince/FrameWinCE.cpp: Removed.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (153588 => 153589)


--- trunk/Source/WebCore/ChangeLog	2013-08-01 16:53:48 UTC (rev 153588)
+++ trunk/Source/WebCore/ChangeLog	2013-08-01 17:07:03 UTC (rev 153589)
@@ -1,3 +1,17 @@
+2013-08-01  Patrick Gansterer  <par...@webkit.org>
+
+        Merge FrameWinCE into FrameWin
+        https://bugs.webkit.org/show_bug.cgi?id=117988
+
+        Reviewed by Brent Fulgham.
+
+        Reuse the code from FrameWin.cpp instead of duplicating it.
+
+        * PlatformWinCE.cmake:
+        * page/win/FrameGdiWin.cpp: Added.
+        (WebCore::imageFromRect):
+        * page/wince/FrameWinCE.cpp: Removed.
+
 2013-08-01  Alex Christensen  <achristen...@apple.com>
 
         Made OESTextureHalfFloat work on Windows.

Modified: trunk/Source/WebCore/PlatformWinCE.cmake (153588 => 153589)


--- trunk/Source/WebCore/PlatformWinCE.cmake	2013-08-01 16:53:48 UTC (rev 153588)
+++ trunk/Source/WebCore/PlatformWinCE.cmake	2013-08-01 17:07:03 UTC (rev 153589)
@@ -23,7 +23,8 @@
 
     page/win/DragControllerWin.cpp
     page/win/EventHandlerWin.cpp
-    page/wince/FrameWinCE.cpp
+    page/win/FrameGdiWin.cpp
+    page/win/FrameWin.cpp
 
     rendering/RenderThemeWince.cpp
 

Added: trunk/Source/WebCore/page/win/FrameGdiWin.cpp (0 => 153589)


--- trunk/Source/WebCore/page/win/FrameGdiWin.cpp	                        (rev 0)
+++ trunk/Source/WebCore/page/win/FrameGdiWin.cpp	2013-08-01 17:07:03 UTC (rev 153589)
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
+ * Copyright (C) 2007-2009 Torch Mobile, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "FrameWin.h"
+
+#include "Frame.h"
+#include "FrameView.h"
+#include "GraphicsContext.h"
+#include <windows.h>
+
+namespace WebCore {
+
+extern HDC g_screenDC;
+
+PassOwnPtr<HBITMAP> imageFromRect(Frame* frame, IntRect& ir)
+{
+    int w;
+    int h;
+    FrameView* view = frame->view();
+    if (view->parent()) {
+        ir.setLocation(view->parent()->convertChildToSelf(view, ir.location()));
+        w = ir.width() * frame->pageZoomFactor() + 0.5;
+        h = ir.height() * frame->pageZoomFactor() + 0.5;
+    } else {
+        ir = view->contentsToWindow(ir);
+        w = ir.width();
+        h = ir.height();
+    }
+
+    OwnPtr<HDC> bmpDC = adoptPtr(CreateCompatibleDC(g_screenDC));
+    OwnPtr<HBITMAP> hBmp = adoptPtr(CreateCompatibleBitmap(g_screenDC, w, h));
+    if (!hBmp)
+        return nullptr;
+
+    HGDIOBJ hbmpOld = SelectObject(bmpDC.get(), hBmp.get());
+
+    {
+        GraphicsContext gc(bmpDC.get());
+        view->paint(&gc, ir);
+    }
+
+    SelectObject(bmpDC.get(), hbmpOld);
+
+    return hBmp.release();
+}
+
+} // namespace WebCore

Deleted: trunk/Source/WebCore/page/wince/FrameWinCE.cpp (153588 => 153589)


--- trunk/Source/WebCore/page/wince/FrameWinCE.cpp	2013-08-01 16:53:48 UTC (rev 153588)
+++ trunk/Source/WebCore/page/wince/FrameWinCE.cpp	2013-08-01 17:07:03 UTC (rev 153589)
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
- * Copyright (C) 2007-2009 Torch Mobile, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include "config.h"
-#include "Frame.h"
-
-#include "Document.h"
-#include "FloatRect.h"
-#include "FrameSelection.h"
-#include "FrameView.h"
-#include "GraphicsContext.h"
-#include "HTMLIFrameElement.h"
-#include "HTMLNames.h"
-#include "HTMLTableCellElement.h"
-#include "KeyboardEvent.h"
-#include "NotImplemented.h"
-#include "Page.h"
-#include "RenderFrame.h"
-#include "RenderLayer.h"
-#include "RenderView.h"
-#include "ResourceHandle.h"
-
-#include <windows.h>
-
-using std::min;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-extern HDC g_screenDC;
-
-void computePageRectsForFrame(Frame* frame, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, Vector<IntRect>& pages, int& outPageHeight)
-{
-    ASSERT(frame);
-
-    pages.clear();
-    outPageHeight = 0;
-
-    if (!frame->document() || !frame->view() || !frame->document()->renderView())
-        return;
-
-    RenderView* root = frame->document()->renderView();
-
-    if (userScaleFactor <= 0) {
-        LOG_ERROR("userScaleFactor has bad value %.2f", userScaleFactor);
-        return;
-    }
-
-    float ratio = (float)printRect.height() / (float)printRect.width();
-
-    float pageWidth  = (float) root->layoutOverflowRect().maxX();
-    float pageHeight = pageWidth * ratio;
-    outPageHeight = (int) pageHeight;   // this is the height of the page adjusted by margins
-    pageHeight -= (headerHeight + footerHeight);
-
-    if (pageHeight <= 0) {
-        LOG_ERROR("pageHeight has bad value %.2f", pageHeight);
-        return;
-    }
-
-    float currPageHeight = pageHeight / userScaleFactor;
-    float docHeight      = root->layer()->size().height();
-    float currPageWidth  = pageWidth / userScaleFactor;
-
-
-    // always return at least one page, since empty files should print a blank page
-    float printedPagesHeight = 0.0;
-    do {
-        float proposedBottom = min(docHeight, printedPagesHeight + pageHeight);
-        frame->view()->adjustPageHeightDeprecated(&proposedBottom, printedPagesHeight, proposedBottom, printedPagesHeight);
-        currPageHeight = max(1.0f, proposedBottom - printedPagesHeight);
-
-        pages.append(IntRect(0, printedPagesHeight, currPageWidth, currPageHeight));
-        printedPagesHeight += currPageHeight;
-    } while (printedPagesHeight < docHeight);
-}
-
-HBITMAP imageFromSelection(Frame* frame, bool forceBlackText)
-{
-    if (!frame->view())
-        return 0;
-
-    frame->view()->setPaintBehavior(PaintBehaviorSelectionOnly | (forceBlackText ? PaintBehaviorForceBlackText : 0));
-    FloatRect fr = frame->selection()->bounds();
-    IntRect ir((int)fr.x(), (int)fr.y(), (int)fr.width(), (int)fr.height());
-    if (ir.isEmpty())
-        return 0;
-
-    int w;
-    int h;
-    FrameView* view = frame->view();
-    if (view->parent()) {
-        ir.setLocation(view->parent()->convertChildToSelf(view, ir.location()));
-        w = ir.width() * frame->pageZoomFactor() + 0.5;
-        h = ir.height() * frame->pageZoomFactor() + 0.5;
-    } else {
-        ir = view->contentsToWindow(ir);
-        w = ir.width();
-        h = ir.height();
-    }
-
-    OwnPtr<HDC> bmpDC = adoptPtr(CreateCompatibleDC(g_screenDC));
-    HBITMAP hBmp = CreateCompatibleBitmap(g_screenDC, w, h);
-    if (!hBmp)
-        return 0;
-
-    HGDIOBJ hbmpOld = SelectObject(bmpDC.get(), hBmp);
-
-    {
-        GraphicsContext gc(bmpDC.get());
-        frame->document()->updateLayout();
-        view->paint(&gc, ir);
-    }
-
-    SelectObject(bmpDC.get(), hbmpOld);
-
-    frame->view()->setPaintBehavior(PaintBehaviorNormal);
-
-    return hBmp;
-}
-
-DragImageRef Frame::nodeImage(Node*)
-{
-    notImplemented();
-    return 0;
-}
-
-DragImageRef Frame::dragImageForSelection()
-{
-    if (selection()->isRange())
-        return imageFromSelection(this, false);
-
-    return 0;
-}
-
-} // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to