diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-15 22:01:57 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-15 22:01:57 +0000 |
commit | 8939e9ecf23f09460c91543c783bed0bac780014 (patch) | |
tree | bd6930f74b05846299da0283c9da3f4c39fa1b24 /webkit/port/page | |
parent | 10e42bf623bcc526e25d5b22760cce3d0766039b (diff) | |
download | chromium_src-8939e9ecf23f09460c91543c783bed0bac780014.zip chromium_src-8939e9ecf23f09460c91543c783bed0bac780014.tar.gz chromium_src-8939e9ecf23f09460c91543c783bed0bac780014.tar.bz2 |
Move many files that were suffixed Win.cpp to Chromium.cpp, and place them in chromium/ subdirectories. We still build these files with PLATFORM(WIN) defined.
In this change, I also killed off LogWin.{h,cpp} since we don't use it. So, you will see some changes related to that.
R=dglazkov,tony
Review URL: http://codereview.chromium.org/7419
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3427 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port/page')
-rw-r--r-- | webkit/port/page/chromium/AXObjectCacheChromium.cpp (renamed from webkit/port/page/AXObjectCacheWin.cpp) | 0 | ||||
-rw-r--r-- | webkit/port/page/chromium/AccessibilityObjectChromium.cpp (renamed from webkit/port/page/AccessibilityObjectWin.cpp) | 0 | ||||
-rw-r--r-- | webkit/port/page/chromium/ChromeClientChromium.h (renamed from webkit/port/page/ChromeClientWin.h) | 2 | ||||
-rw-r--r-- | webkit/port/page/chromium/DragControllerChromium.cpp (renamed from webkit/port/page/DragControllerWin.cpp) | 11 | ||||
-rw-r--r-- | webkit/port/page/chromium/EventHandlerChromium.cpp (renamed from webkit/port/page/EventHandlerWin.cpp) | 11 | ||||
-rw-r--r-- | webkit/port/page/chromium/FrameChromium.cpp | 105 | ||||
-rw-r--r-- | webkit/port/page/chromium/FrameChromium.h | 38 | ||||
-rw-r--r-- | webkit/port/page/win/FrameWin.h | 2 |
8 files changed, 165 insertions, 4 deletions
diff --git a/webkit/port/page/AXObjectCacheWin.cpp b/webkit/port/page/chromium/AXObjectCacheChromium.cpp index da30ac5..da30ac5 100644 --- a/webkit/port/page/AXObjectCacheWin.cpp +++ b/webkit/port/page/chromium/AXObjectCacheChromium.cpp diff --git a/webkit/port/page/AccessibilityObjectWin.cpp b/webkit/port/page/chromium/AccessibilityObjectChromium.cpp index e309ac8..e309ac8 100644 --- a/webkit/port/page/AccessibilityObjectWin.cpp +++ b/webkit/port/page/chromium/AccessibilityObjectChromium.cpp diff --git a/webkit/port/page/ChromeClientWin.h b/webkit/port/page/chromium/ChromeClientChromium.h index cb40e43..2e04c39 100644 --- a/webkit/port/page/ChromeClientWin.h +++ b/webkit/port/page/chromium/ChromeClientChromium.h @@ -15,7 +15,7 @@ namespace WebCore { class Frame; class String; - class ChromeClientWin : public ChromeClient { + class ChromeClientChromium : public ChromeClient { public: // Opens the file selection dialog. virtual void runFileChooser(const String& defaultFileName, diff --git a/webkit/port/page/DragControllerWin.cpp b/webkit/port/page/chromium/DragControllerChromium.cpp index 41f3008..ac73890 100644 --- a/webkit/port/page/DragControllerWin.cpp +++ b/webkit/port/page/chromium/DragControllerChromium.cpp @@ -27,10 +27,13 @@ #include "DragController.h" #include "DragData.h" -#include "windows.h" #include "SelectionController.h" #include <wtf/RefPtr.h> +#if PLATFORM(WIN) +#include <windows.h> +#endif + namespace WebCore { const int DragController::LinkDragBorderInset = 2; @@ -51,7 +54,13 @@ DragOperation DragController::dragOperation(DragData* dragData) } bool DragController::isCopyKeyDown() { + // TODO(darin): This should not be OS specific. Delegate to the embedder + // instead. +#if PLATFORM(WIN) return ::GetAsyncKeyState(VK_CONTROL); +#else + return false; +#endif } const IntSize& DragController::maxDragImageSize() diff --git a/webkit/port/page/EventHandlerWin.cpp b/webkit/port/page/chromium/EventHandlerChromium.cpp index 3e7476e5..fe95bad 100644 --- a/webkit/port/page/EventHandlerWin.cpp +++ b/webkit/port/page/chromium/EventHandlerChromium.cpp @@ -26,7 +26,6 @@ #include "config.h" #include "EventHandler.h" -#include "ClipboardWin.h" #include "Cursor.h" #include "FloatPoint.h" #include "FocusController.h" @@ -41,9 +40,13 @@ #include "PlatformWheelEvent.h" #include "RenderWidget.h" #include "SelectionController.h" -#include "WCDataObject.h" #include "NotImplemented.h" +#if PLATFORM(WIN) +#include "ClipboardWin.h" +#include "WCDataObject.h" +#endif + namespace WebCore { unsigned EventHandler::s_accessKeyModifiers = PlatformKeyboardEvent::AltKey; @@ -136,9 +139,13 @@ bool EventHandler::eventActivatedView(const PlatformMouseEvent& event) const PassRefPtr<Clipboard> EventHandler::createDraggingClipboard() const { +#if PLATFORM(WIN) COMPtr<WCDataObject> dataObject; WCDataObject::createInstance(&dataObject); return ClipboardWin::create(true, dataObject.get(), ClipboardWritable); +#else + return PassRefPtr<Clipboard>(0); +#endif } void EventHandler::focusDocumentView() diff --git a/webkit/port/page/chromium/FrameChromium.cpp b/webkit/port/page/chromium/FrameChromium.cpp new file mode 100644 index 0000000..991401e --- /dev/null +++ b/webkit/port/page/chromium/FrameChromium.cpp @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. + * + * 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" +#if USE(JSC) +#include "runtime.h" +#elif USE(V8) +#include "npruntime_priv.h" +#endif +#include "FrameChromium.h" + +#include "AffineTransform.h" +#include "FloatRect.h" +#include "Document.h" +#include "FramePrivate.h" +#include "RenderView.h" +#include "Settings.h" + +using std::min; + +namespace WebCore { + +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()->renderer()) + return; + + RenderView* root = static_cast<RenderView*>(frame->document()->renderer()); + + if (!root) { + LOG_ERROR("document to be printed has no renderer"); + return; + } + + if (userScaleFactor <= 0) { + LOG_ERROR("userScaleFactor has bad value %.2f", userScaleFactor); + return; + } + + float ratio = static_cast<float>(printRect.height()) / static_cast<float>(printRect.width()); + + float pageWidth = static_cast<float>(root->docWidth()); + float pageHeight = pageWidth * ratio; + outPageHeight = static_cast<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()->height(); + float docWidth = root->layer()->width(); + float currPageWidth = pageWidth / userScaleFactor; + + + // always return at least one page, since empty files should print a blank page + float printedPagesHeight = 0.0f; + do { + float proposedBottom = min(docHeight, printedPagesHeight + pageHeight); + frame->adjustPageHeight(&proposedBottom, printedPagesHeight, proposedBottom, printedPagesHeight); + currPageHeight = max(1.0f, proposedBottom - printedPagesHeight); + + pages.append(IntRect(0, printedPagesHeight, currPageWidth, currPageHeight)); + printedPagesHeight += currPageHeight; + } while (printedPagesHeight < docHeight); +} + +DragImageRef Frame::dragImageForSelection() +{ + if (selection()->isRange()) + return 0; // TODO(pkasting): http://b/119669 Implement me! + + return 0; +} + +} // namespace WebCore diff --git a/webkit/port/page/chromium/FrameChromium.h b/webkit/port/page/chromium/FrameChromium.h new file mode 100644 index 0000000..c42c76a --- /dev/null +++ b/webkit/port/page/chromium/FrameChromium.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. + * + * 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. + */ + +#ifndef FrameChromium_H +#define FrameChromium_H + +#include "Frame.h" + +namespace WebCore { + + // printRect is only used for the width/height ratio. Their absolute values aren't used. + void computePageRectsForFrame(Frame*, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, Vector<IntRect>& pages, int& pageHeight); + +} + +#endif diff --git a/webkit/port/page/win/FrameWin.h b/webkit/port/page/win/FrameWin.h new file mode 100644 index 0000000..5990c05 --- /dev/null +++ b/webkit/port/page/win/FrameWin.h @@ -0,0 +1,2 @@ +// This file exists to make FramePrivate.h happy. It should be deleted once we +// stop defining PLATFORM(WIN) in the Windows build. |