+2006-11-08 Anders Carlsson <acarlsson@apple.com>
+
+ Reviewed by Adam.
+
+ Move more code into editor.
+
+ * WebCore.exp:
+ * bridge/EditorClient.h:
+ * bridge/mac/FrameMac.h:
+ * bridge/mac/FrameMac.mm:
+ * bridge/mac/WebCoreFrameBridge.h:
+ * dom/Document.cpp:
+ (WebCore::Document::relinquishesEditingFocus):
+ (WebCore::Document::acceptsEditingFocus):
+ (WebCore::Document::didBeginEditing):
+ (WebCore::Document::didEndEditing):
+ * editing/Editor.cpp:
+ (WebCore::Editor::indent):
+ (WebCore::Editor::outdent):
+ * editing/Editor.h:
+ * page/Frame.cpp:
+ * page/Frame.h:
+
2006-11-08 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
__ZN7WebCore5Frame20hitTestResultAtPointERKNS_8IntPointEb
__ZN7WebCore5Frame20setSelectionFromNoneEv
__ZN7WebCore5Frame21setProhibitsScrollingEb
-__ZN7WebCore5Frame6indentEv
-__ZN7WebCore5Frame7outdentEv
__ZN7WebCore5Image10getNSImageEv
__ZN7WebCore5Image21getTIFFRepresentationEv
__ZN7WebCore5RangeC1EPNS_8DocumentEPNS_4NodeEiS4_i
__ZN7WebCore6Editor12toggleItalicEv
__ZN7WebCore6Editor19applyParagraphStyleEPNS_19CSSStyleDeclarationENS_10EditActionE
__ZN7WebCore6Editor21applyStyleToSelectionEPNS_19CSSStyleDeclarationENS_10EditActionE
-__ZNK7WebCore6Editor22selectionStartHasStyleEPNS_19CSSStyleDeclarationE
__ZN7WebCore6Editor30applyParagraphStyleToSelectionEPNS_19CSSStyleDeclarationENS_10EditActionE
__ZN7WebCore6Editor30deleteSelectionWithSmartDeleteEb
+__ZN7WebCore6Editor6indentEv
+__ZN7WebCore6Editor7outdentEv
__ZN7WebCore6StringC1EP8NSString
__ZN7WebCore6StringC1EPKc
__ZN7WebCore6StringC1ERKNS_16DeprecatedStringE
__ZNK7WebCore5Range9startNodeEv
__ZNK7WebCore6Editor13canEditRichlyEv
__ZNK7WebCore6Editor17shouldDeleteRangeEPNS_5RangeE
+__ZNK7WebCore6Editor22selectionStartHasStyleEPNS_19CSSStyleDeclarationE
__ZNK7WebCore6Editor6canCutEv
__ZNK7WebCore6Editor7canCopyEv
__ZNK7WebCore6Editor7canEditEv
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
- compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
knownRegions = (
English,
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
projectDirPath = "";
projectRoot = "";
- shouldCheckCompatibility = 1;
targets = (
93F198A508245E59001E9ABC /* WebCore */,
DD041FBE09D9DDBE0010AF2A /* Derived Sources */,
virtual bool isGrammarCheckingEnabled() = 0;
virtual int spellCheckerDocumentTag() = 0;
-// virtual bool shouldBeginEditingInRange(Range *range) = 0;
-// virtual bool shouldEndEditingInRange(Range *range) = 0;
+ virtual bool shouldBeginEditing(Range*) = 0;
+ virtual bool shouldEndEditing(Range*) = 0;
// virtual bool shouldInsertNode(Node *node, Range* replacingRange, WebViewInsertAction givenAction) = 0;
// virtual bool shouldInsertText(NSString *text, Range *replacingRange, WebViewInsertAction givenAction) = 0;
// virtual bool shouldChangeSelectedRange(Range *currentRange, Range *toProposedRange, NSSelectionAffinity selectionAffinity, bool stillSelecting) = 0;
// virtual bool shouldChangeTypingStyle(CSSStyleDeclaration *currentStyle, CSSStyleDeclaration *toProposedStyle) = 0;
// virtual bool doCommandBySelector(SEL selector) = 0;
//
-// virtual void webViewDidBeginEditing:(NSNotification *)notification = 0;
+ virtual void didBeginEditing() = 0;
// virtual void webViewDidChange:(NSNotification *)notification = 0;
-// virtual void webViewDidEndEditing:(NSNotification *)notification = 0;
+ virtual void didEndEditing() = 0;
// virtual void webViewDidChangeTypingStyle:(NSNotification *)notification = 0;
// virtual void webViewDidChangeSelection:(NSNotification *)notification = 0;
// virtual NSUndoManager* undoManagerForWebView:(WebView *)webView = 0;
virtual bool isContentEditable() const;
virtual bool shouldChangeSelection(const Selection& oldSelection, const Selection& newSelection, EAffinity affinity, bool stillSelecting) const;
virtual bool shouldDeleteSelection(const Selection&) const;
- virtual bool shouldBeginEditing(const Range*) const;
- virtual bool shouldEndEditing(const Range*) const;
- virtual void didBeginEditing() const;
- virtual void didEndEditing() const;
virtual void setSecureKeyboardEntry(bool);
virtual bool isSecureKeyboardEntry();
return Frame::isContentEditable() || [_bridge isEditable];
}
-bool FrameMac::shouldBeginEditing(const Range *range) const
-{
- ASSERT(range);
- return [_bridge shouldBeginEditing:[DOMRange _rangeWith:const_cast<Range*>(range)]];
-}
-
-bool FrameMac::shouldEndEditing(const Range *range) const
-{
- ASSERT(range);
- return [_bridge shouldEndEditing:[DOMRange _rangeWith:const_cast<Range*>(range)]];
-}
-
-void FrameMac::didBeginEditing() const
-{
- [_bridge didBeginEditing];
-}
-
-void FrameMac::didEndEditing() const
-{
- [_bridge didEndEditing];
-}
-
void FrameMac::textFieldDidBeginEditing(Element* input)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- (BOOL)isEditable;
- (BOOL)shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(WebCore::EAffinity)selectionAffinity stillSelecting:(BOOL)flag;
- (BOOL)shouldDeleteSelectedDOMRange:(DOMRange *)currentRange;
-- (BOOL)shouldBeginEditing:(DOMRange *)range;
-- (BOOL)shouldEndEditing:(DOMRange *)range;
-- (void)didBeginEditing;
-- (void)didEndEditing;
- (NSString *)overrideMediaType;
#include "DocumentLoader.h"
#include "DocumentType.h"
#include "EditingText.h"
+#include "Editor.h"
+#include "EditorClient.h"
#include "EntityReference.h"
#include "Event.h"
#include "EventListener.h"
if (!frame() || !root)
return false;
- return frame()->shouldEndEditing(rangeOfContents(root).get());
+ return frame()->editor()->client()->shouldEndEditing(rangeOfContents(root).get());
}
bool Document::acceptsEditingFocus(Node *node)
if (!frame() || !root)
return false;
- return frame()->shouldBeginEditing(rangeOfContents(root).get());
+ return frame()->editor()->client()->shouldBeginEditing(rangeOfContents(root).get());
}
void Document::didBeginEditing()
if (!frame())
return;
- frame()->didBeginEditing();
+ frame()->editor()->client()->didBeginEditing();
}
void Document::didEndEditing()
if (!frame())
return;
- frame()->didEndEditing();
+ frame()->editor()->client()->didEndEditing();
}
#if PLATFORM(MAC)
#include "HTMLElement.h"
#include "HTMLNames.h"
#include "HitTestResult.h"
+#include "IndentOutdentCommand.h"
#include "Range.h"
#include "ReplaceSelectionCommand.h"
#include "SelectionController.h"
return match;
}
+void Editor::indent()
+{
+ applyCommand(new IndentOutdentCommand(m_frame->document(), IndentOutdentCommand::Indent));
+}
+
+void Editor::outdent()
+{
+ applyCommand(new IndentOutdentCommand(m_frame->document(), IndentOutdentCommand::Outdent));
+}
+
+
// =============================================================================
//
// public editing commands
void paste();
void performDelete();
+ void indent();
+ void outdent();
+
bool shouldShowDeleteInterface(HTMLElement*) const;
bool shouldDeleteRange(Range*) const;
return true;
}
-bool Frame::shouldBeginEditing(const Range *range) const
-{
- return true;
-}
-
-bool Frame::shouldEndEditing(const Range *range) const
-{
- return true;
-}
-
bool Frame::isContentEditable() const
{
if (!d->m_doc)
d->m_typingStyle = mutableStyle.release();
}
-void Frame::indent()
-{
- applyCommand(new IndentOutdentCommand(document(), IndentOutdentCommand::Indent));
-}
-
-void Frame::outdent()
-{
- applyCommand(new IndentOutdentCommand(document(), IndentOutdentCommand::Outdent));
-}
-
static void updateState(CSSMutableStyleDeclaration *desiredStyle, CSSComputedStyleDeclaration *computedStyle, bool& atStart, Frame::TriState& state)
{
DeprecatedValueListConstIterator<CSSProperty> end;
void transpose();
- virtual bool shouldBeginEditing(const Range*) const;
- virtual bool shouldEndEditing(const Range*) const;
-
- virtual void didBeginEditing() const {}
- virtual void didEndEditing() const {}
-
void copyToPasteboard();
void cutToPasteboard();
void pasteFromPasteboard();
virtual bool canRedo() const = 0;
virtual bool canUndo() const = 0;
void computeAndSetTypingStyle(CSSStyleDeclaration* , EditAction = EditActionUnspecified);
- void indent();
- void outdent();
enum TriState { falseTriState, trueTriState, mixedTriState };
TriState selectionHasStyle(CSSStyleDeclaration*) const;
String selectionStartStylePropertyValue(int stylePropertyID) const;
+2006-11-08 Anders Carlsson <acarlsson@apple.com>
+
+ Reviewed by Adam.
+
+ Move more code into editor.
+
+ * WebCoreSupport/WebEditorClient.h:
+ * WebCoreSupport/WebEditorClient.mm:
+ (WebEditorClient::shouldBeginEditing):
+ (WebEditorClient::shouldEndEditing):
+ (WebEditorClient::didBeginEditing):
+ (WebEditorClient::didEndEditing):
+ * WebCoreSupport/WebFrameBridge.mm:
+ * WebView/WebHTMLView.m:
+ (-[NSArray indent:]):
+ (-[NSArray outdent:]):
+ * WebView/WebView.mm:
+ * WebView/WebViewInternal.h:
+
2006-11-08 Beth Dakin <bdakin@apple.com>
Reviewed by Adam.
bool shouldDeleteRange(WebCore::Range*);
bool shouldShowDeleteInterface(WebCore::HTMLElement*);
-// bool shouldBeginEditingInRange(Range *range);
-// bool shouldEndEditingInRange(Range *range);
+ bool shouldBeginEditing(WebCore::Range*);
+ bool shouldEndEditing(WebCore::Range*);
// bool shouldInsertNode(Node *node, Range* replacingRange, WebViewInsertAction givenAction);
// bool shouldInsertText(NSString *text, Range *replacingRange, WebViewInsertActiongivenAction);
// bool shouldChangeSelectedRange(Range *currentRange, Range *toProposedRange, NSSelectionAffinity selectionAffinity, bool stillSelecting);
// bool shouldChangeTypingStyle(CSSStyleDeclaration *currentStyle, CSSStyleDeclaration *toProposedStyle);
// bool doCommandBySelector(SEL selector);
-// void webViewDidBeginEditing:(NSNotification *)notification;
+ void didBeginEditing();
// void webViewDidChange:(NSNotification *)notification;
-// void webViewDidEndEditing:(NSNotification *)notification;
+ void didEndEditing();
// void webViewDidChangeTypingStyle:(NSNotification *)notification;
// void webViewDidChangeSelection:(NSNotification *)notification;
// NSUndoManager* undoManagerForWebView:(WebView *)webView;
shouldApplyStyle:kit(style) toElementsInDOMRange:kit(range)];
}
+bool WebEditorClient::shouldBeginEditing(Range* range)
+{
+ return [[m_webView _editingDelegateForwarder] webView:m_webView
+ shouldBeginEditingInDOMRange:kit(range)];
+
+ return false;
+}
+
+bool WebEditorClient::shouldEndEditing(Range* range)
+{
+ return [[m_webView _editingDelegateForwarder] webView:m_webView
+ shouldEndEditingInDOMRange:kit(range)];
+}
+
+void WebEditorClient::didBeginEditing()
+{
+ [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidBeginEditingNotification object:m_webView];
+}
+
+void WebEditorClient::didEndEditing()
+{
+ [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidEndEditingNotification object:m_webView];
+}
+
/*
-bool WebEditorClient::shouldBeginEditingInRange(Range *range) { return false; }
-bool WebEditorClient::shouldEndEditingInRange(Range *range) { return false; }
bool WebEditorClient::shouldInsertNode(Node *node, Range* replacingRange, WebViewInsertAction givenAction) { return false; }
bool WebEditorClient::shouldInsertText(NSString *text, Range *replacingRange, WebViewInsertActiongivenAction) { return false; }
bool WebEditorClient::shouldChangeSelectedRange(Range *currentRange, Range *toProposedRange, NSSelectionAffinity selectionAffinity, bool stillSelecting) { return false; }
return [[webView _editingDelegateForwarder] webView:webView shouldDeleteDOMRange:range];
}
-- (BOOL)shouldBeginEditing:(DOMRange *)range
-{
- return [[self webView] _shouldBeginEditingInDOMRange:range];
-}
-
-- (BOOL)shouldEndEditing:(DOMRange *)range
-{
- return [[self webView] _shouldEndEditingInDOMRange:range];
-}
-
-- (void)didBeginEditing
-{
- [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidBeginEditingNotification object:[_frame webView]];
-}
-
-- (void)didEndEditing
-{
- [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidEndEditingNotification object:[_frame webView]];
-}
-
- (void)windowObjectCleared
{
WebView *wv = [self webView];
- (void)indent:(id)sender
{
- core([self _frame])->indent();
+ core([self _frame])->editor()->indent();
}
- (void)outdent:(id)sender
{
- core([self _frame])->outdent();
+ core([self _frame])->editor()->outdent();
}
#if 0
return [[self _editingDelegateForwarder] webView:self shouldChangeSelectedDOMRange:currentRange toDOMRange:proposedRange affinity:selectionAffinity stillSelecting:flag];
}
-- (BOOL)_shouldBeginEditingInDOMRange:(DOMRange *)range
-{
- return [[self _editingDelegateForwarder] webView:self shouldBeginEditingInDOMRange:range];
-}
-
-- (BOOL)_shouldEndEditingInDOMRange:(DOMRange *)range
-{
- return [[self _editingDelegateForwarder] webView:self shouldEndEditingInDOMRange:range];
-}
-
- (BOOL)maintainsInactiveSelection
{
return NO;
@interface WebView (WebViewEditingExtras)
- (BOOL)_interceptEditingKeyEvent:(NSEvent *)event;
- (BOOL)_shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag;
-- (BOOL)_shouldBeginEditingInDOMRange:(DOMRange *)range;
-- (BOOL)_shouldEndEditingInDOMRange:(DOMRange *)range;
@end
@interface WebView (AllWebViews)