bool EditorClientImpl::shouldChangeSelectedRange(Range* fromRange, Range* toRange, EAffinity affinity, bool stillSelecting) { if (m_webView->client()) { return m_webView->client()->shouldChangeSelectedRange(WebRange(fromRange), WebRange(toRange), static_cast<WebTextAffinity>(affinity), stillSelecting); } return true; }
bool EditorClientImpl::shouldApplyStyle(StylePropertySet* style, Range* range) { if (m_webView->client()) { // FIXME: Pass a reference to the CSSStyleDeclaration somehow. return m_webView->client()->shouldApplyStyle(WebString(), WebRange(range)); } return true; }
// static WebRange WebRange::fromDocumentRange(WebLocalFrame* frame, int start, int length) { LocalFrame* webFrame = toWebLocalFrameImpl(frame)->frame(); Element* selectionRoot = webFrame->selection().rootEditableElement(); ContainerNode* scope = selectionRoot ? selectionRoot : webFrame->document()->documentElement(); const EphemeralRange range = PlainTextRange(start, start + length).createRange(*scope); if (range.isNull()) return WebRange(); return Range::create(range.document(), range.startPosition(), range.endPosition()); }
bool EditorClientImpl::shouldInsertText(const String& text, Range* range, EditorInsertAction action) { if (m_webView->client()) { return m_webView->client()->shouldInsertText(WebString(text), WebRange(range), static_cast<WebEditingAction>(action)); } return true; }
bool EditorClientImpl::shouldInsertNode(Node* node, Range* range, EditorInsertAction action) { if (m_webView->client()) { return m_webView->client()->shouldInsertNode(WebNode(node), WebRange(range), static_cast<WebEditingAction>(action)); } return true; }
static bool getRangeImpl(NPObject* npobj, WebRange* range) { V8NPObject* v8npobject = reinterpret_cast<V8NPObject*>(npobj); v8::Handle<v8::Object> v8object(v8npobject->v8Object); if (V8ClassIndex::RANGE != V8DOMWrapper::domWrapperType(v8object)) return false; Range* native = V8Range::toNative(v8object); if (!native) return false; *range = WebRange(native); return true; }
static bool getRangeImpl(NPObject* object, WebRange* webRange) { if (!object || (object->_class != npScriptObjectClass)) return false; V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object); v8::Handle<v8::Object> v8Object(v8NPObject->v8Object); if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8Object))) return false; Range* native = V8Range::HasInstance(v8Object) ? V8Range::toNative(v8Object) : 0; if (!native) return false; *webRange = WebRange(native); return true; }
static bool getRangeImpl(NPObject* object, WebRange* webRange, v8::Isolate* isolate) { if (!object) return false; V8NPObject* v8NPObject = npObjectToV8NPObject(object); if (!v8NPObject) return false; v8::HandleScope handleScope(isolate); v8::Local<v8::Object> v8Object = v8::Local<v8::Object>::New(isolate, v8NPObject->v8Object); if (v8Object.IsEmpty()) return false; if (!V8Range::wrapperTypeInfo.equals(toWrapperTypeInfo(v8Object))) return false; Range* native = V8Range::hasInstance(v8Object, isolate) ? V8Range::toImpl(v8Object) : 0; if (!native) return false; *webRange = WebRange(native); return true; }
WebRange WebRemoteFrameImpl::selectionRange() const { ASSERT_NOT_REACHED(); return WebRange(); }
WebRange WebRemoteFrameImpl::markedRange() const { ASSERT_NOT_REACHED(); return WebRange(); }
bool EditorClientImpl::shouldDeleteRange(Range* range) { if (m_webView->client()) return m_webView->client()->shouldDeleteRange(WebRange(range)); return true; }
bool EditorClientImpl::shouldBeginEditing(Range* range) { if (m_webView->client()) return m_webView->client()->shouldBeginEditing(WebRange(range)); return true; }