00001 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* ----- BEGIN LICENSE BLOCK ----- 00003 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 00004 * 00005 * The contents of this file are subject to the Mozilla Public License 00006 * Version 1.1 (the "License"); you may not use this file except in 00007 * compliance with the License. You may obtain a copy of the License at 00008 * http://www.mozilla.org/MPL/ 00009 * 00010 * Software distributed under the License is distributed on an "AS IS" basis, 00011 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 00012 * for the specific language governing rights and limitations under the 00013 * License. 00014 * 00015 * The Original Code is the Mozilla SVG project. 00016 * 00017 * The Initial Developer of the Original Code is 00018 * Crocodile Clips Ltd.. 00019 * Portions created by the Initial Developer are Copyright (C) 2001 00020 * the Initial Developer. All Rights Reserved. 00021 * 00022 * Contributor(s): 00023 * Alex Fritze <alex.fritze@crocodile-clips.com> (original author) 00024 * 00025 * Alternatively, the contents of this file may be used under the terms of 00026 * either the GNU General Public License Version 2 or later (the "GPL"), or 00027 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 00028 * in which case the provisions of the GPL or the LGPL are applicable instead 00029 * of those above. If you wish to allow use of your version of this file only 00030 * under the terms of either the GPL or the LGPL, and not to allow others to 00031 * use your version of this file under the terms of the NPL, indicate your 00032 * decision by deleting the provisions above and replace them with the notice 00033 * and other provisions required by the GPL or the LGPL. If you do not delete 00034 * the provisions above, a recipient may use your version of this file under 00035 * the terms of any one of the MPL, the GPL or the LGPL. 00036 * 00037 * ----- END LICENSE BLOCK ----- */ 00038 00039 #include "nsIDOMSVGElement.idl" 00040 00041 interface nsIDOMSVGAnimatedLength; 00042 interface nsIDOMSVGAnimatedEnumeration; 00043 interface nsIDOMSVGPoint; 00044 interface nsIDOMSVGRect; 00045 00046 00047 [scriptable, uuid(87ad94bc-07c9-412b-b2d8-de245a2e84a5)] 00048 interface nsIDOMSVGTextContentElement 00049 : nsIDOMSVGElement 00050 /* 00051 The SVG DOM makes use of multiple interface inheritance. 00052 Since XPCOM only supports single interface inheritance, 00053 the best thing that we can do is to promise that whenever 00054 an object implements _this_ interface it will also 00055 implement the following interfaces. (We then have to QI to 00056 hop between them.) 00057 00058 nsIDOMSVGTests, 00059 nsIDOMSVGLangSpace, 00060 nsIDOMSVGExternalResourcesRequired, 00061 nsIDOMSVGStylable, 00062 events::nsIDOMEventTarget 00063 */ 00064 { 00065 // lengthAdjust Types 00066 const unsigned short LENGTHADJUST_UNKNOWN = 0; 00067 const unsigned short LENGTHADJUST_SPACING = 1; 00068 const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2; 00069 00070 readonly attribute nsIDOMSVGAnimatedLength textLength; 00071 readonly attribute nsIDOMSVGAnimatedEnumeration lengthAdjust; 00072 00073 long getNumberOfChars(); 00074 float getComputedTextLength(); 00075 float getSubStringLength(in unsigned long charnum, in unsigned long nchars); 00076 // raises(DOMException); 00077 nsIDOMSVGPoint getStartPositionOfChar(in unsigned long charnum); 00078 // raises(DOMException); 00079 nsIDOMSVGPoint getEndPositionOfChar(in unsigned long charnum); 00080 // raises(DOMException); 00081 nsIDOMSVGRect getExtentOfChar(in unsigned long charnum); 00082 // raises(DOMException); 00083 float getRotationOfChar(in unsigned long charnum); 00084 // raises(DOMException); 00085 long getCharNumAtPosition(in nsIDOMSVGPoint point); 00086 void selectSubString(in unsigned long charnum, in unsigned long nchars); 00087 // raises(DOMException); 00088 };
1.3