| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 #include "core/html/HTMLInputElement.h" | 73 #include "core/html/HTMLInputElement.h" |
| 74 #include "core/html/HTMLTextAreaElement.h" | 74 #include "core/html/HTMLTextAreaElement.h" |
| 75 #include "core/html/parser/HTMLParserIdioms.h" | 75 #include "core/html/parser/HTMLParserIdioms.h" |
| 76 #include "core/loader/EmptyClients.h" | 76 #include "core/loader/EmptyClients.h" |
| 77 #include "core/page/EditorClient.h" | 77 #include "core/page/EditorClient.h" |
| 78 #include "core/page/EventHandler.h" | 78 #include "core/page/EventHandler.h" |
| 79 #include "core/page/FocusController.h" | 79 #include "core/page/FocusController.h" |
| 80 #include "core/page/Page.h" | 80 #include "core/page/Page.h" |
| 81 #include "core/rendering/HitTestResult.h" | 81 #include "core/rendering/HitTestResult.h" |
| 82 #include "core/rendering/RenderImage.h" | 82 #include "core/rendering/RenderImage.h" |
| 83 #include "core/svg/SVGImageElement.h" |
| 83 #include "platform/KillRing.h" | 84 #include "platform/KillRing.h" |
| 84 #include "platform/weborigin/KURL.h" | 85 #include "platform/weborigin/KURL.h" |
| 85 #include "wtf/unicode/CharacterNames.h" | 86 #include "wtf/unicode/CharacterNames.h" |
| 86 | 87 |
| 87 namespace WebCore { | 88 namespace WebCore { |
| 88 | 89 |
| 89 using namespace std; | 90 using namespace std; |
| 90 using namespace HTMLNames; | 91 using namespace HTMLNames; |
| 91 using namespace WTF; | 92 using namespace WTF; |
| 92 using namespace Unicode; | 93 using namespace Unicode; |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 if (!document) | 218 if (!document) |
| 218 return 0; | 219 return 0; |
| 219 if (!document->isImageDocument()) | 220 if (!document->isImageDocument()) |
| 220 return 0; | 221 return 0; |
| 221 | 222 |
| 222 HTMLElement* body = document->body(); | 223 HTMLElement* body = document->body(); |
| 223 if (!body) | 224 if (!body) |
| 224 return 0; | 225 return 0; |
| 225 | 226 |
| 226 Node* node = body->firstChild(); | 227 Node* node = body->firstChild(); |
| 227 if (!node) | 228 if (!isHTMLImageElement(node)) |
| 228 return 0; | |
| 229 if (!node->hasTagName(imgTag)) | |
| 230 return 0; | 229 return 0; |
| 231 return toHTMLImageElement(node); | 230 return toHTMLImageElement(node); |
| 232 } | 231 } |
| 233 | 232 |
| 234 bool Editor::canCopy() const | 233 bool Editor::canCopy() const |
| 235 { | 234 { |
| 236 if (imageElementFromImageDocument(m_frame.document())) | 235 if (imageElementFromImageDocument(m_frame.document())) |
| 237 return true; | 236 return true; |
| 238 FrameSelection& selection = m_frame.selection(); | 237 FrameSelection& selection = m_frame.selection(); |
| 239 return selection.isRange() && !selection.isInPasswordField(); | 238 return selection.isRange() && !selection.isInPasswordField(); |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 | 432 |
| 434 RenderImage* renderer = toRenderImage(node->renderer()); | 433 RenderImage* renderer = toRenderImage(node->renderer()); |
| 435 ImageResource* cachedImage = renderer->cachedImage(); | 434 ImageResource* cachedImage = renderer->cachedImage(); |
| 436 if (!cachedImage || cachedImage->errorOccurred()) | 435 if (!cachedImage || cachedImage->errorOccurred()) |
| 437 return; | 436 return; |
| 438 Image* image = cachedImage->imageForRenderer(renderer); | 437 Image* image = cachedImage->imageForRenderer(renderer); |
| 439 ASSERT(image); | 438 ASSERT(image); |
| 440 | 439 |
| 441 // FIXME: This should probably be reconciled with HitTestResult::absoluteIma
geURL. | 440 // FIXME: This should probably be reconciled with HitTestResult::absoluteIma
geURL. |
| 442 AtomicString urlString; | 441 AtomicString urlString; |
| 443 if (node->hasTagName(imgTag) || node->hasTagName(inputTag)) | 442 if (isHTMLImageElement(*node) || isHTMLInputElement(*node)) |
| 444 urlString = toElement(node)->getAttribute(srcAttr); | 443 urlString = toElement(node)->getAttribute(srcAttr); |
| 445 else if (node->hasTagName(SVGNames::imageTag)) | 444 else if (isSVGImageElement(*node)) |
| 446 urlString = toElement(node)->getAttribute(XLinkNames::hrefAttr); | 445 urlString = toElement(node)->getAttribute(XLinkNames::hrefAttr); |
| 447 else if (node->hasTagName(embedTag) || node->hasTagName(objectTag)) | 446 else if (isHTMLEmbedElement(*node) || isHTMLObjectElement(*node)) |
| 448 urlString = toElement(node)->imageSourceURL(); | 447 urlString = toElement(node)->imageSourceURL(); |
| 449 KURL url = urlString.isEmpty() ? KURL() : node->document().completeURL(strip
LeadingAndTrailingHTMLSpaces(urlString)); | 448 KURL url = urlString.isEmpty() ? KURL() : node->document().completeURL(strip
LeadingAndTrailingHTMLSpaces(urlString)); |
| 450 | 449 |
| 451 pasteboard->writeImage(image, url, title); | 450 pasteboard->writeImage(image, url, title); |
| 452 } | 451 } |
| 453 | 452 |
| 454 // Returns whether caller should continue with "the default processing", which i
s the same as | 453 // Returns whether caller should continue with "the default processing", which i
s the same as |
| 455 // the event handler NOT setting the return value to false | 454 // the event handler NOT setting the return value to false |
| 456 bool Editor::dispatchCPPEvent(const AtomicString &eventType, ClipboardAccessPoli
cy policy, PasteMode pasteMode) | 455 bool Editor::dispatchCPPEvent(const AtomicString &eventType, ClipboardAccessPoli
cy policy, PasteMode pasteMode) |
| 457 { | 456 { |
| (...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1231 return m_frame.spellChecker(); | 1230 return m_frame.spellChecker(); |
| 1232 } | 1231 } |
| 1233 | 1232 |
| 1234 void Editor::toggleOverwriteModeEnabled() | 1233 void Editor::toggleOverwriteModeEnabled() |
| 1235 { | 1234 { |
| 1236 m_overwriteModeEnabled = !m_overwriteModeEnabled; | 1235 m_overwriteModeEnabled = !m_overwriteModeEnabled; |
| 1237 frame().selection().setShouldShowBlockCursor(m_overwriteModeEnabled); | 1236 frame().selection().setShouldShowBlockCursor(m_overwriteModeEnabled); |
| 1238 } | 1237 } |
| 1239 | 1238 |
| 1240 } // namespace WebCore | 1239 } // namespace WebCore |
| OLD | NEW |