src/cm/media/js/lib/yui/yui3.0.0/examples/widget/widget-tooltip.html
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
	<title>YUI Library Examples: Widget: Creating a simple Tooltip widget</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
<style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    /*Supplemental CSS for the YUI distribution*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    #custom-doc { width: 95%; min-width: 950px; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
    .yui-tooltip {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
        position:absolute;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
    .yui-tooltip-content {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
        color: #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
        padding: 2px 5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        border-color: #D4C237 #A6982B #A6982B #A6982B;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
        border-width: 1px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
        border-style: solid;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
        background-color: #FFEE69;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    .yui-tooltip-hidden {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
        visibility:hidden;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    div.yui-hastooltip {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
        border:1px solid #243356;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
        background-color:#406ED9;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
        color:#ffffff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
        width:25em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        margin:20px 0px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        padding:5px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        cursor:default;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    div.yui-hastooltip span {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
        font-style:italic;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
        font-weight:bold;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
        color:#ABCEFF;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    .yui-tooltip-content strong {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
        font-weight:bold;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	<div id="pagetitle"><h1>YUI Library Examples: Widget: Creating a simple Tooltip widget</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	<h2>Widget: Creating a simple Tooltip widget</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
	<div class="example-intro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
	This is an advanced example, in which we create a Tooltip widget, by extending the base <code>Widget</code> class, and adding <code>WidgetStack</code> and <code>WidgetPosition</code> extensions, through <code>Base.build</code>.	</div>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
                <a href="widget-tooltip_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
	<div id="delegate">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
    <div class="yui-hastooltip" title="Tooltip 1" id="tt1">Tooltip One <span>(content from title)</span></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
    <div class="yui-hastooltip" title="Tooltip 2" id="tt2">Tooltip Two <span>(content set in event listener)</span></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
    <div class="yui-hastooltip" title="Tooltip 3" id="tt3">Tooltip Three <span>(content from lookup)</span></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
    <div class="yui-hastooltip" title="Tooltip 4" id="tt4">Tooltip Four <span>(content from title)</span></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
    <label><input type="checkbox" id="prevent" /> Prevent Tooltip Four</label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
YUI({base:"../../build/", timeout: 10000}).use("widget", "widget-position", "widget-stack", function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
    var Lang = Y.Lang,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
        Node = Y.Node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
    /* Tooltip constructor */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
    function Tooltip(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
        Tooltip.superclass.constructor.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
       Required NAME static field, used to identify the Widget class and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
       used as an event prefix, to generate class names etc. (set to the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
       class name in camel case). 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
    */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
    Tooltip.NAME = "tooltip";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
    /* Static constants */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
    Tooltip.OFFSET_X = 15;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
    Tooltip.OFFSET_Y = 15;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
    Tooltip.OFFSCREEN_X = -10000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
    Tooltip.OFFSCREEN_Y = -10000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
    /* Default Tooltip Attributes */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
    Tooltip.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
        /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
         * The tooltip content. This can either be a fixed content value, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
         * or a map of id-to-values, designed to be used when a single
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
         * tooltip is mapped to multiple trigger elements.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
        content : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
            value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
        /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
         * The set of nodes to bind to the tooltip instance. Can be a string, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
         * or a node instance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
        triggerNodes : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
            value: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
            setter: function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
                if (val && Lang.isString(val)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
                    val = Node.all(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
                return val;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
         * The delegate node to which event listeners should be attached.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
         * This node should be an ancestor of all trigger nodes bound
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
         * to the instance. By default the document is used.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
        delegate : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
            value: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
            setter: function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
                return Y.one(val) || Y.one("document");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
         * The time to wait, after the mouse enters the trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
         * to display the tooltip
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
        showDelay : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
            value:250
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
         * The time to wait, after the mouse leaves the trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
         * to hide the tooltip
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
        hideDelay : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
            value:10
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
         * The time to wait, after the tooltip is first displayed for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
         * a trigger node, to hide it, if the mouse has not left the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
         * trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
        autoHideDelay : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
            value:2000
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
         * Override the default visibility set by the widget base class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
        visible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
            value:false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
         * Override the default XY value set by the widget base class,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
         * to position the tooltip offscreen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
        xy: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
            value:[Tooltip.OFFSCREEN_X, Tooltip.OFFSCREEN_Y]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
    /* Extend the base Widget class */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
    Y.extend(Tooltip, Y.Widget, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
         * Initialization Code: Sets up privately used state
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
         * properties, and publishes the events Tooltip introduces
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
        initializer : function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
            this._triggerClassName = this.getClassName("trigger");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
            // Currently bound trigger node information
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
            this._currTrigger = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
                node: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
                title: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
                mouseX: Tooltip.OFFSCREEN_X,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
                mouseY: Tooltip.OFFSCREEN_Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
            // Event handles - mouse over is set on the delegate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
            // element, mousemove and mouseout are set on the trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
            this._eventHandles = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
                delegate: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
                trigger: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
                    mouseMove : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
                    mouseOut: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
            // Show/hide timers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
            this._timers = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
                show: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
                hide: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
            // Publish events introduced by Tooltip. Note the triggerEnter event is preventable,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
            // with the default behavior defined in the _defTriggerEnterFn method 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
            this.publish("triggerEnter", {defaultFn: this._defTriggerEnterFn, preventable:true});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
            this.publish("triggerLeave", {preventable:false});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
         * Destruction Code: Clears event handles, timers,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
         * and current trigger information
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
        destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
            this._clearCurrentTrigger();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
            this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
            this._clearHandles();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
         * bindUI is used to bind attribute change and dom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
         * listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
        bindUI : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
            this.after("delegateChange", this._afterSetDelegate);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
            this.after("nodesChange", this._afterSetNodes);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
            this._bindDelegate();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
         * syncUI is used to update the rendered DOM, based on the current
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
         * Tooltip state
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
        syncUI : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
            this._uiSetNodes(this.get("triggerNodes"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
         * Public method, which can be used by triggerEvent event listeners
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
         * to set the content of the tooltip for the current trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
        setTriggerContent : function(content) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
            var contentBox = this.get("contentBox");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
            contentBox.set("innerHTML", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
            if (content) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
                if (content instanceof Node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
                    for (var i = 0, l = content.size(); i < l; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
                        contentBox.appendChild(content.item(i));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
                } else if (Lang.isString(content)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
                    contentBox.set("innerHTML", content);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
         * Gets the closest ancestor of the given node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
         * which is a tooltip trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
        getParentTrigger : function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
            var cn = this._triggerClassName;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
            return (node.hasClass(cn)) ? node : node.ancestor(function(node) {return node.hasClass(cn)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
         * Default attribute change listener for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
         * the triggerNodes attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
        _afterSetNodes : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
            this._uiSetNodes(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
         * Default attribute change listener for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
         * the delegate attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
        _afterSetDelegate : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
            this._bindDelegate(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
         * Updates the rendered DOM to reflect the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
         * set of trigger nodes passed in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
        _uiSetNodes : function(nodes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
            if (this._triggerNodes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
                this._triggerNodes.removeClass(this._triggerClassName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
            if (nodes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
                this._triggerNodes = nodes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
                this._triggerNodes.addClass(this._triggerClassName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
         * Attaches the default mouseover DOM listener to the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
         * current delegate node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
        _bindDelegate : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
            var eventHandles = this._eventHandles;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
            if (eventHandles.delegate) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
                eventHandles.delegate.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
                eventHandles.delegate = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
            eventHandles.delegate = Y.on("mouseover", Y.bind(this._onDelegateMouseOver, this), this.get("delegate"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
         * Default mouse over DOM event listener.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
         * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
         * Delegates to the _enterTrigger method,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
         * if the mouseover enters a trigger node.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
        _onDelegateMouseOver : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
            var node = this.getParentTrigger(e.target);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
            if (node && (!this._currTrigger.node || !node.compareTo(this._currTrigger.node))) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
                this._enterTrigger(node, e.pageX, e.pageY);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
         * Default mouse out DOM event listener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
         * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
         * Delegates to _leaveTrigger if the mouseout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
         * leaves the current trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
        _onNodeMouseOut : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
            var to = e.relatedTarget;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
            var trigger = e.currentTarget;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
            if (!trigger.contains(to)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
                this._leaveTrigger(trigger);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
         * Default mouse move DOM event listener
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
        _onNodeMouseMove : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
            this._overTrigger(e.pageX, e.pageY);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
         * Default handler invoked when the mouse enters
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
         * a trigger node. Fires the triggerEnter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
         * event which can be prevented by listeners to 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
         * show the tooltip from being displayed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
        _enterTrigger : function(node, x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
            this._setCurrentTrigger(node, x, y);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
            this.fire("triggerEnter", {node:node, pageX:x, pageY:y});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
         * Default handler for the triggerEvent event,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
         * which will setup the timer to display the tooltip,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
         * if the default handler has not been prevented.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
        _defTriggerEnterFn : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
            var node = e.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
            if (!this.get("disabled")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
                this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
                var delay = (this.get("visible")) ? 0 : this.get("showDelay");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
                this._timers.show = Y.later(delay, this, this._showTooltip, [node]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
         * Default handler invoked when the mouse leaves
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
         * the current trigger node. Fires the triggerLeave
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
         * event and sets up the hide timer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
        _leaveTrigger : function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
            this.fire("triggerLeave");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
            this._clearCurrentTrigger();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
            this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
            this._timers.hide = Y.later(this.get("hideDelay"), this, this._hideTooltip);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
         * Default handler invoked for mousemove events
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
         * on the trigger node. Stores the current mouse 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
         * x, y positions
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
        _overTrigger : function(x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
            this._currTrigger.mouseX = x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
            this._currTrigger.mouseY = y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
         * Shows the tooltip, after moving it to the current mouse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
         * position.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
        _showTooltip : function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
            var x = this._currTrigger.mouseX;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
            var y = this._currTrigger.mouseY;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
            this.move(x + Tooltip.OFFSET_X, y + Tooltip.OFFSET_Y);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
            this.show();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
            this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
            this._timers.hide = Y.later(this.get("autoHideDelay"), this, this._hideTooltip);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
         * Hides the tooltip, after clearing existing timers.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
        _hideTooltip : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
            this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
            this.hide();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
         * Set the rendered content of the tooltip for the current
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
         * trigger, based on (in order of precedence):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
         * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
         * a). The string/node content attribute value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
         * b). From the content lookup map if it is set, or 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
         * c). From the title attribute if set.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
        _setTriggerContent : function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
            var content = this.get("content");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
            if (content && !(content instanceof Node || Lang.isString(content))) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
                content = content[node.get("id")] || node.getAttribute("title");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
            this.setTriggerContent(content);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
         * Set the currently bound trigger node information, clearing 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
         * out the title attribute if set and setting up mousemove/out 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
         * listeners.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
        _setCurrentTrigger : function(node, x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
            var currTrigger = this._currTrigger,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
                triggerHandles = this._eventHandles.trigger;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
            this._setTriggerContent(node);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
            triggerHandles.mouseMove = Y.on("mousemove", Y.bind(this._onNodeMouseMove, this), node);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
            triggerHandles.mouseOut = Y.on("mouseout", Y.bind(this._onNodeMouseOut, this), node);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
            var title = node.getAttribute("title");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
            node.setAttribute("title", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
            currTrigger.mouseX = x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
            currTrigger.mouseY = y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
            currTrigger.node = node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
            currTrigger.title = title;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
         * Clear out the current trigger state, restoring
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
         * the title attribute on the trigger node, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
         * if it was originally set.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
        _clearCurrentTrigger : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
            var currTrigger = this._currTrigger,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
                triggerHandles = this._eventHandles.trigger;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
            if (currTrigger.node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
                var node = currTrigger.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
                var title = currTrigger.title || "";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
                currTrigger.node = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
                currTrigger.title = "";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
                triggerHandles.mouseMove.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
                triggerHandles.mouseOut.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
                triggerHandles.mouseMove = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
                triggerHandles.mouseOut = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
                node.setAttribute("title", title);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
         * Cancel any existing show/hide timers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
        _clearTimers : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
            var timers = this._timers;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
            if (timers.hide) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
                timers.hide.cancel();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
                timers.hide = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
            if (timers.show) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
              timers.show.cancel();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
              timers.show = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
         * Detach any stored event handles
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
        _clearHandles : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
            var eventHandles = this._eventHandles;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
            if (eventHandles.delegate) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
                this._eventHandles.delegate.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
            if (eventHandles.trigger.mouseOut) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
                eventHandles.trigger.mouseOut.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
            if (eventHandles.trigger.mouseMove) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
                eventHandles.trigger.mouseMove.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
    // dynamic:false = Modify the existing Tooltip class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
    Tooltip = Y.Base.build(Tooltip.NAME, Tooltip, [Y.WidgetPosition, Y.WidgetStack], {dynamic:false});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
    var tt = new Tooltip({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
        triggerNodes:".yui-hastooltip",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
        delegate: "#delegate",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
        content: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
            tt3: "Tooltip 3 (from lookup)"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
        shim:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
        zIndex:2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
    tt.render();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
    tt.on("triggerEnter", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
        var node = e.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
        if (node && node.get("id") == "tt2") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
            this.setTriggerContent("Tooltip 2 (from triggerEvent)");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    var prevent = Y.one("#prevent");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
    tt.on("triggerEnter", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
        var node = e.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
        if (prevent.get("checked")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
            if (node && node.get("id") == "tt4") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
                e.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
	<h3>Creating A Tooltip Widget Class</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
<h4>Basic Class Structure</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
<p>As with the basic <a href="widget-extend.html">"Extending Widget"</a> example, the <code>Tooltip</code> class will extend the <code>Widget</code> base class and follows the same pattern we use for other classes which extend Base.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
<p>Namely:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
    <li>Set up the constructor to invoke the superclass constructor</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
    <li>Define a <code>NAME</code> property, to identify the class</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
    <li>Define the default attribute configuration, using the <code>ATTRS</code> property</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
    <li>Implement prototype methods</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
<p>This basic structure is shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
<div id="syntax1" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="coMULTI">/* </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;*  Required NAME static field, used to identify the Widget class and </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;*  used as an event prefix, to generate class names etc. (set to the </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;*  class name in camel case). </span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;*/</span></div></li><li class="li1"><div class="de1">Tooltip.<span class="kw3">NAME</span> <span class="sy0">=</span> <span class="st0">&quot;tooltip&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co2">/* Default Tooltip Attributes */</span></div></li><li class="li1"><div class="de1">Tooltip.<span class="me1">ATTRS</span> <span class="sy0">=</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/* </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * The tooltip content. This can either be a fixed content value, </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * or a map of id-to-values, designed to be used when a single</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * tooltip is mapped to multiple trigger elements.</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    content <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        value<span class="sy0">:</span> <span class="kw2">null</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="coMULTI">/* </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * The set of nodes to bind to the tooltip instance. Can be a string, </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * or a node instance.</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    triggerNodes <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        value<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        setter<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            <span class="kw1">if</span> <span class="br0">&#40;</span>val <span class="sy0">&amp;&amp;</span> Lang.<span class="me1">isString</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">                val <span class="sy0">=</span> Node.<span class="me1">all</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">            <span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">            <span class="kw1">return</span> val<span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    * The delegate node to which event listeners should be attached.</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * This node should be an ancestor of all trigger nodes bound</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * to the instance. By default the document is used.</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    delegate <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        value<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        setter<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            <span class="kw1">return</span> Y.<span class="me1">one</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="sy0">||</span> Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;document&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * The time to wait, after the mouse enters the trigger node,</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * to display the tooltip</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li2"><div class="de2">    showDelay <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        value<span class="sy0">:</span><span class="nu0">250</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    * The time to wait, after the mouse leaves the trigger node,</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * to hide the tooltip</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    hideDelay <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        value<span class="sy0">:</span><span class="nu0">10</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * The time to wait, after the tooltip is first displayed for </span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * a trigger node, to hide it, if the mouse has not left the </span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    * trigger node</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    autoHideDelay <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        value<span class="sy0">:</span><span class="nu0">2000</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * Override the default visibility set by the widget base class</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    visible <span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        value<span class="sy0">:</span><span class="kw2">false</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * Override the default XY value set by the widget base class,</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    * to position the tooltip offscreen</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li1"><div class="de1">    xy<span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        value<span class="sy0">:</span><span class="br0">&#91;</span>Tooltip.<span class="me1">OFFSCREEN_X</span><span class="sy0">,</span> Tooltip.<span class="me1">OFFSCREEN_Y</span><span class="br0">&#93;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">Y.<span class="me1">extend</span><span class="br0">&#40;</span>Tooltip<span class="sy0">,</span> Y.<span class="me1">Widget</span><span class="sy0">,</span> <span class="br0">&#123;</span> </div></li><li class="li1"><div class="de1">    <span class="co1">// Prototype methods/properties</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="coMULTI">/* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
 *  Required NAME static field, used to identify the Widget class and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
 *  used as an event prefix, to generate class names etc. (set to the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
 *  class name in camel case). 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
 */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
Tooltip.<span class="kw3">NAME</span> <span class="sy0">=</span> <span class="st0">&quot;tooltip&quot;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
<span class="co2">/* Default Tooltip Attributes */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
Tooltip.<span class="me1">ATTRS</span> <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
    <span class="coMULTI">/* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
     * The tooltip content. This can either be a fixed content value, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
     * or a map of id-to-values, designed to be used when a single
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
     * tooltip is mapped to multiple trigger elements.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
    content <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
        value<span class="sy0">:</span> <span class="kw2">null</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
    <span class="coMULTI">/* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
     * The set of nodes to bind to the tooltip instance. Can be a string, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
     * or a node instance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
    triggerNodes <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
        value<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
        setter<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
            <span class="kw1">if</span> <span class="br0">&#40;</span>val <span class="sy0">&amp;&amp;</span> Lang.<span class="me1">isString</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
                val <span class="sy0">=</span> Node.<span class="me1">all</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
            <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
            <span class="kw1">return</span> val<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
     * The delegate node to which event listeners should be attached.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
     * This node should be an ancestor of all trigger nodes bound
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
     * to the instance. By default the document is used.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
    delegate <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
        value<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
        setter<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
            <span class="kw1">return</span> Y.<span class="me1">one</span><span class="br0">&#40;</span>val<span class="br0">&#41;</span> <span class="sy0">||</span> Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;document&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
     * The time to wait, after the mouse enters the trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
     * to display the tooltip
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
    showDelay <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
        value<span class="sy0">:</span><span class="nu0">250</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
     * The time to wait, after the mouse leaves the trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
     * to hide the tooltip
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
    hideDelay <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
        value<span class="sy0">:</span><span class="nu0">10</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
     * The time to wait, after the tooltip is first displayed for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
     * a trigger node, to hide it, if the mouse has not left the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
     * trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
    autoHideDelay <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
        value<span class="sy0">:</span><span class="nu0">2000</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
     * Override the default visibility set by the widget base class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
    visible <span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
        value<span class="sy0">:</span><span class="kw2">false</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
     * Override the default XY value set by the widget base class,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
     * to position the tooltip offscreen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
    xy<span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
        value<span class="sy0">:</span><span class="br0">&#91;</span>Tooltip.<span class="me1">OFFSCREEN_X</span><span class="sy0">,</span> Tooltip.<span class="me1">OFFSCREEN_Y</span><span class="br0">&#93;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
<span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
Y.<span class="me1">extend</span><span class="br0">&#40;</span>Tooltip<span class="sy0">,</span> Y.<span class="me1">Widget</span><span class="sy0">,</span> <span class="br0">&#123;</span> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
    <span class="co1">// Prototype methods/properties</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax1-plain">/* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
 *  Required NAME static field, used to identify the Widget class and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
 *  used as an event prefix, to generate class names etc. (set to the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
 *  class name in camel case). 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
Tooltip.NAME = "tooltip";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
/* Default Tooltip Attributes */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
Tooltip.ATTRS = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
     * The tooltip content. This can either be a fixed content value, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   722
     * or a map of id-to-values, designed to be used when a single
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
     * tooltip is mapped to multiple trigger elements.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
    content : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
        value: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
    /* 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
     * The set of nodes to bind to the tooltip instance. Can be a string, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
     * or a node instance.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
    triggerNodes : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
        value: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
        setter: function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
            if (val && Lang.isString(val)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
                val = Node.all(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
            return val;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
     * The delegate node to which event listeners should be attached.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
     * This node should be an ancestor of all trigger nodes bound
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
     * to the instance. By default the document is used.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
    delegate : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
        value: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
        setter: function(val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
            return Y.one(val) || Y.one("document");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
     * The time to wait, after the mouse enters the trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
     * to display the tooltip
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
    showDelay : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
        value:250
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
     * The time to wait, after the mouse leaves the trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
     * to hide the tooltip
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
    hideDelay : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
        value:10
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
     * The time to wait, after the tooltip is first displayed for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
     * a trigger node, to hide it, if the mouse has not left the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
     * trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
    autoHideDelay : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
        value:2000
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
     * Override the default visibility set by the widget base class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
    visible : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
        value:false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   788
     * Override the default XY value set by the widget base class,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
     * to position the tooltip offscreen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
    xy: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
        value:[Tooltip.OFFSCREEN_X, Tooltip.OFFSCREEN_Y]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   794
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   795
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
Y.extend(Tooltip, Y.Widget, { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
    // Prototype methods/properties
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
});</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
<h4>Adding WidgetPosition and WidgetStack Extension Support</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
<p>The Tooltip class also needs basic positioning and stacking (z-index, shimming) support. As with the <a href="widget-build.html">Custom Widget Classes</a> example, we use
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
<code>Base.build</code> to add this support to the <code>Tooltip</code> class. However in this case, we want to modify the Tooltip class, as opposed to extending it 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   803
to create a completely new class, hence we set the <code>dynamic</code> configuration property to <code>false</code>:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   804
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   805
<div id="syntax2" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">// dynamic:false = Modify the existing Tooltip class</span></div></li><li class="li1"><div class="de1">Tooltip <span class="sy0">=</span> Y.<span class="me1">Base</span>.<span class="me1">build</span><span class="br0">&#40;</span><span class="st0">&quot;tooltip&quot;</span><span class="sy0">,</span> Tooltip<span class="sy0">,</span> <span class="br0">&#91;</span>Y.<span class="me1">WidgetPosition</span><span class="sy0">,</span> Y.<span class="me1">WidgetStack</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="br0">&#123;</span>dynamic<span class="sy0">:</span><span class="kw2">false</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">// dynamic:false = Modify the existing Tooltip class</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   806
Tooltip <span class="sy0">=</span> Y.<span class="me1">Base</span>.<span class="me1">build</span><span class="br0">&#40;</span><span class="st0">&quot;tooltip&quot;</span><span class="sy0">,</span> Tooltip<span class="sy0">,</span> <span class="br0">&#91;</span>Y.<span class="me1">WidgetPosition</span><span class="sy0">,</span> Y.<span class="me1">WidgetStack</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="br0">&#123;</span>dynamic<span class="sy0">:</span><span class="kw2">false</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax2-plain">// dynamic:false = Modify the existing Tooltip class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   807
Tooltip = Y.Base.build("tooltip", Tooltip, [Y.WidgetPosition, Y.WidgetStack], {dynamic:false});</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   808
<h4>Lifecycle Methods: initializer, destructor</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   809
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   810
<p>The <code>initializer</code> method is invoked during the <code>init</code> lifecycle phase, after the attributes are configured for each class. <code>Tooltip</code> uses it 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   811
to setup the private state variables it will use to store the trigger node currently being serviced by the tooltip instance, event handles and show/hide timers.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   812
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   813
<div id="syntax3" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">initializer <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._triggerClassName <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">getClassName</span><span class="br0">&#40;</span><span class="st0">&quot;trigger&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="co1">// Currently bound trigger node information</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._currTrigger <span class="sy0">=</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        node<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        title<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        mouseX<span class="sy0">:</span> Tooltip.<span class="me1">OFFSCREEN_X</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">        mouseY<span class="sy0">:</span> Tooltip.<span class="me1">OFFSCREEN_Y</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// Event handles - mouse over is set on the delegate</span></div></li><li class="li1"><div class="de1">    <span class="co1">// element, mousemove and mouseout are set on the trigger node</span></div></li><li class="li2"><div class="de2">    <span class="kw1">this</span>._eventHandles <span class="sy0">=</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        delegate<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        trigger<span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            mouseMove <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">            mouseOut<span class="sy0">:</span> <span class="kw2">null</span></div></li><li class="li2"><div class="de2">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// Show/hide timers</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._timers <span class="sy0">=</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        show<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">        hide<span class="sy0">:</span> <span class="kw2">null</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">// Publish events introduced by Tooltip. Note the triggerEnter event is preventable,</span></div></li><li class="li2"><div class="de2">    <span class="co1">// with the default behavior defined in the _defTriggerEnterFn method </span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">publish</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="br0">&#123;</span>defaultFn<span class="sy0">:</span> <span class="kw1">this</span>._defTriggerEnterFn<span class="sy0">,</span> preventable<span class="sy0">:</span><span class="kw2">true</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">publish</span><span class="br0">&#40;</span><span class="st0">&quot;triggerLeave&quot;</span><span class="sy0">,</span> <span class="br0">&#123;</span>preventable<span class="sy0">:</span><span class="kw2">false</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">initializer <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>config<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   814
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   815
    <span class="kw1">this</span>._triggerClassName <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">getClassName</span><span class="br0">&#40;</span><span class="st0">&quot;trigger&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   816
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   817
    <span class="co1">// Currently bound trigger node information</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   818
    <span class="kw1">this</span>._currTrigger <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   819
        node<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   820
        title<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   821
        mouseX<span class="sy0">:</span> Tooltip.<span class="me1">OFFSCREEN_X</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   822
        mouseY<span class="sy0">:</span> Tooltip.<span class="me1">OFFSCREEN_Y</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   823
    <span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   824
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   825
    <span class="co1">// Event handles - mouse over is set on the delegate</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   826
    <span class="co1">// element, mousemove and mouseout are set on the trigger node</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   827
    <span class="kw1">this</span>._eventHandles <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   828
        delegate<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   829
        trigger<span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   830
            mouseMove <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   831
            mouseOut<span class="sy0">:</span> <span class="kw2">null</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   832
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   833
    <span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   834
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   835
    <span class="co1">// Show/hide timers</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   836
    <span class="kw1">this</span>._timers <span class="sy0">=</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   837
        show<span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   838
        hide<span class="sy0">:</span> <span class="kw2">null</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   839
    <span class="br0">&#125;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   840
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   841
    <span class="co1">// Publish events introduced by Tooltip. Note the triggerEnter event is preventable,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   842
    <span class="co1">// with the default behavior defined in the _defTriggerEnterFn method </span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   843
    <span class="kw1">this</span>.<span class="me1">publish</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="br0">&#123;</span>defaultFn<span class="sy0">:</span> <span class="kw1">this</span>._defTriggerEnterFn<span class="sy0">,</span> preventable<span class="sy0">:</span><span class="kw2">true</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   844
    <span class="kw1">this</span>.<span class="me1">publish</span><span class="br0">&#40;</span><span class="st0">&quot;triggerLeave&quot;</span><span class="sy0">,</span> <span class="br0">&#123;</span>preventable<span class="sy0">:</span><span class="kw2">false</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   845
<span class="br0">&#125;</span></pre></div><textarea id="syntax3-plain">initializer : function(config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   846
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   847
    this._triggerClassName = this.getClassName("trigger");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   848
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   849
    // Currently bound trigger node information
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   850
    this._currTrigger = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   851
        node: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   852
        title: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   853
        mouseX: Tooltip.OFFSCREEN_X,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   854
        mouseY: Tooltip.OFFSCREEN_Y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   855
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   856
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   857
    // Event handles - mouse over is set on the delegate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   858
    // element, mousemove and mouseout are set on the trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   859
    this._eventHandles = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   860
        delegate: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   861
        trigger: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   862
            mouseMove : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   863
            mouseOut: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   864
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   865
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   866
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   867
    // Show/hide timers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   868
    this._timers = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   869
        show: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   870
        hide: null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   871
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   872
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   873
    // Publish events introduced by Tooltip. Note the triggerEnter event is preventable,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   874
    // with the default behavior defined in the _defTriggerEnterFn method 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   875
    this.publish("triggerEnter", {defaultFn: this._defTriggerEnterFn, preventable:true});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   876
    this.publish("triggerLeave", {preventable:false});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   877
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   878
<p>The <code>destructor</code> is used to clear out stored state, detach any event handles and clear out the show/hide timers:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   879
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   880
<div id="syntax4" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">destructor <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._clearCurrentTrigger<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._clearTimers<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._clearHandles<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">destructor <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   881
    <span class="kw1">this</span>._clearCurrentTrigger<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   882
    <span class="kw1">this</span>._clearTimers<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   883
    <span class="kw1">this</span>._clearHandles<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   884
<span class="br0">&#125;</span></pre></div><textarea id="syntax4-plain">destructor : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   885
    this._clearCurrentTrigger();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   886
    this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   887
    this._clearHandles();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   888
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   889
<h4>Lifecycle Methods: bindUI, syncUI</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   890
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   891
<p>The <code>bindUI</code> and <code>syncUI</code> are invoked by the base Widget class' <code>renderer</code> method.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   892
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   893
<p><code>bindUI</code> is used to bind the attribute change listeners used to update the rendered UI from the current state of the widget and also to bind
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   894
the DOM listeners required to enable the UI for interaction.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   895
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   896
<p><code>syncUI</code> is used to sync the UI state from the current widget state, when initially rendered.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   897
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   898
<p><em>NOTE:</em> Widget's <code>renderer</code> method also invokes the <code>renderUI</code> method, which is responsible for laying down any additional content elements a widget requires. However
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   899
tooltip does not have any additional elements in needs to add to the DOM, outside of the default Widget boundingBox and contentBox.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   900
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   901
<div id="syntax5" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">bindUI <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;delegateChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._afterSetDelegate<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;nodesChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._afterSetNodes<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="kw1">this</span>._bindDelegate<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">syncUI <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._uiSetNodes<span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;triggerNodes&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">bindUI <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   902
    <span class="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;delegateChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._afterSetDelegate<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   903
    <span class="kw1">this</span>.<span class="me1">after</span><span class="br0">&#40;</span><span class="st0">&quot;nodesChange&quot;</span><span class="sy0">,</span> <span class="kw1">this</span>._afterSetNodes<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   904
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   905
    <span class="kw1">this</span>._bindDelegate<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   906
<span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   907
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   908
syncUI <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   909
    <span class="kw1">this</span>._uiSetNodes<span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;triggerNodes&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   910
<span class="br0">&#125;</span></pre></div><textarea id="syntax5-plain">bindUI : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   911
    this.after("delegateChange", this._afterSetDelegate);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   912
    this.after("nodesChange", this._afterSetNodes);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   913
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   914
    this._bindDelegate();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   915
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   916
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   917
syncUI : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   918
    this._uiSetNodes(this.get("triggerNodes"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   919
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   920
<h4>Attribute Supporting Methods</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   921
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   922
<p>Tooltip's <code>triggerNodes</code>, which defines the set of nodes which should trigger this tooltip instance,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   923
has a couple of supporting methods associated with it.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   924
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   925
<p>The <code>_afterSetNodes</code> method is the default attribute change event handler for the <code>triggerNodes</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   926
attribute. It invokes the <code>_uiSetNodes</code> method, which marks all trigger nodes with a trigger class name (<code>yui-tooltip-trigger</code>) when set.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   927
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   928
<div id="syntax6" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_afterSetNodes <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._uiSetNodes<span class="br0">&#40;</span>e.<span class="me1">newVal</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">_uiSetNodes <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>nodes<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">this</span>._triggerNodes<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._triggerNodes.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="kw1">this</span>._triggerClassName<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="kw1">if</span> <span class="br0">&#40;</span>nodes<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._triggerNodes <span class="sy0">=</span> nodes<span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._triggerNodes.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="kw1">this</span>._triggerClassName<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_afterSetNodes <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   929
    <span class="kw1">this</span>._uiSetNodes<span class="br0">&#40;</span>e.<span class="me1">newVal</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   930
<span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   931
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   932
_uiSetNodes <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>nodes<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   933
    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">this</span>._triggerNodes<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   934
        <span class="kw1">this</span>._triggerNodes.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="kw1">this</span>._triggerClassName<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   935
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   936
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   937
    <span class="kw1">if</span> <span class="br0">&#40;</span>nodes<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   938
        <span class="kw1">this</span>._triggerNodes <span class="sy0">=</span> nodes<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   939
        <span class="kw1">this</span>._triggerNodes.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="kw1">this</span>._triggerClassName<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   940
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   941
<span class="br0">&#125;</span><span class="sy0">,</span></pre></div><textarea id="syntax6-plain">_afterSetNodes : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   942
    this._uiSetNodes(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   943
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   944
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   945
_uiSetNodes : function(nodes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   946
    if (this._triggerNodes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   947
        this._triggerNodes.removeClass(this._triggerClassName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   948
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   949
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   950
    if (nodes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   951
        this._triggerNodes = nodes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   952
        this._triggerNodes.addClass(this._triggerClassName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   953
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   954
},</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   955
<p>Similarly the <code>_afterSetDelegate</code> method is the default attributechange listener for the <code>delegate</code> attribute,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   956
and invokes <code>_bindDelegate</code> to set up the listeners when a new delegate node is set.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   957
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   958
<div id="syntax7" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_afterSetDelegate <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._bindDelegate<span class="br0">&#40;</span>e.<span class="me1">newVal</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">_bindDelegate <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> eventHandles <span class="sy0">=</span> <span class="kw1">this</span>._eventHandles<span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>eventHandles.<span class="me1">delegate</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        eventHandles.<span class="me1">delegate</span>.<span class="me1">detach</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">        eventHandles.<span class="me1">delegate</span> <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    eventHandles.<span class="me1">delegate</span> <span class="sy0">=</span> Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;mouseover&quot;</span><span class="sy0">,</span> Y.<span class="me1">bind</span><span class="br0">&#40;</span><span class="kw1">this</span>._onDelegateMouseOver<span class="sy0">,</span> <span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;delegate&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_afterSetDelegate <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   959
    <span class="kw1">this</span>._bindDelegate<span class="br0">&#40;</span>e.<span class="me1">newVal</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   960
<span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   961
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   962
_bindDelegate <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   963
    <span class="kw2">var</span> eventHandles <span class="sy0">=</span> <span class="kw1">this</span>._eventHandles<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   964
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   965
    <span class="kw1">if</span> <span class="br0">&#40;</span>eventHandles.<span class="me1">delegate</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   966
        eventHandles.<span class="me1">delegate</span>.<span class="me1">detach</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   967
        eventHandles.<span class="me1">delegate</span> <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   968
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   969
    eventHandles.<span class="me1">delegate</span> <span class="sy0">=</span> Y.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;mouseover&quot;</span><span class="sy0">,</span> Y.<span class="me1">bind</span><span class="br0">&#40;</span><span class="kw1">this</span>._onDelegateMouseOver<span class="sy0">,</span> <span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;delegate&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   970
<span class="br0">&#125;</span><span class="sy0">,</span></pre></div><textarea id="syntax7-plain">_afterSetDelegate : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   971
    this._bindDelegate(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   972
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   973
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   974
_bindDelegate : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   975
    var eventHandles = this._eventHandles;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   976
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   977
    if (eventHandles.delegate) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   978
        eventHandles.delegate.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   979
        eventHandles.delegate = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   980
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   981
    eventHandles.delegate = Y.on("mouseover", Y.bind(this._onDelegateMouseOver, this), this.get("delegate"));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   982
},</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   983
<h4>DOM Event Handlers</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   984
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   985
<p>Tooltips interaction revolves around the <code>mouseover</code>, <code>mousemove</code> and <code>mouseout</code> DOM events. The mouseover listener is the only listener set up initially, on the <code>delegate</code> node:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   986
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   987
<div id="syntax8" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_onDelegateMouseOver <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> node <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">getParentTrigger</span><span class="br0">&#40;</span>e.<span class="me1">target</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>node <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="kw1">this</span>._currTrigger.<span class="me1">node</span> <span class="sy0">||</span> <span class="sy0">!</span>node.<span class="me1">compareTo</span><span class="br0">&#40;</span><span class="kw1">this</span>._currTrigger.<span class="me1">node</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._enterTrigger<span class="br0">&#40;</span>node<span class="sy0">,</span> e.<span class="me1">pageX</span><span class="sy0">,</span> e.<span class="me1">pageY</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_onDelegateMouseOver <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   988
    <span class="kw2">var</span> node <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">getParentTrigger</span><span class="br0">&#40;</span>e.<span class="me1">target</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   989
    <span class="kw1">if</span> <span class="br0">&#40;</span>node <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="kw1">this</span>._currTrigger.<span class="me1">node</span> <span class="sy0">||</span> <span class="sy0">!</span>node.<span class="me1">compareTo</span><span class="br0">&#40;</span><span class="kw1">this</span>._currTrigger.<span class="me1">node</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   990
        <span class="kw1">this</span>._enterTrigger<span class="br0">&#40;</span>node<span class="sy0">,</span> e.<span class="me1">pageX</span><span class="sy0">,</span> e.<span class="me1">pageY</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   991
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   992
<span class="br0">&#125;</span></pre></div><textarea id="syntax8-plain">_onDelegateMouseOver : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   993
    var node = this.getParentTrigger(e.target);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   994
    if (node && (!this._currTrigger.node || !node.compareTo(this._currTrigger.node))) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   995
        this._enterTrigger(node, e.pageX, e.pageY);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   996
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   997
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   998
<p>It attempts to determine if the mouse is entering a trigger node. It ignores mouseover events generated from elements 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   999
inside the current trigger node (for example when mousing out of a child element of a trigger node). If it determines that the mouse is entering a trigger node,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1000
the delegates to the <code>_enterTrigger</code> method to setup the current trigger state and attaches mousemove and mouseout listeners on the current trigger node.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1001
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1002
<p>The mouse out listener delegates to the <code>_leaveTrigger</code> method, if it determines the mouse is leaving the trigger node:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1003
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1004
<div id="syntax9" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_onNodeMouseOut <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> to <span class="sy0">=</span> e.<span class="me1">relatedTarget</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> trigger <span class="sy0">=</span> e.<span class="me1">currentTarget</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>trigger.<span class="me1">contains</span><span class="br0">&#40;</span>to<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._leaveTrigger<span class="br0">&#40;</span>trigger<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_onNodeMouseOut <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1005
    <span class="kw2">var</span> to <span class="sy0">=</span> e.<span class="me1">relatedTarget</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1006
    <span class="kw2">var</span> trigger <span class="sy0">=</span> e.<span class="me1">currentTarget</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1007
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1008
    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>trigger.<span class="me1">contains</span><span class="br0">&#40;</span>to<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1009
        <span class="kw1">this</span>._leaveTrigger<span class="br0">&#40;</span>trigger<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1010
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1011
<span class="br0">&#125;</span></pre></div><textarea id="syntax9-plain">_onNodeMouseOut : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1012
    var to = e.relatedTarget;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1013
    var trigger = e.currentTarget;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1014
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1015
    if (!trigger.contains(to)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1016
        this._leaveTrigger(trigger);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1017
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1018
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1019
<p>The mouse move listener delegates to the <code>_overTrigger</code> method to store the current mouse XY co-ordinates (used to position the Tooltip when it is displayed after the <code>showDelay</code>):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1020
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1021
<div id="syntax10" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_onNodeMouseMove <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._overTrigger<span class="br0">&#40;</span>e.<span class="me1">pageX</span><span class="sy0">,</span> e.<span class="me1">pageY</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_onNodeMouseMove <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1022
    <span class="kw1">this</span>._overTrigger<span class="br0">&#40;</span>e.<span class="me1">pageX</span><span class="sy0">,</span> e.<span class="me1">pageY</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1023
<span class="br0">&#125;</span></pre></div><textarea id="syntax10-plain">_onNodeMouseMove : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1024
    this._overTrigger(e.pageX, e.pageY);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1025
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1026
<h4>Trigger Event Delegates: _enterTrigger, _leaveTrigger, _overTrigger</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1027
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1028
<p>As seen above, the DOM event handlers delegate to the <code>_enterTrigger, _leaveTrigger and _overTrigger</code> methods to update the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1029
Tooltip state based on the currently active trigger node.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1030
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1031
<p>The <code>_enterTrigger</code> method sets the current trigger state (which node is the current tooltip trigger, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1032
what the current mouse XY position is, etc.). The method also fires the <code>triggerEnter</code> event, whose default function actually handles 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1033
showing the tooltip after the configured <code>showDelay</code> period. The <code>triggerEnter</code> event can be prevented by listeners, allowing 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1034
users to prevent the tooltip from being shown if required. (<code>triggerEnter</code> listeners are passed the current trigger node and pageX, pageY mouse co-ordinates as event facade properties):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1035
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1036
<div id="syntax11" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_enterTrigger <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>node<span class="sy0">,</span> x<span class="sy0">,</span> y<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._setCurrentTrigger<span class="br0">&#40;</span>node<span class="sy0">,</span> x<span class="sy0">,</span> y<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">fire</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="kw2">null</span><span class="sy0">,</span> node<span class="sy0">,</span> x<span class="sy0">,</span> y<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">_defTriggerEnterFn <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> node <span class="sy0">=</span> e.<span class="me1">node</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;disabled&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._clearTimers<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">        <span class="kw2">var</span> delay <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;visible&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="nu0">0</span> <span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;showDelay&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>._timers.<span class="me1">show</span> <span class="sy0">=</span> Y.<span class="me1">later</span><span class="br0">&#40;</span>delay<span class="sy0">,</span> <span class="kw1">this</span><span class="sy0">,</span> <span class="kw1">this</span>._showTooltip<span class="sy0">,</span> <span class="br0">&#91;</span>node<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_enterTrigger <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>node<span class="sy0">,</span> x<span class="sy0">,</span> y<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1037
    <span class="kw1">this</span>._setCurrentTrigger<span class="br0">&#40;</span>node<span class="sy0">,</span> x<span class="sy0">,</span> y<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1038
    <span class="kw1">this</span>.<span class="me1">fire</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="kw2">null</span><span class="sy0">,</span> node<span class="sy0">,</span> x<span class="sy0">,</span> y<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1039
<span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1040
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1041
_defTriggerEnterFn <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1042
    <span class="kw2">var</span> node <span class="sy0">=</span> e.<span class="me1">node</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1043
    <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;disabled&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1044
        <span class="kw1">this</span>._clearTimers<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1045
        <span class="kw2">var</span> delay <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;visible&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="nu0">0</span> <span class="sy0">:</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;showDelay&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1046
        <span class="kw1">this</span>._timers.<span class="me1">show</span> <span class="sy0">=</span> Y.<span class="me1">later</span><span class="br0">&#40;</span>delay<span class="sy0">,</span> <span class="kw1">this</span><span class="sy0">,</span> <span class="kw1">this</span>._showTooltip<span class="sy0">,</span> <span class="br0">&#91;</span>node<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1047
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1048
<span class="br0">&#125;</span><span class="sy0">,</span></pre></div><textarea id="syntax11-plain">_enterTrigger : function(node, x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1049
    this._setCurrentTrigger(node, x, y);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1050
    this.fire("triggerEnter", null, node, x, y);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1051
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1052
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1053
_defTriggerEnterFn : function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1054
    var node = e.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1055
    if (!this.get("disabled")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1056
        this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1057
        var delay = (this.get("visible")) ? 0 : this.get("showDelay");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1058
        this._timers.show = Y.later(delay, this, this._showTooltip, [node]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1059
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1060
},</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1061
<p>Similarly the <code>_leaveTrigger</code> method is invoked when the mouse leaves a trigger node, and clears any stored state, timers and listeners before setting up
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1062
the <code>hideDelay</code> timer. It fires a <code>triggerLeave</code> event, but cannot be prevented, and has no default behavior to prevent:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1063
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1064
<div id="syntax12" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_leaveTrigger <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>node<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">fire</span><span class="br0">&#40;</span><span class="st0">&quot;triggerLeave&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._clearCurrentTrigger<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="kw1">this</span>._clearTimers<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._timers.<span class="me1">hide</span> <span class="sy0">=</span> Y.<span class="me1">later</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;hideDelay&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw1">this</span><span class="sy0">,</span> <span class="kw1">this</span>._hideTooltip<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_leaveTrigger <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>node<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1065
    <span class="kw1">this</span>.<span class="me1">fire</span><span class="br0">&#40;</span><span class="st0">&quot;triggerLeave&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1066
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1067
    <span class="kw1">this</span>._clearCurrentTrigger<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1068
    <span class="kw1">this</span>._clearTimers<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1069
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1070
    <span class="kw1">this</span>._timers.<span class="me1">hide</span> <span class="sy0">=</span> Y.<span class="me1">later</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;hideDelay&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw1">this</span><span class="sy0">,</span> <span class="kw1">this</span>._hideTooltip<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1071
<span class="br0">&#125;</span><span class="sy0">,</span></pre></div><textarea id="syntax12-plain">_leaveTrigger : function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1072
    this.fire("triggerLeave");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1073
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1074
    this._clearCurrentTrigger();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1075
    this._clearTimers();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1076
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1077
    this._timers.hide = Y.later(this.get("hideDelay"), this, this._hideTooltip);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1078
},</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1079
<p>As mentioned previously, the <code>_overTrigger</code> method simply stores the current mouse XY co-ordinates for use when the tooltip is shown:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1080
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1081
<div id="syntax13" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_overTrigger <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>x<span class="sy0">,</span> y<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._currTrigger.<span class="me1">mouseX</span> <span class="sy0">=</span> x<span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>._currTrigger.<span class="me1">mouseY</span> <span class="sy0">=</span> y<span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_overTrigger <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>x<span class="sy0">,</span> y<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1082
    <span class="kw1">this</span>._currTrigger.<span class="me1">mouseX</span> <span class="sy0">=</span> x<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1083
    <span class="kw1">this</span>._currTrigger.<span class="me1">mouseY</span> <span class="sy0">=</span> y<span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1084
<span class="br0">&#125;</span></pre></div><textarea id="syntax13-plain">_overTrigger : function(x, y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1085
    this._currTrigger.mouseX = x;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1086
    this._currTrigger.mouseY = y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1087
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1088
<h4>Setting Tooltip Content</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1089
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1090
<p>Since the content for a tooltip is usually a function of the trigger node and not constant, <code>Tooltip</code> provides a number of ways to set the content.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1091
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1092
<ol>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1093
    <li>Setting the <code>content</code> attribute to a string or node. In this case, the value of the <code>content</code> attribute is used
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1094
    for all triggerNodes</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1095
    <li>Setting the <code>content</code> attribute to an object literal, containing a map of triggerNode id to content. The content for a trigger node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1096
    will be set using the map, when the tooltip is triggered for the node.</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1097
    <li>Setting the title attribute on the trigger node. The value of the title attribute is used to set the tooltip content,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1098
    when triggered for the node.</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1099
    <li>By calling the <code>setTriggerContent</code> method to set content for a specific trigger node, in a <code>triggerEnter</code> event listener.</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1100
</ol>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1101
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1102
<p>The precedence of these methods is handled in the <code>_setTriggerContent</code> method, invoked when the mouse enters a trigger:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1103
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1104
<div id="syntax14" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">_setTriggerContent <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>node<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> content <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;content&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>content <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span><span class="br0">&#40;</span>content <span class="kw1">instanceof</span> Node <span class="sy0">||</span> Lang.<span class="me1">isString</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        content <span class="sy0">=</span> content<span class="br0">&#91;</span>node.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span> <span class="sy0">||</span> node.<span class="me1">getAttribute</span><span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">this</span>.<span class="me1">setTriggerContent</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">setTriggerContent <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">    <span class="kw2">var</span> contentBox <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;contentBox&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    contentBox.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>content<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">if</span> <span class="br0">&#40;</span>content <span class="kw1">instanceof</span> Node<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">            <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">,</span> l <span class="sy0">=</span> content.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> l<span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">                contentBox.<span class="me1">appendChild</span><span class="br0">&#40;</span>content.<span class="kw1">item</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">            <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span>Lang.<span class="me1">isString</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            contentBox.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> content<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">_setTriggerContent <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>node<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1105
    <span class="kw2">var</span> content <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;content&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1106
    <span class="kw1">if</span> <span class="br0">&#40;</span>content <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span><span class="br0">&#40;</span>content <span class="kw1">instanceof</span> Node <span class="sy0">||</span> Lang.<span class="me1">isString</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1107
        content <span class="sy0">=</span> content<span class="br0">&#91;</span>node.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span> <span class="sy0">||</span> node.<span class="me1">getAttribute</span><span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1108
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1109
    <span class="kw1">this</span>.<span class="me1">setTriggerContent</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1110
<span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1111
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1112
setTriggerContent <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1113
    <span class="kw2">var</span> contentBox <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;contentBox&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1114
    contentBox.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1115
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1116
    <span class="kw1">if</span> <span class="br0">&#40;</span>content<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1117
        <span class="kw1">if</span> <span class="br0">&#40;</span>content <span class="kw1">instanceof</span> Node<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1118
            <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">,</span> l <span class="sy0">=</span> content.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> l<span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1119
                contentBox.<span class="me1">appendChild</span><span class="br0">&#40;</span>content.<span class="kw1">item</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1120
            <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1121
        <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span>Lang.<span class="me1">isString</span><span class="br0">&#40;</span>content<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1122
            contentBox.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">&quot;innerHTML&quot;</span><span class="sy0">,</span> content<span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1123
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1124
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1125
<span class="br0">&#125;</span></pre></div><textarea id="syntax14-plain">_setTriggerContent : function(node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1126
    var content = this.get("content");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1127
    if (content && !(content instanceof Node || Lang.isString(content))) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1128
        content = content[node.get("id")] || node.getAttribute("title");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1129
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1130
    this.setTriggerContent(content);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1131
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1132
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1133
setTriggerContent : function(content) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1134
    var contentBox = this.get("contentBox");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1135
    contentBox.set("innerHTML", "");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1136
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1137
    if (content) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1138
        if (content instanceof Node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1139
            for (var i = 0, l = content.size(); i < l; ++i) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1140
                contentBox.appendChild(content.item(i));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1141
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1142
        } else if (Lang.isString(content)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1143
            contentBox.set("innerHTML", content);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1144
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1145
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1146
}</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1147
<p>Calling the public <code>setTriggerContent</code> in a <code>triggerEvent</code> listener will over-ride content set using the <code>content</code> attribute or the trigger node's title value.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1148
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1149
<h4>Using Tooltip</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1150
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1151
<p>For this example, we set up 4 DIV elements which will act as tooltip triggers. They are all marked using a <code>yui-hastooltip</code> class, so that they can be queried using a simple selector, passed as the value for the <code>triggerNodes</code> attribute in the tooltip's constructor Also all 4 trigger nodes are contained in a wrapper DIV with <code>id="delegate"</code> which will act as the <code>delegate</code> node.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1152
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1153
<div id="syntax15" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">var</span> tt <span class="sy0">=</span> <span class="kw2">new</span> Tooltip<span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    triggerNodes<span class="sy0">:</span><span class="st0">&quot;.yui-hastooltip&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    delegate<span class="sy0">:</span> <span class="st0">&quot;#delegate&quot;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    content<span class="sy0">:</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        tt3<span class="sy0">:</span> <span class="st0">&quot;Tooltip 3 (from lookup)&quot;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    shim<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    zIndex<span class="sy0">:</span><span class="nu0">2</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">tt.<span class="me1">render</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="kw2">var</span> tt <span class="sy0">=</span> <span class="kw2">new</span> Tooltip<span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1154
    triggerNodes<span class="sy0">:</span><span class="st0">&quot;.yui-hastooltip&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1155
    delegate<span class="sy0">:</span> <span class="st0">&quot;#delegate&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1156
    content<span class="sy0">:</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1157
        tt3<span class="sy0">:</span> <span class="st0">&quot;Tooltip 3 (from lookup)&quot;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1158
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1159
    shim<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1160
    zIndex<span class="sy0">:</span><span class="nu0">2</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1161
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1162
tt.<span class="me1">render</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax15-plain">var tt = new Tooltip({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1163
    triggerNodes:".yui-hastooltip",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1164
    delegate: "#delegate",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1165
    content: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1166
        tt3: "Tooltip 3 (from lookup)"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1167
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1168
    shim:false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1169
    zIndex:2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1170
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1171
tt.render();</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1172
<p>The tooltip content for each of the trigger nodes is setup differently. The first trigger node uses the title attribute to set it's content. The third trigger node's content is set using the content map set in the constructor above. The second trigger node's content is set using a <code>triggerEnter</code> event listener and the <code>setTriggerContent</code> method as shown below:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1173
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1174
<div id="syntax16" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">tt.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> node <span class="sy0">=</span> e.<span class="me1">node</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>node <span class="sy0">&amp;&amp;</span> node.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st0">&quot;tt2&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>.<span class="me1">setTriggerContent</span><span class="br0">&#40;</span><span class="st0">&quot;Tooltip 2 (from triggerEvent)&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">tt.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1175
    <span class="kw2">var</span> node <span class="sy0">=</span> e.<span class="me1">node</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1176
    <span class="kw1">if</span> <span class="br0">&#40;</span>node <span class="sy0">&amp;&amp;</span> node.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st0">&quot;tt2&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1177
        <span class="kw1">this</span>.<span class="me1">setTriggerContent</span><span class="br0">&#40;</span><span class="st0">&quot;Tooltip 2 (from triggerEvent)&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1178
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1179
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax16-plain">tt.on("triggerEnter", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1180
    var node = e.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1181
    if (node && node.get("id") == "tt2") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1182
        this.setTriggerContent("Tooltip 2 (from triggerEvent)");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1183
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1184
});</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1185
<p>The fourth trigger node's content is set using it's title attribute, however it also has a <code>triggerEvent</code> listener which prevents the tooltip from being displayed for it, if the checkbox is checked.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1186
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1187
<div id="syntax17" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">var</span> prevent <span class="sy0">=</span> Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#prevent&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">tt.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    <span class="kw2">var</span> node <span class="sy0">=</span> e.<span class="me1">node</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="kw1">if</span> <span class="br0">&#40;</span>prevent.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;checked&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        <span class="kw1">if</span> <span class="br0">&#40;</span>node <span class="sy0">&amp;&amp;</span> node.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st0">&quot;tt4&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            e.<span class="me1">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="kw2">var</span> prevent <span class="sy0">=</span> Y.<span class="me1">one</span><span class="br0">&#40;</span><span class="st0">&quot;#prevent&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1188
tt.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">&quot;triggerEnter&quot;</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1189
    <span class="kw2">var</span> node <span class="sy0">=</span> e.<span class="me1">node</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1190
    <span class="kw1">if</span> <span class="br0">&#40;</span>prevent.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;checked&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1191
        <span class="kw1">if</span> <span class="br0">&#40;</span>node <span class="sy0">&amp;&amp;</span> node.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;id&quot;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st0">&quot;tt4&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1192
            e.<span class="me1">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1193
        <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1194
    <span class="br0">&#125;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1195
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax17-plain">var prevent = Y.one("#prevent");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1196
tt.on("triggerEnter", function(e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1197
    var node = e.node;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1198
    if (prevent.get("checked")) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1199
        if (node && node.get("id") == "tt4") {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1200
            e.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1201
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1202
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1203
});</textarea></div>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1204
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1205
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1206
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1207
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1208
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1209
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1210
    Widget Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1211
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1212
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1213
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1214
								<li><a href='../widget/widget-extend.html'>Extending the base widget class</a></li><li><a href='../widget/widget-build.html'>Creating custom widget classes</a></li><li class='selected'><a href='../widget/widget-tooltip.html'>Creating a simple Tooltip widget</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1215
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1216
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1217
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1218
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1219
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1220
						<h4>More Widget Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1221
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1222
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1223
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1224
							<!-- <li><a href="http://developer.yahoo.com/yui/widget/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1225
<li><a href="../../api/module_widget.html">API Documentation</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1226
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1227
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1228
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1229
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1230
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1231
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1232
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1233
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1234
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1235
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1236
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1237
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1238
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1239
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1240
<li class="sect first">YUI 3 Resources</li><li class="item"><a title="YUI 3 -- Yahoo! User Interface (YUI) Library" href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="YUI 3 Dependency Configurator -- configure your custom YUI implementation" href="http://developer.yahoo.com/yui/3/configurator">YUI 3 Dependency Configurator</a></li><li class="item"><a title="The YUI 3 Forum on YUILibrary.com" href="http://yuilibrary.com/forum/viewforum.php?f=15">YUI 3 Forums (external)</a></li><li class="item"><a title="Found a bug or a missing feature? Let us know on YUILibrary.com." href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License</a></li><li class="item"><a title="Download and fork the YUI project on GitHub" href="http://github.com/yui">YUI on Github</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI Global Object - Functional Examples" href="../../examples/yui/index.html">YUI Global Object</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="selected "><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="AsyncQueue - Functional Examples" href="../../examples/async-queue/index.html">AsyncQueue</a></li><li class="item"><a title="Browser History - Functional Examples" href="../../examples/history/index.html">Browser History</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Console Filters Plugin- Functional Examples" href="../../examples/console-filters/index.html">Plugin.ConsoleFilters <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">Other Useful YUI 3 Resources</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1241
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1242
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1243
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1244
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1245
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1246
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1247
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1248
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1249
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1250
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1251
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1252
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1253
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1254
var yuiConfig = {base:"../../build/", timeout: 10000};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1255
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1256
<script src="../../assets/syntax.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1257
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1258
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1259
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1260
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1261
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1262
</html>