blob: 8b3a9557d57c07091e9ee216b7386a3f55853975 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package flashx.textLayout.conversion
{
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.elements.TextRange;
/**
* Interface for exporting text content from a TextFlow instance to a given format,
* which may for example be String or XML format, or a user-defined format. Exporters support the getting
* and setting of properties to control the export of data. These properties are implemented
* as public properties, but the direct access of these properties should be avoided, since
* a user might replace the converter class in the TextConverter registry, causing a downcast
* to fail.
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
public interface ITextExporter
{
/**
* Export text content from a TextFlow instance in String, or XML, or a user defined format.
* <p>Set the <code>conversionType</code> parameter to either of the following values,
* or a user defined format in user-defined exporters.
* <ul>
* <li><code>flashx.textLayout.conversion.ConversionType.STRING_TYPE</code>;</li>
* <li><code>flashx.textLayout.conversion.ConversionType.XML_TYPE</code>.</li>
* </ul>
* </p>
* @param source The TextFlow to export
* @param conversionType Return a String (STRING_TYPE) or XML (XML_TYPE), or any user defined format.
* @return Object The exported content
* @includeExample examples\ITextExporterExample.as -noswf
* @see flashx.textLayout.conversion.ConversionType
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
function export(source:TextFlow, conversionType:String):Object;
/**
* This property contains a vector of error messages as strings after a call
* to an exporter method is the <code>throwOnError</code> property is set to
* <code>false</code>, which is the default. If there were no errors, the
* property returns <code>null</code>. The property is reset on each method
* call.
* @playerversion Flash 10.2
* @playerversion AIR 2.0
* @langversion 3.0
*/
function get errors():Vector.<String>;
/**
* The throwOnError property controls how the exporter handles errors.
* If set to <code>true</code>, methods throw an Error instance on errors.
* If set to <code>false</code>, which is the default, errors are collected
* into a vector of strings and stored in the <code>errors</code> property,
* and the exporter does not throw.
* @playerversion Flash 10.2
* @playerversion AIR 2.0
* @langversion 3.0
*/
function get throwOnError():Boolean;
function set throwOnError(value:Boolean):void;
/**
* The <code>useClipboardAnnotations</code> property controls whether or not the
* importer should handle the extra information necessary for the clipboard.
* When data is in a TextFlow, paragraphs are always complete, and include a
* terminator character. When a range of text is pasted to the clipboard, it
* will form paragraphs, but the range may not include in the final terminator.
* In this case, the paragraph needs to be marked as a partial paragraph if it
* is intended for the clipboard, so that if it is later pasted it will merge
* into the new text correctly. If the content is intended for the clipboard,
* useClipboardAnnotations will be true.
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
function get useClipboardAnnotations():Boolean;
function set useClipboardAnnotations(value:Boolean):void;
}
}