blob: db0e4dfd80facf24c663cc51cf30b9f45f902dab [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.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);
}
}
}