diff options
Diffstat (limited to 'khtml/ecma/kjs_range.cpp')
-rw-r--r-- | khtml/ecma/kjs_range.cpp | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/khtml/ecma/kjs_range.cpp b/khtml/ecma/kjs_range.cpp deleted file mode 100644 index bf148ffe8..000000000 --- a/khtml/ecma/kjs_range.cpp +++ /dev/null @@ -1,233 +0,0 @@ - -// -*- c-basic-offset: 2 -*- -/* - * This file is part of the KDE libraries - * Copyright (C) 2001 Peter Kelly (pmk@post.com) - * Copyright (C) 2003 Apple Computer, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "kjs_range.h" -#include "kjs_range.lut.h" -#include <kdebug.h> - -namespace KJS { - -// ------------------------------------------------------------------------- - -const ClassInfo DOMRange::info = { "Range", 0, &DOMRangeTable, 0 }; -/* -@begin DOMRangeTable 7 - startContainer DOMRange::StartContainer DontDelete|ReadOnly - startOffset DOMRange::StartOffset DontDelete|ReadOnly - endContainer DOMRange::EndContainer DontDelete|ReadOnly - endOffset DOMRange::EndOffset DontDelete|ReadOnly - collapsed DOMRange::Collapsed DontDelete|ReadOnly - commonAncestorContainer DOMRange::CommonAncestorContainer DontDelete|ReadOnly -@end -@begin DOMRangeProtoTable 17 -setStart DOMRange::SetStart DontDelete|Function 2 - setEnd DOMRange::SetEnd DontDelete|Function 2 - setStartBefore DOMRange::SetStartBefore DontDelete|Function 1 - setStartAfter DOMRange::SetStartAfter DontDelete|Function 1 - setEndBefore DOMRange::SetEndBefore DontDelete|Function 1 - setEndAfter DOMRange::SetEndAfter DontDelete|Function 1 - collapse DOMRange::Collapse DontDelete|Function 1 - selectNode DOMRange::SelectNode DontDelete|Function 1 - selectNodeContents DOMRange::SelectNodeContents DontDelete|Function 1 - compareBoundaryPoints DOMRange::CompareBoundaryPoints DontDelete|Function 2 - deleteContents DOMRange::DeleteContents DontDelete|Function 0 - extractContents DOMRange::ExtractContents DontDelete|Function 0 - cloneContents DOMRange::CloneContents DontDelete|Function 0 - insertNode DOMRange::InsertNode DontDelete|Function 1 - surroundContents DOMRange::SurroundContents DontDelete|Function 1 - cloneRange DOMRange::CloneRange DontDelete|Function 0 - toString DOMRange::ToString DontDelete|Function 0 - detach DOMRange::Detach DontDelete|Function 0 - createContextualFragment DOMRange::CreateContextualFragment DontDelete|Function 1 -@end -*/ -KJS_DEFINE_PROTOTYPE(DOMRangeProto) -IMPLEMENT_PROTOFUNC_DOM(DOMRangeProtoFunc) -KJS_IMPLEMENT_PROTOTYPE("DOMRange",DOMRangeProto,DOMRangeProtoFunc) - -DOMRange::DOMRange(ExecState *exec, DOM::Range r) - : DOMObject(DOMRangeProto::self(exec)), range(r) {} - -DOMRange::~DOMRange() -{ - ScriptInterpreter::forgetDOMObject(range.handle()); -} - -Value DOMRange::tryGet(ExecState *exec, const Identifier &p) const -{ - return DOMObjectLookupGetValue<DOMRange,DOMObject>(exec,p,&DOMRangeTable,this); -} - -Value DOMRange::getValueProperty(ExecState *exec, int token) const -{ - switch (token) { - case StartContainer: - return getDOMNode(exec,range.startContainer()); - case StartOffset: - return Number(range.startOffset()); - case EndContainer: - return getDOMNode(exec,range.endContainer()); - case EndOffset: - return Number(range.endOffset()); - case Collapsed: - return Boolean(range.collapsed()); - case CommonAncestorContainer: { - DOM::Range range2 = range; // avoid const error - return getDOMNode(exec,range2.commonAncestorContainer()); - } - default: - kdDebug(6070) << "WARNING: Unhandled token in DOMRange::getValueProperty : " << token << endl; - return Value(); - } -} - -Value DOMRangeProtoFunc::tryCall(ExecState *exec, Object &thisObj, const List &args) -{ - KJS_CHECK_THIS( KJS::DOMRange, thisObj ); - DOM::Range range = static_cast<DOMRange *>(thisObj.imp())->toRange(); - Value result; - - switch (id) { - case DOMRange::SetStart: - range.setStart(toNode(args[0]),args[1].toInteger(exec)); - result = Undefined(); - break; - case DOMRange::SetEnd: - range.setEnd(toNode(args[0]),args[1].toInteger(exec)); - result = Undefined(); - break; - case DOMRange::SetStartBefore: - range.setStartBefore(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::SetStartAfter: - range.setStartAfter(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::SetEndBefore: - range.setEndBefore(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::SetEndAfter: - range.setEndAfter(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::Collapse: - range.collapse(args[0].toBoolean(exec)); - result = Undefined(); - break; - case DOMRange::SelectNode: - range.selectNode(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::SelectNodeContents: - range.selectNodeContents(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::CompareBoundaryPoints: - result = Number(range.compareBoundaryPoints(static_cast<DOM::Range::CompareHow>(args[0].toInteger(exec)),toRange(args[1]))); - break; - case DOMRange::DeleteContents: - range.deleteContents(); - result = Undefined(); - break; - case DOMRange::ExtractContents: - result = getDOMNode(exec,range.extractContents()); - break; - case DOMRange::CloneContents: - result = getDOMNode(exec,range.cloneContents()); - break; - case DOMRange::InsertNode: - range.insertNode(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::SurroundContents: - range.surroundContents(toNode(args[0])); - result = Undefined(); - break; - case DOMRange::CloneRange: - result = getDOMRange(exec,range.cloneRange()); - break; - case DOMRange::ToString: - result = String(range.toString()); - break; - case DOMRange::Detach: - range.detach(); - result = Undefined(); - break; - case DOMRange::CreateContextualFragment: - Value value = args[0]; - DOM::DOMString str = value.isA(NullType) ? DOM::DOMString() : value.toString(exec).string(); - result = getDOMNode(exec, range.createContextualFragment(str)); - break; - }; - - return result; -} - -Value getDOMRange(ExecState *exec, DOM::Range r) -{ - return cacheDOMObject<DOM::Range, KJS::DOMRange>(exec, r); -} - -// ------------------------------------------------------------------------- - -const ClassInfo RangeConstructor::info = { "RangeConstructor", 0, &RangeConstructorTable, 0 }; -/* -@begin RangeConstructorTable 5 - START_TO_START DOM::Range::START_TO_START DontDelete|ReadOnly - START_TO_END DOM::Range::START_TO_END DontDelete|ReadOnly - END_TO_END DOM::Range::END_TO_END DontDelete|ReadOnly - END_TO_START DOM::Range::END_TO_START DontDelete|ReadOnly -@end -*/ - -RangeConstructor::RangeConstructor(ExecState *exec) - : DOMObject(exec->interpreter()->builtinObjectPrototype()) { } - -Value RangeConstructor::tryGet(ExecState *exec, const Identifier &p) const -{ - return DOMObjectLookupGetValue<RangeConstructor,DOMObject>(exec,p,&RangeConstructorTable,this); -} - -Value RangeConstructor::getValueProperty(ExecState *, int token) const -{ - return Number(token); -} - -Value getRangeConstructor(ExecState *exec) -{ - return cacheGlobalObject<RangeConstructor>(exec, "[[range.constructor]]"); -} - - -DOM::Range toRange(const Value& val) -{ - Object obj = Object::dynamicCast(val); - if (!obj.isValid() || !obj.inherits(&DOMRange::info)) - return DOM::Range(); - - const DOMRange *dobj = static_cast<const DOMRange*>(obj.imp()); - return dobj->toRange(); -} - -} //namespace KJS |