174 lines
6.8 KiB
HTML
174 lines
6.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>The source code</title>
|
|
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
|
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
|
|
<style type="text/css">
|
|
.highlight { display: block; background-color: #ddd; }
|
|
</style>
|
|
<script type="text/javascript">
|
|
function highlight() {
|
|
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="prettyPrint(); highlight();">
|
|
<pre class="prettyprint lang-js"><span id='Ext-Tip-method-constructor'><span id='Ext-Tip'>/**
|
|
</span></span> * @class Ext.Tip
|
|
* @extends Ext.Panel
|
|
* @xtype tip
|
|
* This is the base class for {@link Ext.QuickTip} and {@link Ext.Tooltip} that provides the basic layout and
|
|
* positioning that all tip-based classes require. This class can be used directly for simple, statically-positioned
|
|
* tips that are displayed programmatically, or it can be extended to provide custom tip implementations.
|
|
* @constructor
|
|
* Create a new Tip
|
|
* @param {Object} config The configuration options
|
|
*/
|
|
Ext.Tip = Ext.extend(Ext.Panel, {
|
|
<span id='Ext-Tip-cfg-closable'> /**
|
|
</span> * @cfg {Boolean} closable True to render a close tool button into the tooltip header (defaults to false).
|
|
*/
|
|
<span id='Ext-Tip-cfg-width'> /**
|
|
</span> * @cfg {Number} width
|
|
* Width in pixels of the tip (defaults to auto). Width will be ignored if it exceeds the bounds of
|
|
* {@link #minWidth} or {@link #maxWidth}. The maximum supported value is 500.
|
|
*/
|
|
<span id='Ext-Tip-cfg-minWidth'> /**
|
|
</span> * @cfg {Number} minWidth The minimum width of the tip in pixels (defaults to 40).
|
|
*/
|
|
minWidth : 40,
|
|
<span id='Ext-Tip-cfg-maxWidth'> /**
|
|
</span> * @cfg {Number} maxWidth The maximum width of the tip in pixels (defaults to 300). The maximum supported value is 500.
|
|
*/
|
|
maxWidth : 300,
|
|
<span id='Ext-Tip-cfg-shadow'> /**
|
|
</span> * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop"
|
|
* for bottom-right shadow (defaults to "sides").
|
|
*/
|
|
shadow : "sides",
|
|
<span id='Ext-Tip-cfg-defaultAlign'> /**
|
|
</span> * @cfg {String} defaultAlign <b>Experimental</b>. The default {@link Ext.Element#alignTo} anchor position value
|
|
* for this tip relative to its element of origin (defaults to "tl-bl?").
|
|
*/
|
|
defaultAlign : "tl-bl?",
|
|
<span id='Ext-Tip-property-autoRender'> autoRender: true,
|
|
</span><span id='Ext-Tip-property-quickShowInterval'> quickShowInterval : 250,
|
|
</span>
|
|
<span id='Ext-Tip-cfg-frame'> // private panel overrides
|
|
</span> frame:true,
|
|
<span id='Ext-Tip-property-hidden'> hidden:true,
|
|
</span><span id='Ext-Tip-cfg-baseCls'> baseCls: 'x-tip',
|
|
</span><span id='Ext-Tip-cfg-floating'> floating:{shadow:true,shim:true,useDisplay:true,constrain:false},
|
|
</span><span id='Ext-Tip-cfg-autoHeight'> autoHeight:true,
|
|
</span>
|
|
<span id='Ext-Tip-property-closeAction'> closeAction: 'hide',
|
|
</span>
|
|
<span id='Ext-Tip-method-initComponent'> // private
|
|
</span> initComponent : function(){
|
|
Ext.Tip.superclass.initComponent.call(this);
|
|
if(this.closable && !this.title){
|
|
this.elements += ',header';
|
|
}
|
|
},
|
|
|
|
<span id='Ext-Tip-method-afterRender'> // private
|
|
</span> afterRender : function(){
|
|
Ext.Tip.superclass.afterRender.call(this);
|
|
if(this.closable){
|
|
this.addTool({
|
|
id: 'close',
|
|
handler: this[this.closeAction],
|
|
scope: this
|
|
});
|
|
}
|
|
},
|
|
|
|
<span id='Ext-Tip-method-showAt'> /**
|
|
</span> * Shows this tip at the specified XY position. Example usage:
|
|
* <pre><code>
|
|
// Show the tip at x:50 and y:100
|
|
tip.showAt([50,100]);
|
|
</code></pre>
|
|
* @param {Array} xy An array containing the x and y coordinates
|
|
*/
|
|
showAt : function(xy){
|
|
Ext.Tip.superclass.show.call(this);
|
|
if(this.measureWidth !== false && (!this.initialConfig || typeof this.initialConfig.width != 'number')){
|
|
this.doAutoWidth();
|
|
}
|
|
if(this.constrainPosition){
|
|
xy = this.el.adjustForConstraints(xy);
|
|
}
|
|
this.setPagePosition(xy[0], xy[1]);
|
|
},
|
|
|
|
<span id='Ext-Tip-method-doAutoWidth'> // protected
|
|
</span> doAutoWidth : function(adjust){
|
|
adjust = adjust || 0;
|
|
var bw = this.body.getTextWidth();
|
|
if(this.title){
|
|
bw = Math.max(bw, this.header.child('span').getTextWidth(this.title));
|
|
}
|
|
bw += this.getFrameWidth() + (this.closable ? 20 : 0) + this.body.getPadding("lr") + adjust;
|
|
this.setWidth(bw.constrain(this.minWidth, this.maxWidth));
|
|
|
|
// IE7 repaint bug on initial show
|
|
if(Ext.isIE7 && !this.repainted){
|
|
this.el.repaint();
|
|
this.repainted = true;
|
|
}
|
|
},
|
|
|
|
<span id='Ext-Tip-method-showBy'> /**
|
|
</span> * <b>Experimental</b>. Shows this tip at a position relative to another element using a standard {@link Ext.Element#alignTo}
|
|
* anchor position value. Example usage:
|
|
* <pre><code>
|
|
// Show the tip at the default position ('tl-br?')
|
|
tip.showBy('my-el');
|
|
|
|
// Show the tip's top-left corner anchored to the element's top-right corner
|
|
tip.showBy('my-el', 'tl-tr');
|
|
</code></pre>
|
|
* @param {Mixed} el An HTMLElement, Ext.Element or string id of the target element to align to
|
|
* @param {String} position (optional) A valid {@link Ext.Element#alignTo} anchor position (defaults to 'tl-br?' or
|
|
* {@link #defaultAlign} if specified).
|
|
*/
|
|
showBy : function(el, pos){
|
|
if(!this.rendered){
|
|
this.render(Ext.getBody());
|
|
}
|
|
this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign));
|
|
},
|
|
|
|
<span id='Ext-Tip-method-initDraggable'> initDraggable : function(){
|
|
</span> this.dd = new Ext.Tip.DD(this, typeof this.draggable == 'boolean' ? null : this.draggable);
|
|
this.header.addClass('x-tip-draggable');
|
|
}
|
|
});
|
|
|
|
Ext.reg('tip', Ext.Tip);
|
|
|
|
// private - custom Tip DD implementation
|
|
Ext.Tip.DD = function(tip, config){
|
|
Ext.apply(this, config);
|
|
this.tip = tip;
|
|
Ext.Tip.DD.superclass.constructor.call(this, tip.el.id, 'WindowDD-'+tip.id);
|
|
this.setHandleElId(tip.header.id);
|
|
this.scroll = false;
|
|
};
|
|
|
|
Ext.extend(Ext.Tip.DD, Ext.dd.DD, {
|
|
moveOnly:true,
|
|
scroll:false,
|
|
headerOffsets:[100, 25],
|
|
startDrag : function(){
|
|
this.tip.el.disableShadow();
|
|
},
|
|
endDrag : function(e){
|
|
this.tip.el.enableShadow(true);
|
|
}
|
|
});</pre>
|
|
</body>
|
|
</html>
|