blob: bf9a9d3d4534d5bd0fb5db389695f6011ab17797 [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 mx.charts.events
{
import flash.display.InteractiveObject;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Point;
import mx.charts.HitData;
import mx.charts.chartClasses.ChartBase;
/**
* The ChartEvent class represents events that are specific
* to the chart control, such as when a chart is clicked. This event
* is only triggered if there are no ChartItem objects underneath the mouse.
*
* @see mx.charts.events.ChartItemEvent
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public class ChartEvent extends MouseEvent
{
include "../../core/Version.as";
//--------------------------------------------------------------------------
//
// Class constants
//
//--------------------------------------------------------------------------
/**
* Indicates that the user clicked the mouse button
* over a chart control but not on a chart item.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public static const CHART_CLICK:String = "chartClick";
/**
* Indicates that the user double-clicked
* the mouse button over a chart control but not on a chart item.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public static const CHART_DOUBLE_CLICK:String = "chartDoubleClick";
//--------------------------------------------------------------------------
//
// Constructor
//
//--------------------------------------------------------------------------
/**
* Constructor.
*
* @param type The type of the event.
*
* @param triggerEvent The MouseEvent that triggered this ChartEvent.
*
* @param target The chart on which the event was triggered.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function ChartEvent(type:String, triggerEvent:MouseEvent=null, target:ChartBase=null)
{
var relPt:Point;
if (triggerEvent && triggerEvent.target)
{
relPt = target.globalToLocal(triggerEvent.target.localToGlobal(
new Point(triggerEvent.localX, triggerEvent.localY)));
}
else
{
if (target)
relPt = new Point(target.mouseX,target.mouseY);
else
relPt = new Point(0,0);
}
var bubbles:Boolean = true;
var cancelable:Boolean = false;
var relatedObject:InteractiveObject = null;
var ctrlKey:Boolean = false;
var shiftKey:Boolean = false;
var altKey:Boolean = false;
var buttonDown:Boolean = false;
var delta:int = 0;
if (triggerEvent)
{
bubbles = triggerEvent.bubbles;
cancelable = triggerEvent.cancelable;
relatedObject = triggerEvent.relatedObject;
ctrlKey = triggerEvent.ctrlKey;
altKey = triggerEvent.altKey;
shiftKey = triggerEvent.shiftKey;
buttonDown = triggerEvent.buttonDown;
delta = triggerEvent.delta;
}
super(type, bubbles, cancelable,
relPt.x, relPt.y, relatedObject,
ctrlKey, altKey, shiftKey, buttonDown, delta);
}
//--------------------------------------------------------------------------
//
// Overridden methods: Event
//
//--------------------------------------------------------------------------
/**
* @private
*/
override public function clone():Event
{
return new ChartEvent(type, this,ChartBase(this.target));
}
}
}