summaryrefslogtreecommitdiffstats
path: root/webkit/port/page
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-15 22:01:57 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-15 22:01:57 +0000
commit8939e9ecf23f09460c91543c783bed0bac780014 (patch)
treebd6930f74b05846299da0283c9da3f4c39fa1b24 /webkit/port/page
parent10e42bf623bcc526e25d5b22760cce3d0766039b (diff)
downloadchromium_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.cpp105
-rw-r--r--webkit/port/page/chromium/FrameChromium.h38
-rw-r--r--webkit/port/page/win/FrameWin.h2
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.