Hi,
Here you go:
diff --git
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
index 3ccf708..89e89c4 100644
---
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
+++
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
@@ -53,17 +53,11 @@ package org.apache.flex.html.accessories
{
}
- public static const TOP:int = 10000;
- public static const BOTTOM:int = 10001;
- public static const LEFT:int = 10002;
- public static const RIGHT:int = 10003;
- public static const MIDDLE:int = 10004;
-
private var _toolTip:String;
+ private var _strand:IStrand;
private var tt:ToolTip;
private var host:IPopUpHost;
- private var _xPos:int = RIGHT;
- private var _yPos:int = BOTTOM;
+ private var _position:String = "bottom right";
/**
* The string to use as the toolTip.
@@ -83,35 +77,22 @@ package org.apache.flex.html.accessories
}
/**
- * Sets the tooltip y relative position to one of
- * LEFT, MIDDLE or RIGHT.
+ * The class styles used to position the toolTip.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.9
*/
- public function set xPos(pos:int):void
+ public function get position():String
{
- _xPos = pos;
+ return _position;
}
-
- /**
- * Sets the tooltip y relative position to one of
- * TOP, MIDDLE or BOTTOM.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.9
- */
- public function set yPos(pos:int):void
+ public function set position(value:String):void
{
- _yPos = pos;
+ _position = value;
}
- private var _strand:IStrand;
-
/**
* @copy org.apache.flex.core.IBead#strand
*
@@ -144,8 +125,24 @@ package org.apache.flex.html.accessories
tt = new ToolTip();
tt.text = toolTip;
var pt:Point = determinePosition(event, event.target);
- tt.x = pt.x;
- tt.y = pt.y;
+ if (pt) {
+ tt.x = pt.x;
+ tt.y = pt.y;
+ }
+ else {
+ COMPILE::SWF
+ {
+ if (!tt["styleName"]) {
+ tt["styleName"] = position;
+ }
+ }
+ COMPILE::JS
+ {
+ if (!tt.className) {
+ tt.className = position;
+ }
+ }
+ }
host.addElement(tt, false); // don't trigger a layout
}
@@ -155,35 +152,9 @@ package org.apache.flex.html.accessories
*/
protected function determinePosition(event:MouseEvent,
base:Object):Point
{
- var comp:IUIBase = _strand as IUIBase;
- var xFactor:Number = 1;
- var yFactor:Number = 1;
- var pt:Point;
- var relative:Boolean = _xPos > TOP && _yPos > TOP;
-
- if (_xPos == LEFT) {
- xFactor = Number.POSITIVE_INFINITY;
- }
- else if (_xPos == MIDDLE) {
- xFactor = 2;
- }
- else if (_xPos == RIGHT) {
- xFactor = 1;
- }
- if (_yPos == TOP) {
- yFactor = Number.POSITIVE_INFINITY;
- }
- else if (_yPos == MIDDLE) {
- yFactor = 2;
- }
- else if (_yPos == BOTTOM) {
- yFactor = 1;
- }
-
- pt = new Point(comp.width/xFactor, comp.height/yFactor);
- pt = PointUtils.localToGlobal(pt, comp);
-
- return pt;
+ // let styling determine position
+ // but this is required by DataToolTip
+ return null;
}
/**
diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css
b/frameworks/projects/Basic/src/main/resources/defaults.css
index 91d7932..317367a 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -589,6 +589,25 @@ ToolTip
background-color: #FFFFCC;
}
+ToolTip.top {
+ top:0%;
+}
+ToolTip.center {
+ top:50%;
+}
+ToolTip.bottom {
+ top:100%;
+}
+ToolTip.left {
+ left:0%;
+}
+ToolTip.middle {
+ left:50%;
+}
+ToolTip.right {
+ left:100%;
+}
+
View
{
IBeadView: ClassReference("org.apache.flex.html.beads.GroupViewā);
Justin