src/cm/media/js/lib/yui/yui_3.10.3/docs/widget/widget-build.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Example: Creating Custom Widget Classes With Extensions</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <h1>Example: Creating Custom Widget Classes With Extensions</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <div class="content"><style type="text/css" scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
/* Standard Module Widget CSS */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
.yui3-standardmodule-hidden {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    display:none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
.yui3-standardmodule {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    margin:10px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
.yui3-standardmodule-content {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    padding:3px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    border:1px solid #666;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
.yui3-standardmodule-content .yui3-widget-hd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    padding:5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    border:2px solid #aa0000;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    background-color:#fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    overflow:auto;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
.yui3-standardmodule-content .yui3-widget-bd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    padding:5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    border:2px solid #0000aa;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    background-color:#fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    overflow:auto;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
.yui3-standardmodule-content .yui3-widget-ft {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    padding:5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    border:2px solid #00aa00;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    background-color:#fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    overflow:auto;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
/* Positionable Widget CSS */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
.yui3-positionable {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    position:absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
.yui3-positionable-content {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    text-align:center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    border:1px solid #000;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    background-color:#999966;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    color:#fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    padding:10px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
.yui3-positionable-hidden {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    visibility:hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
/* Alignable Widget CSS */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
.yui3-alignable {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    position:absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
.yui3-alignable-content {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    text-align:center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    border:1px solid #000000;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    background-color:#004C6D;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
    color:#fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    padding:1px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
.yui3-alignable-hidden {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
    visibility:hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
/* Example Layout CSS */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
.widget-build-example {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    border:1px solid #ccc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    padding:5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
.widget-build-example button, .widget-build-example label, .widget-build-example select, .widget-build-example input {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    margin-right:5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
.widget-build-example button.fail {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    color:#cc0000;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
    margin-left:10px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
.widget-build-example .filler {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    color:#999;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
#x, #y {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    width:3em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
#widget-build-examples dd {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    margin-left:0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
#widget-build-examples dt {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    margin-bottom:1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    margin-top:1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
#widget2-example, #widget3-example {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    height:15em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
#widget2-example select, #widget3-example select {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    width:100%;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
#alignment p {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
    margin:0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    padding:2px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    color:#dddd00;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    <p>This example shows how you can mix and match the <code>WidgetPosition</code>, <code>WidgetPositionAlign</code>, <code>WidgetStack</code> and <code>WidgetStdMod</code> extensions to build custom versions of the <code>Widget</code> class, using <code>Base.create</code>.</p>    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
<div class="example">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    <dl id="widget-build-examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
<dt><code>Widget</code> with <code>WidgetStdMod</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
<dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    <form class="widget-build-example" id="widget1-example" action="#">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        <input type="text" id="content" value="">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        <select id="section">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
            <option value="header">Header</option>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
            <option value="body">Body</option>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            <option value="footer">Footer</option>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        </select>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        <button type="submit" id="setHTML">Set Content</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        <button type="button" class="fail" id="tryMove">move() (should fail)</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        <div id="widget1">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
            <div class="yui3-widget-hd">Module Header</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            <div class="yui3-widget-bd">Module Body</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
            <div class="yui3-widget-ft">Module Footer</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        <p class="filler">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc pretium quam eu mi varius pulvinar. Duis orci arcu, ullamcorper sit amet, luctus ut, interdum ac, quam.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
    </form>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
<dt><code>Widget</code> with <code>WidgetPosition, WidgetStack</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
<dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    <form class="widget-build-example" id="widget2-example" action="#">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
        <label>X: <input type="text" id="x" value="0" ></label>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
        <label>Y: <input type="text" id="y" value="0" ></label>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        <button type="submit" id="move">Move</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
        <button type="button" class="fail" id="tryContent">setStdModContent() (should fail)</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
        <div id="widget2"><strong>Positionable Widget</strong></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
        <p class="filler">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            <select>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
                <option>Prevent IE6 Bleedthrough</option>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
            </select>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc pretium quam eu mi varius pulvinar. Duis orci arcu, ullamcorper sit amet, luctus ut, interdum ac, quam. Pellentesque euismod. Nam tincidunt, purus in ultrices congue, urna neque posuere arcu, aliquam tristique purus sapien id nulla. Etiam rhoncus nulla at leo. Cras scelerisque nisl in nibh. Sed eget odio. Morbi elit elit, porta a, convallis sit amet, rhoncus non, felis. Mauris nulla pede, pretium eleifend, porttitor at, rutrum id, orci. Quisque non urna. Nulla aliquam rhoncus est. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    </form>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
<dt><code>Widget</code> with <code>WidgetPosition, WidgetStack, WidgetPositionAlign</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
<dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    <div class="widget-build-example" id="widget3-example">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        <button type="button" id="run">Step Through Alignments (every 2.5s)</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
        <p class="filler">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
            <select>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
                <option>Prevent IE6 Bleedthrough</option>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
            </select>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc pretium quam eu mi varius pulvinar. Duis orci arcu, ullamcorper sit amet, luctus ut, interdum ac, quam. Pellentesque euismod. Nam tincidunt, purus in ultrices congue, urna neque posuere arcu, aliquam tristique purus sapien id nulla. Etiam rhoncus nulla at leo. Cras scelerisque nisl in nibh. Sed eget odio. Morbi elit elit, porta a, convallis sit amet, rhoncus non, felis. Mauris nulla pede, pretium eleifend, porttitor at, rutrum id, orci. Quisque non urna. Nulla aliquam rhoncus est.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
<script type="text/javascript">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
YUI().use("widget", "widget-position", "widget-stack", "widget-position-align", "widget-stdmod", "async-queue", "escape", function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    // WIDGET 1 : Build Widget with StdMod, but no positioning/stacking support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    var StandardModule = Y.Base.create("standardModule", Y.Widget, [Y.WidgetStdMod]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    var stdmod = new StandardModule({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        srcNode: "#widget1",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
        width:"12em",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
        height:"12em"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    stdmod.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    var contentInput = Y.one("#content");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
    var sectionInput = Y.one("#section");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
    Y.on("submit", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        var content = Y.Escape.html(contentInput.get("value"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        var section = sectionInput.get("value");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        stdmod.setStdModContent(section, content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    }, "#widget1-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    Y.on("click", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
        try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
            stdmod.move([0,0]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
            alert("move() is " + typeof stdmod.move + ", stdmod.hasImpl(Y.WidgetPosition) : " + stdmod.hasImpl(Y.WidgetPosition));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    }, "#tryMove");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    // WIDGET 2: Build Widget with Position support and Stack support, but no StdMod support or Position Extras support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    var Positionable = Y.Base.create("positionable", Y.Widget, [Y.WidgetPosition, Y.WidgetStack]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    var positionable = new Positionable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        srcNode: "#widget2",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
        width:"10em",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
        zIndex:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
    positionable.render("#widget2-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    var xy = Y.one("#widget2-example > p").getXY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    positionable.move(xy[0], xy[1]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
    var xInput = Y.one("#x");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    var yInput = Y.one("#y");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    xInput.set("value", Math.round(xy[0]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    yInput.set("value", Math.round(xy[1]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    Y.on("submit", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
        var x = parseInt(xInput.get("value"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
        var y = parseInt(yInput.get("value"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        positionable.move(x,y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    }, "#widget2-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
    Y.on("click", function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
            positionable.setStdModContent("header", "new content");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
            alert("setStdModContent() is " + typeof positionable.setStdModContent + ", positionable.hasImpl(Y.WidgetStdMod) : " + positionable.hasImpl(Y.WidgetStdMod));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    }, "#tryContent");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
    // WIDGET 3: Build Widget with Position, PositionExt and Stack support, but no StdMod support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
    var Alignable = Y.Base.create("alignable", Y.Widget, [Y.WidgetPosition, Y.WidgetPositionAlign, Y.WidgetStack]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    var alignable = new Alignable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
        width:"14em",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        align : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
            node: "#widget3-example",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
            points: ["cc", "cc"]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
        zIndex:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
    alignable.get("contentBox").set("innerHTML", '<strong>Alignable Widget</strong><div id="alignment"><p>#widget3-example</p><p>[center, center]</p></div>');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    alignable.render("#widget3-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    // Example Alignments Queue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
    var stepDelay = 2500;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
    var currAlignment = Y.one("#alignment");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    var steps = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
            alignable.set("align", {node:"#widget3-example", points:["lc", "rc"]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
            currAlignment.set("innerHTML", "<p>#widget3-example</p><p>[left-center, right-center]</p>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
            alignable.set("align", {node:"#widget3-example", points:["tr", "br"]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
            currAlignment.set("innerHTML", "<p>#widget3-example</p><p>[top-right, bottom-right]</p>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
            alignable.set("centered", "#widget3-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
            currAlignment.set("innerHTML", "<p>#widget3-example</p><p>centered</p>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
            alignable.set("align", {points:["rc", "rc"]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
            currAlignment.set("innerHTML", "<p>viewport</p><p>[right-center, right-center]</p>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
            alignable.set("centered", true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
            currAlignment.set("innerHTML", "<p>viewport</p><p>centered</p>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
            alignable.set("align", {node:"#widget3-example", points:["cc", "cc"]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
            currAlignment.set("innerHTML", "<p>#widget3-example</p><p>[center, center]</p>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    var runBtn = Y.one("#run"); 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    var label = runBtn.get("text");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
    var q = new Y.AsyncQueue();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    q.after("complete", function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
        runBtn.set("text", label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    runBtn.on('click', function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
        if (q.isRunning()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
            q.stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
            this.set("text", label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
            for (var i = 0; i < steps.length; i++){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
                q.add({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
                    timeout: (i === 0) ? 0 : stepDelay,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
                    fn:steps[i]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
            q.run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
            this.set("text", "Stop");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
<h2>Creating Custom Widget Classes</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
<p>The <code>Base</code> class provides a <code>create</code> method which can be used to create custom versions of classes which derive from <code>Base</code> by adding extension classes to them.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
<p>Widget currently ships with four such extensions: <code>WidgetPosition</code>, <code>WidgetStack</code>, <code>WidgetPositionAlign</code> and <code>WidgetStdMod</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
These extensions are used to create the basic <code>Overlay</code> widget, but can also be used individually, to create custom versions of the base <code>Widget</code> class.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
<h2>Widget with WidgetStdMod support</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
<p>Adding the <code>WidgetStdMod</code> extension to Widget, creates a statically positioned Widget, with support for standard module format sections - header, body and footer, which maybe useful in portal type use cases, where the positioning/stacking capabilities which come bundled with Overlay are not required.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
<p>To create a custom class, we use <a href="http://yuilibrary.com/yui/docs/api/Base.html#method_Base.create"><code>Base.create</code></a>, which is described in detail on the documention page for <a href="../base/index.html#extensions">Base</a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
<p>We pass in <code>Widget</code> as the main class we want to add extensions to, and <code>WidgetStdMod</code> as the extension we'd like added to the main class:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
<pre class="code prettyprint">var StandardModule = Y.Base.create(&quot;standardModule&quot;, Y.Widget, [Y.WidgetStdMod]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
&#x2F;&#x2F; Render from Markup
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
var stdmod = new StandardModule({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
    contentBox: &quot;#widget1&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
    width:&quot;12em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
    height:&quot;12em&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
stdmod.render();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
<p><code>Base.create</code> will:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
<ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    <li>Create a new class which extends <code>Widget</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
    <li>Aggregate known <code>Base</code> and <code>Widget</code> fields, such as <code>ATTRS</code> and <code>HTML_PARSER</code> from <code>WidgetStdMod</code> on the new class</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    <li>Augment prototype methods from <code>WidgetStdMod</code> onto the new class prototype</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
</ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
<p>The first argument to create is the <code>NAME</code> of the new class we are creating, just like the <code>NAME</code> we define when extending the Widget class directly.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
<p>Note that the <code>Widget</code> class is unchanged, allowing you to still create <code>Widget</code> instances without any standard module support, along with <code>StandardModule</code> instances which have standard module support.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
<h3>Testing It Out</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
<p>The example attempts to set content on an instance of the newly created <code>StandardModule</code> class, using the <code>setStdModContent</code> method which is added by the extension (which would otherwise not exist on the Widget instance).</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
<pre class="code prettyprint">var contentInput = Y.one(&quot;#content&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
var sectionInput = Y.one(&quot;#section&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
&#x2F;&#x2F; This should work, since the StandardModule widget has settable 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
&#x2F;&#x2F; header&#x2F;body&#x2F;footer sections
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
Y.on(&quot;submit&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
    e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
    var content = Y.Escape.html(contentInput.get(&quot;value&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
    var section = sectionInput.get(&quot;value&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    stdmod.setStdModContent(section, content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
}, &quot;#widget1-example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
<p>To verify that no unrequested features are added, we also attempt to move the instance using the <code>move</code> method, which is not part of the base Widget class, and would be added by the <code>WidgetPosition</code> extension. This verifies that the other example classes we'll create, which do create new classes which use <code>WidgetPosition</code>, have not modified the base Widget class.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
<pre class="code prettyprint">&#x2F;&#x2F; This shoud fail, since the StandardModule widget is not positionable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
Y.on(&quot;click&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
    try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
        stdmod.move([0,0]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
    } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
        alert(&quot;move() is &quot; + typeof stdmod.move + &quot;, stdmod.hasImpl(Y.WidgetPosition) : &quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        + stdmod.hasImpl(Y.WidgetPosition));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
}, &quot;#tryMove&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
<p>Note that <code>Base.create</code> adds a <code>hasImpl</code> method to the built class, which allows you to query whether or not it has a particular extension applied.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
<h3>CSS Considerations</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
<p>We need to define the CSS which goes with this new <code>StandardModule</code> class we have created. The only rule really required out of the box is the rule which handles visibility (<code>yui-standardmodule-hidden</code>). The "standardmodule" used in the class name comes from the <code>NAME</code> property we set up for the new class, and is used to prefix all state related classes added to the widgets bounding box.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
Since the <code>StandardModule</code> class is not positionable, we use <code>display:none</code> to define the <code>hidden</code> state.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
<pre class="code prettyprint">&#x2F;* Visibility - How to handle visibility for this new widget *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
.yui3-standardmodule-hidden {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
    display:none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
<p>The other "yui-standardmodule" rules are only used to create the required look/feel for this particular example, and do not impact the StandardModule widget's functionality.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
<h2>Widget with WidgetPosition and WidgetStack support</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
<p>As with <code>StandardModule</code>, we use <code>Base.create</code> to create the new <code>Positionable</code> widget class. This time we add <code>WidgetPosition</code> and <code>WidgetStack</code> support to the base <code>Widget</code> class to create a basic XY positionable widget, with shimming and z-index support.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
<pre class="code prettyprint">var Positionable = Y.Base.create(&quot;positionable&quot;, Y.Widget, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
                            [Y.WidgetPosition, Y.WidgetStack]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
&#x2F;&#x2F; Render from markup
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
var positionable = new Positionable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
    contentBox: &quot;#widget2&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
    width:&quot;10em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
    height:&quot;10em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
    zIndex:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
positionable.render(&quot;#widget2-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
var xy = Y.one(&quot;#widget2-example &gt; p&quot;).getXY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
positionable.move(xy[0], xy[1]);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
<p>We <strong>don't</strong> add <code>WidgetPositionAlign</code> or <code>WidgetStdMod</code> support, so the widget doesn't have extended positioning support (align, center) or standard module support. Hence we position it manually using the <code>move</code> method which the <code>WidgetPosition</code> extension provides.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
<h3>Testing It Out</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
<p>We should now be able to invoke the <code>move</code> method on an instance of the newly created <code>Positionable</code> class:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
<pre class="code prettyprint">&#x2F;&#x2F; This should work, since Positionable has basic XY Positioning support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
Y.on(&quot;submit&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
    e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
    var x = parseInt(xInput.get(&quot;value&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
    var y = parseInt(yInput.get(&quot;value&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
    positionable.move(x,y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
}, &quot;#widget2-example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
<p>And, as with the <code>StandardModule</code> class, we should not be allowed to invoke any methods from an extension which we didn't request:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
<pre class="code prettyprint">&#x2F;&#x2F; This should fail, since Positionable does not have Standard Module sections
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
Y.on(&quot;click&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
    try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
        positionable.setStdModContent(&quot;header&quot;, &quot;new content&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
    } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
        alert(&quot;setStdModContent() is &quot; + typeof positionable.setStdModContent + 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
            &quot;, positionable.hasImpl(Y.WidgetStdMod) : &quot; + positionable.hasImpl(Y.WidgetStdMod));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
}, &quot;#tryContent&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
<h3>CSS Considerations</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
<p>Since now we have a positionable widget, with z-index support, we set the widget to be absolutely positioned by default, and control it's hidden state using <code>visibility</code> as opposed to <code>display</code></p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
<pre class="code prettyprint">&#x2F;* Define absolute positioning as the default for positionable widgets *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
.yui3-positionable {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
    position:absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
&#x2F;* 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
   In order to be able to position the widget when hidden, we define hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
   to use visibility, as opposed to display
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
*&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
.yui3-positionable-hidden {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
    visibility:hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
<h2>Widget with WidgetPosition, WidgetStack and WidgetPositionAlign support</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
<p>Lastly, we'll attempt to create a new widget class, which, in addition to basic positioning and stacking support, also has extended positioning support, allowing us to align it with other elements on the page.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
<p>Again, we use <code>Base.create</code> to create our new <code>Alignable</code> widget class, by combining <code>WidgetPosition</code>, <code>WidgetStack</code> and <code>WidgetPositionAlign</code> with the base widget class:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
<pre class="code prettyprint">var Alignable = Y.Base.create(&quot;alignable&quot;, Y.Widget, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
                    [Y.WidgetPosition, Y.WidgetPositionAlign, Y.WidgetStack]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
var alignable = new Alignable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
    width:&quot;14em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
    align : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        node: &quot;#widget3-example&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
        points: [&quot;cc&quot;, &quot;cc&quot;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    zIndex:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
alignable.get(&quot;contentBox&quot;).set(&quot;innerHTML&quot;, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
    &#x27;&lt;strong&gt;Alignable Widget&lt;&#x2F;strong&gt;&lt;div id=&quot;alignment&quot;&gt;&lt;p&gt;#widget3-example&lt;&#x2F;p&gt; \
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
    &lt;p&gt;[center, center]&lt;&#x2F;p&gt;&lt;&#x2F;div&gt;&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
alignable.render(&quot;#widget3-example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
<h3>Testing It Out</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
<p>We'll attempt to align an instance of the <code>Alignable</code> class, using some of the additional attributes which <code>WidgetPositionAlign</code> adds to the base <code>Widget</code> class: <code>align</code> and <code>centered</code>:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
<pre class="code prettyprint">&#x2F;&#x2F; Align left-center egde of widget to 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
&#x2F;&#x2F; right-center edge of the node with id &quot;widget3-example&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
alignable.set(&quot;align&quot;, {node:&quot;#widget3-example&quot;, points:[&quot;lc&quot;, &quot;rc&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
&#x2F;&#x2F; Align top-right corner of widget to 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
&#x2F;&#x2F; bottom-right corner of the node with id &quot;widget3-example&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
alignable.set(&quot;align&quot;, {node:&quot;#widget3-example&quot;, points:[&quot;tr&quot;, &quot;br&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
&#x2F;&#x2F; Center the widget in the node with id &quot;widget3-example&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
alignable.set(&quot;centered&quot;, &quot;widget3-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
&#x2F;&#x2F; Align the right-center edge of the widget to 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
&#x2F;&#x2F; the right center edge of the viewport (since a node is not provided to &#x27;align&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
alignable.set(&quot;align&quot;, {points:[&quot;rc&quot;, &quot;rc&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
&#x2F;&#x2F; Center the widget in the viewport (wince a node is not provided to &#x27;centered&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
alignable.set(&quot;centered&quot;, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
&#x2F;&#x2F; Return the node to it&#x27;s original alignment 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
&#x2F;&#x2F; (centered in the node with id &quot;widget3-example&quot;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
&#x2F;&#x2F; NOTE: centered is a shortcut for align : { points:[&quot;cc&quot;, &quot;cc&quot;] }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
alignable.set(&quot;align&quot;, {node:&quot;#widget3-example&quot;, points:[&quot;cc&quot;, &quot;cc&quot;]});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
<h3>CSS Considerations</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
<p>The <code>Alignable</code> widget class, has the same core CSS rules as the <code>Positionable</code> class, to define how it is positioned and how it is hidden:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
<pre class="code prettyprint">&#x2F;* Define absolute positioning as the default for alignable widgets *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
.yui3-alignable {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    position:absolute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
&#x2F;* 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
   In order to be able to position the widget when hidden, we define hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
   to use visibility, as opposed to display
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
*&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
.yui3-alignable-hidden {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
    visibility:hidden;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
<h2>Complete Example Source</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
<pre class="code prettyprint">&lt;dl id=&quot;widget-build-examples&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
&lt;dt&gt;&lt;code&gt;Widget&lt;&#x2F;code&gt; with &lt;code&gt;WidgetStdMod&lt;&#x2F;code&gt;&lt;&#x2F;dt&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
&lt;dd&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
    &lt;form class=&quot;widget-build-example&quot; id=&quot;widget1-example&quot; action=&quot;#&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
        &lt;input type=&quot;text&quot; id=&quot;content&quot; value=&quot;&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
        &lt;select id=&quot;section&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
            &lt;option value=&quot;header&quot;&gt;Header&lt;&#x2F;option&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
            &lt;option value=&quot;body&quot;&gt;Body&lt;&#x2F;option&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
            &lt;option value=&quot;footer&quot;&gt;Footer&lt;&#x2F;option&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
        &lt;&#x2F;select&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
        &lt;button type=&quot;submit&quot; id=&quot;setHTML&quot;&gt;Set Content&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
        &lt;button type=&quot;button&quot; class=&quot;fail&quot; id=&quot;tryMove&quot;&gt;move() (should fail)&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
        &lt;div id=&quot;widget1&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
            &lt;div class=&quot;yui3-widget-hd&quot;&gt;Module Header&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
            &lt;div class=&quot;yui3-widget-bd&quot;&gt;Module Body&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
            &lt;div class=&quot;yui3-widget-ft&quot;&gt;Module Footer&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
        &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
        &lt;p class=&quot;filler&quot;&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc pretium quam eu mi varius pulvinar. Duis orci arcu, ullamcorper sit amet, luctus ut, interdum ac, quam.&lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
    &lt;&#x2F;form&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
&lt;&#x2F;dd&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
&lt;dt&gt;&lt;code&gt;Widget&lt;&#x2F;code&gt; with &lt;code&gt;WidgetPosition, WidgetStack&lt;&#x2F;code&gt;&lt;&#x2F;dt&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
&lt;dd&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
    &lt;form class=&quot;widget-build-example&quot; id=&quot;widget2-example&quot; action=&quot;#&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
        &lt;label&gt;X: &lt;input type=&quot;text&quot; id=&quot;x&quot; value=&quot;0&quot; &gt;&lt;&#x2F;label&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
        &lt;label&gt;Y: &lt;input type=&quot;text&quot; id=&quot;y&quot; value=&quot;0&quot; &gt;&lt;&#x2F;label&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
        &lt;button type=&quot;submit&quot; id=&quot;move&quot;&gt;Move&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
        &lt;button type=&quot;button&quot; class=&quot;fail&quot; id=&quot;tryContent&quot;&gt;setStdModContent() (should fail)&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
        &lt;div id=&quot;widget2&quot;&gt;&lt;strong&gt;Positionable Widget&lt;&#x2F;strong&gt;&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
        &lt;p class=&quot;filler&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
            &lt;select&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
                &lt;option&gt;Prevent IE6 Bleedthrough&lt;&#x2F;option&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
            &lt;&#x2F;select&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc pretium quam eu mi varius pulvinar. Duis orci arcu, ullamcorper sit amet, luctus ut, interdum ac, quam. Pellentesque euismod. Nam tincidunt, purus in ultrices congue, urna neque posuere arcu, aliquam tristique purus sapien id nulla. Etiam rhoncus nulla at leo. Cras scelerisque nisl in nibh. Sed eget odio. Morbi elit elit, porta a, convallis sit amet, rhoncus non, felis. Mauris nulla pede, pretium eleifend, porttitor at, rutrum id, orci. Quisque non urna. Nulla aliquam rhoncus est. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
        &lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
    &lt;&#x2F;form&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
&lt;&#x2F;dd&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
&lt;dt&gt;&lt;code&gt;Widget&lt;&#x2F;code&gt; with &lt;code&gt;WidgetPosition, WidgetStack, WidgetPositionAlign&lt;&#x2F;code&gt;&lt;&#x2F;dt&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
&lt;dd&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
    &lt;div class=&quot;widget-build-example&quot; id=&quot;widget3-example&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
        &lt;button type=&quot;button&quot; id=&quot;run&quot;&gt;Step Through Alignments (every 2.5s)&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
        &lt;p class=&quot;filler&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
            &lt;select&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
                &lt;option&gt;Prevent IE6 Bleedthrough&lt;&#x2F;option&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
            &lt;&#x2F;select&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc pretium quam eu mi varius pulvinar. Duis orci arcu, ullamcorper sit amet, luctus ut, interdum ac, quam. Pellentesque euismod. Nam tincidunt, purus in ultrices congue, urna neque posuere arcu, aliquam tristique purus sapien id nulla. Etiam rhoncus nulla at leo. Cras scelerisque nisl in nibh. Sed eget odio. Morbi elit elit, porta a, convallis sit amet, rhoncus non, felis. Mauris nulla pede, pretium eleifend, porttitor at, rutrum id, orci. Quisque non urna. Nulla aliquam rhoncus est.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
        &lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
&lt;&#x2F;dd&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
&lt;&#x2F;dl&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
&lt;script type=&quot;text&#x2F;javascript&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
YUI().use(&quot;widget&quot;, &quot;widget-position&quot;, &quot;widget-stack&quot;, &quot;widget-position-align&quot;, &quot;widget-stdmod&quot;, &quot;async-queue&quot;, &quot;escape&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
    &#x2F;&#x2F; WIDGET 1 : Build Widget with StdMod, but no positioning&#x2F;stacking support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
    var StandardModule = Y.Base.create(&quot;standardModule&quot;, Y.Widget, [Y.WidgetStdMod]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
    var stdmod = new StandardModule({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
        srcNode: &quot;#widget1&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
        width:&quot;12em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
        height:&quot;12em&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
    stdmod.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
    var contentInput = Y.one(&quot;#content&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
    var sectionInput = Y.one(&quot;#section&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
    Y.on(&quot;submit&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
        var content = Y.Escape.html(contentInput.get(&quot;value&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
        var section = sectionInput.get(&quot;value&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
        stdmod.setStdModContent(section, content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
    }, &quot;#widget1-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
    Y.on(&quot;click&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
        try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
            stdmod.move([0,0]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
        } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
            alert(&quot;move() is &quot; + typeof stdmod.move + &quot;, stdmod.hasImpl(Y.WidgetPosition) : &quot; + stdmod.hasImpl(Y.WidgetPosition));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
    }, &quot;#tryMove&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
    &#x2F;&#x2F; WIDGET 2: Build Widget with Position support and Stack support, but no StdMod support or Position Extras support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
    var Positionable = Y.Base.create(&quot;positionable&quot;, Y.Widget, [Y.WidgetPosition, Y.WidgetStack]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
    var positionable = new Positionable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
        srcNode: &quot;#widget2&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
        width:&quot;10em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
        zIndex:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
    positionable.render(&quot;#widget2-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
    var xy = Y.one(&quot;#widget2-example &gt; p&quot;).getXY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
    positionable.move(xy[0], xy[1]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
    var xInput = Y.one(&quot;#x&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
    var yInput = Y.one(&quot;#y&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
    xInput.set(&quot;value&quot;, Math.round(xy[0]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
    yInput.set(&quot;value&quot;, Math.round(xy[1]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
    Y.on(&quot;submit&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
        var x = parseInt(xInput.get(&quot;value&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
        var y = parseInt(yInput.get(&quot;value&quot;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
        positionable.move(x,y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
    }, &quot;#widget2-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
    Y.on(&quot;click&quot;, function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
        try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
            positionable.setStdModContent(&quot;header&quot;, &quot;new content&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
        } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
            alert(&quot;setStdModContent() is &quot; + typeof positionable.setStdModContent + &quot;, positionable.hasImpl(Y.WidgetStdMod) : &quot; + positionable.hasImpl(Y.WidgetStdMod));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
    }, &quot;#tryContent&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
    &#x2F;&#x2F; WIDGET 3: Build Widget with Position, PositionExt and Stack support, but no StdMod support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
    var Alignable = Y.Base.create(&quot;alignable&quot;, Y.Widget, [Y.WidgetPosition, Y.WidgetPositionAlign, Y.WidgetStack]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
    var alignable = new Alignable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
        width:&quot;14em&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
        align : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
            node: &quot;#widget3-example&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
            points: [&quot;cc&quot;, &quot;cc&quot;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
        zIndex:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
    alignable.get(&quot;contentBox&quot;).set(&quot;innerHTML&quot;, &#x27;&lt;strong&gt;Alignable Widget&lt;&#x2F;strong&gt;&lt;div id=&quot;alignment&quot;&gt;&lt;p&gt;#widget3-example&lt;&#x2F;p&gt;&lt;p&gt;[center, center]&lt;&#x2F;p&gt;&lt;&#x2F;div&gt;&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
    alignable.render(&quot;#widget3-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
    &#x2F;&#x2F; Example Alignments Queue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
    var stepDelay = 2500;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
    var currAlignment = Y.one(&quot;#alignment&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
    var steps = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
            alignable.set(&quot;align&quot;, {node:&quot;#widget3-example&quot;, points:[&quot;lc&quot;, &quot;rc&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
            currAlignment.set(&quot;innerHTML&quot;, &quot;&lt;p&gt;#widget3-example&lt;&#x2F;p&gt;&lt;p&gt;[left-center, right-center]&lt;&#x2F;p&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
            alignable.set(&quot;align&quot;, {node:&quot;#widget3-example&quot;, points:[&quot;tr&quot;, &quot;br&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
            currAlignment.set(&quot;innerHTML&quot;, &quot;&lt;p&gt;#widget3-example&lt;&#x2F;p&gt;&lt;p&gt;[top-right, bottom-right]&lt;&#x2F;p&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
            alignable.set(&quot;centered&quot;, &quot;#widget3-example&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
            currAlignment.set(&quot;innerHTML&quot;, &quot;&lt;p&gt;#widget3-example&lt;&#x2F;p&gt;&lt;p&gt;centered&lt;&#x2F;p&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
            alignable.set(&quot;align&quot;, {points:[&quot;rc&quot;, &quot;rc&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
            currAlignment.set(&quot;innerHTML&quot;, &quot;&lt;p&gt;viewport&lt;&#x2F;p&gt;&lt;p&gt;[right-center, right-center]&lt;&#x2F;p&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
            alignable.set(&quot;centered&quot;, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
            currAlignment.set(&quot;innerHTML&quot;, &quot;&lt;p&gt;viewport&lt;&#x2F;p&gt;&lt;p&gt;centered&lt;&#x2F;p&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
        function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
            alignable.set(&quot;align&quot;, {node:&quot;#widget3-example&quot;, points:[&quot;cc&quot;, &quot;cc&quot;]});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
            currAlignment.set(&quot;innerHTML&quot;, &quot;&lt;p&gt;#widget3-example&lt;&#x2F;p&gt;&lt;p&gt;[center, center]&lt;&#x2F;p&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
    var runBtn = Y.one(&quot;#run&quot;); 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
    var label = runBtn.get(&quot;text&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
    var q = new Y.AsyncQueue();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
    q.after(&quot;complete&quot;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
        runBtn.set(&quot;text&quot;, label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
    runBtn.on(&#x27;click&#x27;, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
        if (q.isRunning()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
            q.stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
            this.set(&quot;text&quot;, label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
            for (var i = 0; i &lt; steps.length; i++){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
                q.add({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
                    timeout: (i === 0) ? 0 : stepDelay,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
                    fn:steps[i]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
            q.run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
            this.set(&quot;text&quot;, &quot;Stop&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
                                        <li data-description="Shows how to extend the base widget class, to create your own Widgets.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
                                            <a href="widget-extend.html">Extending the Base Widget Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
                                        <li data-description="Shows how to use Base.create and mix/match extensions to create custom Widget classes.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
                                            <a href="widget-build.html">Creating Custom Widget Classes With Extensions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
                                        <li data-description="Shows how to create an IO plugin for Widget.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
                                            <a href="widget-plugin.html">Creating a Widget Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
                                        <li data-description="Shows how to extend the Widget class, and add WidgetPosition and WidgetStack to create a Tooltip widget class.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
                                            <a href="widget-tooltip.html">Creating a Simple Tooltip Widget With Extensions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
                                        <li data-description="Shows how to extend the Widget class, and add WidgetParent and WidgetChild to create a simple ListBox widget.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
                                            <a href="widget-parentchild-listbox.html">Creating a Hierarchical ListBox Widget</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
    assets: '../assets/widget',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
    name: 'widget-build',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
    title: 'Creating Custom Widget Classes With Extensions',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
YUI.Env.Tests.examples.push('widget-extend');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
YUI.Env.Tests.examples.push('widget-build');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
YUI.Env.Tests.examples.push('widget-plugin');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
YUI.Env.Tests.examples.push('widget-tooltip');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
YUI.Env.Tests.examples.push('widget-parentchild-listbox');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
</html>