mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Add DOM Range blob.
This commit is contained in:
parent
94cd981086
commit
880ae2bdb9
4 changed files with 127 additions and 0 deletions
40
src/components/script/dom/range.rs
Normal file
40
src/components/script/dom/range.rs
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use dom::bindings::codegen::Bindings::RangeBinding;
|
||||
use dom::bindings::codegen::Bindings::RangeBinding::RangeMethods;
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
|
||||
|
||||
#[deriving(Encodable)]
|
||||
pub struct Range {
|
||||
pub reflector_: Reflector
|
||||
}
|
||||
|
||||
impl Range {
|
||||
pub fn new_inherited() -> Range {
|
||||
Range {
|
||||
reflector_: Reflector::new()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new(global: &GlobalRef) -> Temporary<Range> {
|
||||
reflect_dom_object(box Range::new_inherited(), global, RangeBinding::Wrap)
|
||||
}
|
||||
|
||||
pub fn Constructor(global: &GlobalRef) -> Fallible<Temporary<Range>> {
|
||||
Ok(Range::new(global))
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> RangeMethods for JSRef<'a, Range> {
|
||||
}
|
||||
|
||||
impl Reflectable for Range {
|
||||
fn reflector<'a>(&'a self) -> &'a Reflector {
|
||||
&self.reflector_
|
||||
}
|
||||
}
|
85
src/components/script/dom/webidls/Range.webidl
Normal file
85
src/components/script/dom/webidls/Range.webidl
Normal file
|
@ -0,0 +1,85 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* The origin of this IDL file is
|
||||
* http://dom.spec.whatwg.org/#range
|
||||
* http://domparsing.spec.whatwg.org/#dom-range-createcontextualfragment
|
||||
* http://dvcs.w3.org/hg/csswg/raw-file/tip/cssom-view/Overview.html#extensions-to-the-range-interface
|
||||
*/
|
||||
|
||||
[Constructor]
|
||||
interface Range {
|
||||
// [Throws]
|
||||
// readonly attribute Node startContainer;
|
||||
// [Throws]
|
||||
// readonly attribute unsigned long startOffset;
|
||||
// [Throws]
|
||||
// readonly attribute Node endContainer;
|
||||
// [Throws]
|
||||
// readonly attribute unsigned long endOffset;
|
||||
// readonly attribute boolean collapsed;
|
||||
// [Throws]
|
||||
// readonly attribute Node commonAncestorContainer;
|
||||
|
||||
// [Throws]
|
||||
// void setStart(Node refNode, unsigned long offset);
|
||||
// [Throws]
|
||||
// void setEnd(Node refNode, unsigned long offset);
|
||||
// [Throws]
|
||||
// void setStartBefore(Node refNode);
|
||||
// [Throws]
|
||||
// void setStartAfter(Node refNode);
|
||||
// [Throws]
|
||||
// void setEndBefore(Node refNode);
|
||||
// [Throws]
|
||||
// void setEndAfter(Node refNode);
|
||||
// void collapse(optional boolean toStart = false);
|
||||
// [Throws]
|
||||
// void selectNode(Node refNode);
|
||||
// [Throws]
|
||||
// void selectNodeContents(Node refNode);
|
||||
|
||||
// const unsigned short START_TO_START = 0;
|
||||
// const unsigned short START_TO_END = 1;
|
||||
// const unsigned short END_TO_END = 2;
|
||||
// const unsigned short END_TO_START = 3;
|
||||
// [Throws]
|
||||
// short compareBoundaryPoints(unsigned short how, Range sourceRange);
|
||||
// [Throws]
|
||||
// void deleteContents();
|
||||
// [Throws]
|
||||
// DocumentFragment extractContents();
|
||||
// [Throws]
|
||||
// DocumentFragment cloneContents();
|
||||
// [Throws]
|
||||
// void insertNode(Node node);
|
||||
// [Throws]
|
||||
// void surroundContents(Node newParent);
|
||||
|
||||
// Range cloneRange();
|
||||
// void detach();
|
||||
|
||||
// [Throws]
|
||||
// boolean isPointInRange(Node node, unsigned long offset);
|
||||
// [Throws]
|
||||
// short comparePoint(Node node, unsigned long offset);
|
||||
|
||||
// [Throws]
|
||||
// boolean intersectsNode(Node node);
|
||||
|
||||
// stringifier;
|
||||
};
|
||||
|
||||
// http://domparsing.spec.whatwg.org/#dom-range-createcontextualfragment
|
||||
partial interface Range {
|
||||
// [Throws]
|
||||
// DocumentFragment createContextualFragment(DOMString fragment);
|
||||
};//
|
||||
|
||||
//// http://dvcs.w3.org/hg/csswg/raw-file/tip/cssom-view/Overview.html#extensions-to-the-range-interface
|
||||
partial interface Range {
|
||||
// DOMRectList? getClientRects();
|
||||
// DOMRect getBoundingClientRect();
|
||||
};
|
|
@ -178,6 +178,7 @@ pub mod dom {
|
|||
pub mod performance;
|
||||
pub mod performancetiming;
|
||||
pub mod progressevent;
|
||||
pub mod range;
|
||||
pub mod screen;
|
||||
pub mod text;
|
||||
pub mod treewalker;
|
||||
|
|
|
@ -152,6 +152,7 @@ var interfaceNamesInGlobalScope = [
|
|||
"PerformanceTiming",
|
||||
"ProcessingInstruction",
|
||||
"ProgressEvent",
|
||||
"Range",
|
||||
"Screen",
|
||||
"TestBinding", // XXX
|
||||
"Text",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue