| //////////////////////////////////////////////////////////////////////////////// |
| // |
| // 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.events |
| { |
| import flash.events.Event; |
| import flashx.textLayout.edit.SelectionState; |
| |
| /** |
| * A TextFlow instance dispatches a SelectionEvent object when |
| * an EditManager or SelectionManager changes or selects a range of text. |
| * For example, this event is dispatched not only when a range of text is |
| * selected, but also when the selection changes because the |
| * user clicks elsewhere in the text flow. Moreover, this |
| * event is also dispatched when an EditManager changes |
| * the text or text formatting within a range of text. |
| * |
| * @includeExample examples\SelectionEvent_example.as -noswf |
| * @playerversion Flash 10 |
| * @playerversion AIR 1.5 |
| * @langversion 3.0 |
| */ |
| public class SelectionEvent extends Event |
| { |
| /** |
| * The SelectionEvent.SELECTION_CHANGE constant defines the value of the |
| * type property of the event object for a selection event. |
| * @playerversion Flash 10 |
| * @playerversion AIR 1.5 |
| * @langversion 3.0 |
| */ |
| public static const SELECTION_CHANGE:String = "selectionChange"; |
| |
| private var _selectionState:SelectionState; |
| |
| /** |
| * Creates an event object that contains information about a flow operation. |
| * @param type The type of the event. Event listeners can access this information through the |
| * inherited <code>type</code> property. There is only one type of SelectionEvent: |
| * <code>SelectionEvent.SELECTION_CHANGE</code>; |
| * @param bubbles Indicates whether an event is a bubbling event.This event does not bubble. |
| * @param cancelable Indicates whether the behavior associated with the event can be prevented. |
| * @param range An object of type ElementRange that describes the range of text selected. |
| * @playerversion Flash 10 |
| * @playerversion AIR 1.5 |
| * @langversion 3.0 |
| */ |
| public function SelectionEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, selectionState:SelectionState=null) |
| { |
| _selectionState = selectionState; |
| super(type, bubbles, cancelable); |
| } |
| |
| /** |
| * An object of type SelectionState that represents the selected range associated with this SelectionEvent. |
| * |
| * <p>You can use this property, along with the ElementRange class, to create an ElementRange |
| * instance that represents the range of selected text. |
| * You can use the following line of code to create an instance of the |
| * ElementRange class that represents the range of selected text |
| * (the <code>ev</code> variable represents the event object, and the conditional operator |
| * is used to guard against a <code>null</code> value for the <code>selectionState</code> |
| * property):</p> |
| * <listing> |
| * // Find selected element range |
| * var range:ElementRange = ev.selectionState ? |
| * ElementRange.createElementRange(ev.selectionState.textFlow, |
| * ev.selectionState.absoluteStart, ev.selectionState.absoluteEnd) : null;</listing> |
| * |
| * |
| * |
| * @see flashx.textLayout.edit.ElementRange |
| * @see flashx.textLayout.edit.SelectionState |
| * @playerversion Flash 10 |
| * @playerversion AIR 1.5 |
| * @langversion 3.0 |
| */ |
| public function get selectionState():SelectionState |
| { return _selectionState; } |
| public function set selectionState(value:SelectionState):void |
| { _selectionState = value; } |
| |
| |
| /** @private */ |
| override public function clone():Event |
| { |
| return new SelectionEvent(type, bubbles, cancelable, _selectionState); |
| } |
| |
| } |
| } |