aboutsummaryrefslogtreecommitdiffstats
path: root/tests/visual/tooltip
diff options
context:
space:
mode:
authorjzaefferer <joern.zaefferer@gmail.com>2010-12-22 18:58:57 +0100
committerjzaefferer <joern.zaefferer@gmail.com>2010-12-22 18:58:57 +0100
commit0479ab6af6414c7a8e779c3cab3e7e8406f9eb62 (patch)
treecab8e0ea33ef3db131877d307a2b7c7099b7709e /tests/visual/tooltip
parent3552947c19b8ea1b779dc9809783c6ac6a218d68 (diff)
parent1fd34199efa9ddc35276b415cad8e7e37a6cc856 (diff)
downloadjquery-ui-0479ab6af6414c7a8e779c3cab3e7e8406f9eb62.tar.gz
jquery-ui-0479ab6af6414c7a8e779c3cab3e7e8406f9eb62.zip
Merge remote branch 'origin/tooltip'
Conflicts: demos/autocomplete/combobox.html demos/index.html tests/unit/index.html
Diffstat (limited to 'tests/visual/tooltip')
-rw-r--r--tests/visual/tooltip/ajaxcontent.php2
-rw-r--r--tests/visual/tooltip/callout.html213
-rw-r--r--tests/visual/tooltip/tooltip.html181
3 files changed, 396 insertions, 0 deletions
diff --git a/tests/visual/tooltip/ajaxcontent.php b/tests/visual/tooltip/ajaxcontent.php
new file mode 100644
index 000000000..a689a734d
--- /dev/null
+++ b/tests/visual/tooltip/ajaxcontent.php
@@ -0,0 +1,2 @@
+<?php sleep(1); ?>
+<strong>Hello</strong> world! \ No newline at end of file
diff --git a/tests/visual/tooltip/callout.html b/tests/visual/tooltip/callout.html
new file mode 100644
index 000000000..3ef694987
--- /dev/null
+++ b/tests/visual/tooltip/callout.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Tooltip Visual Test: Default</title>
+ <link rel="stylesheet" href="../visual.css" type="text/css" />
+ <link rel="stylesheet" href="../../../themes/base/ui.all.css" type="text/css">
+ <script type="text/javascript" src="../../../jquery-1.3.2.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.tooltip.js"></script>
+ <script type="text/javascript">
+ $.widget("ui.callout", {
+ _init: function() {
+ this.element.append('<div class="ui-tooltip-pointer ui-widget-content"><div class="ui-tooltip-pointer-inner" style="border-right-color:rgb(255, 255, 255)"></div></div>');
+ },
+ pointAt: function(target) {
+ target = $(target);
+ var tx = target.offset().left + target.width() / 2,
+ ty = target.offset().top + target.height() / 2,
+ dx = this.element.offset().left + this.element.width() / 2,
+ dy = this.element.offset().top + this.element.height() / 2;
+ function d(a, b) {
+ return a > b ? a - b : b - a;
+ }
+ this.element.attr("class", this.element.attr("class").replace(/(.+)ui-tooltip-arrow-..(.+)?/, "$1 $2"));
+ if (dx < tx && d(dx, tx) > d(dy, tx)) {
+ this.element.addClass("ui-tooltip-arrow-rc");
+ }
+ if (dx > tx && d(dx, tx) > d(dy, ty)) {
+ this.element.addClass("ui-tooltip-arrow-lc");
+ }
+ if (dy > ty && d(dx, tx) < d(dy, ty)) {
+ this.element.addClass("ui-tooltip-arrow-tc");
+ }
+ if (dy < ty && d(dx, tx) < d(dy, ty)) {
+ this.element.addClass("ui-tooltip-arrow-bc");
+ }
+
+ // fix inner borders
+ $('.ui-tooltip-pointer-inner', this.element).each(function(){
+ var pt = $(this).parent().parent();
+ var bColor = pt.css('backgroundColor');
+ $(this).css({
+ borderLeftColor: '',
+ borderRightColor: '',
+ borderTopColor: '',
+ borderBottomColor: ''
+ });
+ if(pt.is('.ui-tooltip-arrow-rb,.ui-tooltip-arrow-rc,.ui-tooltip-arrow-rt')){ $(this).css('border-left-color', bColor); }
+ else if(pt.is('.ui-tooltip-arrow-br,.ui-tooltip-arrow-bc,.ui-tooltip-arrow-bl')){ $(this).css('border-top-color', bColor); }
+ else if(pt.is('.ui-tooltip-arrow-lb,.ui-tooltip-arrow-lc,.ui-tooltip-arrow-lt')){ $(this).css('border-right-color', bColor); }
+ else { $(this).css('border-bottom-color', bColor); }
+ });
+ }
+ });
+
+ $(function() {
+ $.ui.tooltip.prototype.options.show = function(event, ui) {
+ $(this).tooltip("widget").callout("pointAt", ui.target);
+ }
+
+ function enable() {
+ // default
+ $("#context1, form input").tooltip();
+
+ // custom class, replaces ui-widget-content
+ $("#context2").tooltip({
+ tooltipClass: "ui-widget-header"
+ });
+ $("#right1").tooltip({
+ tooltipClass: "ui-state-error"
+ });
+
+ // synchronous content
+ $("#see-footnote").tooltip({
+ content: function() {
+ return $($(this).attr("href")).html();
+ }
+ });
+ // asynchronous content
+ $("#ajax").tooltip({
+ content: function(response) {
+ $.get("ajaxcontent.html", response);
+ }
+ });
+
+ // custom position
+ $("#right2").tooltip({
+ position: {
+ my: "center top",
+ at: "center bottom",
+ offset: "0 10"
+ },
+ tooltipClass: "ui-state-highlight"
+ });
+
+ $(".ui-tooltip").callout();
+ }
+ enable();
+
+ $("#disable").toggle(function() {
+ $("*").tooltip("disable");
+ }, function() {
+ $("*").tooltip("enable");
+ });
+ $("#toggle").toggle(function() {
+ $("*").tooltip("destroy");
+ }, function() {
+ enable();
+ });
+ });
+ </script>
+
+ <style>
+ .ui-tooltip .ui-tooltip-pointer,.ui-tooltip .ui-tooltip-pointer-inner { position:absolute; width:0; height:0; background:none; }
+
+ /*top*/
+ .ui-tooltip-arrow-tr .ui-tooltip-pointer,.ui-tooltip-arrow-tc .ui-tooltip-pointer,.ui-tooltip-arrow-tl .ui-tooltip-pointer { top:-14px; border-top:0; border-bottom-width:14px; }
+ .ui-tooltip-arrow-tr .ui-tooltip-pointer { border-left:18px dotted transparent; border-right:0; right:10px; }
+ .ui-tooltip-arrow-tc .ui-tooltip-pointer { border-left:10px dotted transparent; border-right:10px dotted transparent; left:50%; margin-left:-10px; }
+ .ui-tooltip-arrow-tl .ui-tooltip-pointer { border-left:0; border-right:18px dotted transparent; left:10px; }
+ .ui-tooltip-arrow-tr .ui-tooltip-pointer-inner,.ui-tooltip-arrow-tc .ui-tooltip-pointer-inner,.ui-tooltip-arrow-tl .ui-tooltip-pointer-inner { border-bottom:10px solid #fff; bottom:-14px; }
+ .ui-tooltip-arrow-tr .ui-tooltip-pointer-inner { border-left:12px dotted transparent; border-right:0; right:2px; }
+ .ui-tooltip-arrow-tc .ui-tooltip-pointer-inner { border-left:8px dotted transparent; border-right:8px dotted transparent; left:-8px; }
+ .ui-tooltip-arrow-tl .ui-tooltip-pointer-inner { border-left:0; border-right:12px dotted transparent; left:2px; }
+
+ /*right*/
+ .ui-tooltip-arrow-rb .ui-tooltip-pointer,.ui-tooltip-arrow-rc .ui-tooltip-pointer,.ui-tooltip-arrow-rt .ui-tooltip-pointer { right:-14px; border-right:0; border-left-width:14px; }
+ .ui-tooltip-arrow-rb .ui-tooltip-pointer { border-bottom:0; border-top:18px dotted transparent; bottom:10px; }
+ .ui-tooltip-arrow-rc .ui-tooltip-pointer { border-bottom:10px dotted transparent; border-top:10px dotted transparent; bottom:50%; margin-bottom:-10px; }
+ .ui-tooltip-arrow-rt .ui-tooltip-pointer { border-bottom:18px dotted transparent; border-top:0; top:10px; }
+ .ui-tooltip-arrow-rb .ui-tooltip-pointer-inner,.ui-tooltip-arrow-rc .ui-tooltip-pointer-inner,.ui-tooltip-arrow-rt .ui-tooltip-pointer-inner { border-left:10px solid #fff; left:-14px; }
+ .ui-tooltip-arrow-rb .ui-tooltip-pointer-inner { border-bottom:0; border-top:12px dotted transparent; bottom:2px; }
+ .ui-tooltip-arrow-rc .ui-tooltip-pointer-inner { border-bottom:8px dotted transparent; border-top:8px dotted transparent; bottom:-8px; }
+ .ui-tooltip-arrow-rt .ui-tooltip-pointer-inner { border-bottom:12px dotted transparent; border-top:0; top:2px; }
+
+ /*bottom*/
+ .ui-tooltip-arrow-br .ui-tooltip-pointer,.ui-tooltip-arrow-bc .ui-tooltip-pointer,.ui-tooltip-arrow-bl .ui-tooltip-pointer { bottom:-14px; border-bottom:0; border-top-width:14px; }
+ .ui-tooltip-arrow-br .ui-tooltip-pointer { border-left:18px dotted transparent; border-right:0; right:10px; }
+ .ui-tooltip-arrow-bc .ui-tooltip-pointer { border-left:10px dotted transparent; border-right:10px dotted transparent; left:50%; margin-left:-10px; }
+ .ui-tooltip-arrow-bl .ui-tooltip-pointer { border-left:0; border-right:18px dotted transparent; left:10px; }
+ .ui-tooltip-arrow-br .ui-tooltip-pointer-inner,.ui-tooltip-arrow-bc .ui-tooltip-pointer-inner,.ui-tooltip-arrow-bl .ui-tooltip-pointer-inner { border-top:10px solid #fff; top:-14px; }
+ .ui-tooltip-arrow-br .ui-tooltip-pointer-inner { border-left:12px dotted transparent; border-right:0; right:2px; }
+ .ui-tooltip-arrow-bc .ui-tooltip-pointer-inner { border-left:8px dotted transparent; border-right:8px dotted transparent; left:-8px; }
+ .ui-tooltip-arrow-bl .ui-tooltip-pointer-inner { border-left:0; border-right:12px dotted transparent; left:2px; }
+
+ /*left*/
+ .ui-tooltip-arrow-lb .ui-tooltip-pointer,.ui-tooltip-arrow-lc .ui-tooltip-pointer,.ui-tooltip-arrow-lt .ui-tooltip-pointer { left:-14px; border-left:0; border-right-width:14px; }
+ .ui-tooltip-arrow-lb .ui-tooltip-pointer { border-bottom:0; border-top:18px dotted transparent; bottom:10px; }
+ .ui-tooltip-arrow-lc .ui-tooltip-pointer { border-bottom:10px dotted transparent; border-top:10px dotted transparent; bottom:50%; margin-bottom:-10px; }
+ .ui-tooltip-arrow-lt .ui-tooltip-pointer { border-bottom:18px dotted transparent; border-top:0; top:10px; }
+ .ui-tooltip-arrow-lb .ui-tooltip-pointer-inner,.ui-tooltip-arrow-lc .ui-tooltip-pointer-inner,.ui-tooltip-arrow-lt .ui-tooltip-pointer-inner { border-right:10px solid #fff; right:-14px; }
+ .ui-tooltip-arrow-lb .ui-tooltip-pointer-inner { border-bottom:0; border-top:12px dotted transparent; bottom:2px; }
+ .ui-tooltip-arrow-lc .ui-tooltip-pointer-inner { border-bottom:8px dotted transparent; border-top:8px dotted transparent; bottom:-8px; }
+ </style>
+</head>
+<body>
+
+<div style="width:300px">
+ <ul id="context1" class="ui-widget ui-widget-header">
+ <li><a href="#" title="Tooltip text 1">Anchor 1</a></li>
+ <li><a href="#" title="Tooltip text 2">Anchor 2</a></li>
+ <li><a href="#" title="Tooltip text 3">Anchor 3</a></li>
+ <li><a href="#" title="Tooltip text 4 more Tooltip text Tooltip text ">Anchor 4</a></li>
+ <li><a href="#" title="Tooltip text 5 more Tooltip text Tooltip text ">Anchor 5</a></li>
+ <li><a href="#" title="Tooltip text 6 more Tooltip text Tooltip text ">Anchor 6</a></li>
+ </ul>
+
+ <div id="right1" style="position: absolute; right: 1em" title="right aligned element">
+ collision detection should kick in around here
+ </div>
+
+ <div style="margin: 2em 0">
+ <a id="see-footnote" href="#footnote">I'm a link to a footnote.</a>
+ </div>
+
+ <div id="right2" style="position: absolute; right: 1em" title="right aligned element with custom position">
+ right aligned with custom position
+ </div>
+
+ <div id="ajax" style="width: 100px;" class="ui-widget-content" title="never be seen">
+ gets its content via ajax
+ </div>
+
+ <div id="context2" class="ui-widget ui-widget-content">
+ <span title="something" style="border:1px solid blue">span</span>
+ <div title="something else" style="border:1px solid red;">
+ div
+ <span title="something more" style="border:1px solid green;">nested span</span>
+ </div>
+ </div>
+
+ <form style="margin: 2em 0;">
+ <div>
+ <label for="first">First Name:</label>
+ <input id="first" title="Your first name is optional" />
+ </div>
+ <div>
+ <label for="last">Last Name:</label>
+ <input id="last" title="Your last name is optional" />
+ </div>
+ </form>
+
+ <div id="footnote">This is <strong>the</strong> footnote, including other elements</div>
+
+ <button id="disable">Toggle disabled</button>
+ <button id="toggle">Toggle widget</button>
+</div>
+
+
+</body>
+</html>
diff --git a/tests/visual/tooltip/tooltip.html b/tests/visual/tooltip/tooltip.html
new file mode 100644
index 000000000..fb2690a54
--- /dev/null
+++ b/tests/visual/tooltip/tooltip.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Tooltip Visual Test: Default</title>
+ <link rel="stylesheet" href="../visual.css" type="text/css" />
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css">
+ <script type="text/javascript" src="../../../jquery-1.4.4.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.button.js"></script>
+ <script type="text/javascript" src="../../../ui/jquery.ui.tooltip.js"></script>
+ <script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
+ <script type="text/javascript">
+ $(function() {
+ $.fn.themeswitcher && $('<div/>').css({
+ position: "absolute",
+ right: 10,
+ top: 10
+ }).appendTo(document.body).themeswitcher();
+
+ function enable() {
+ // default
+ $("#context1, form, #childish").tooltip();
+
+ // custom class, replaces ui-widget-content
+ $("#context2").tooltip().each(function() {
+ $(this).tooltip("widget").addClass("ui-widget-header");
+ })
+ $("#right1").tooltip().tooltip("widget").addClass("ui-state-error");
+
+ // synchronous content
+ $("#footnotes").tooltip({
+ items: "[href^=#]",
+ content: function() {
+ return $($(this).attr("href")).html();
+ }
+ });
+ // asynchronous content
+ $("#ajax").tooltip({
+ content: function(response) {
+ $.get("ajaxcontent.php", response);
+ return "Loading...";
+ }
+ });
+ // asynchronous content with caching
+ var content;
+ $("#ajax2").tooltip({
+ content: function(response) {
+ if (content) {
+ return content;
+ }
+ $.ajax({
+ url: "ajaxcontent.php",
+ cache: false,
+ success: function(result) {
+ content = result;
+ response(result);
+ }
+ });
+ return "Loading...";
+ }
+ });
+
+ // custom position
+ $("#right2").tooltip({
+ position: {
+ my: "center top",
+ at: "center bottom",
+ offset: "0 10"
+ }
+ }).tooltip("widget").addClass("ui-state-highlight");
+
+ $("#button1").button();
+ $("#button2").button({
+ icons: {
+ primary: "ui-icon-wrench"
+ }
+ });
+ $("#button3, #button4").button({
+ icons: {
+ primary: "ui-icon-wrench"
+ },
+ text: false
+ });
+ $("#buttons").tooltip({
+ position: {
+ my: "center bottom",
+ at: "center top",
+ offset: "0 -5"
+ }
+ });
+ }
+ enable();
+
+ $("#disable").toggle(function() {
+ $("*").tooltip("disable");
+ }, function() {
+ $("*").tooltip("enable");
+ });
+ $("#toggle").toggle(function() {
+ $("*").tooltip("destroy");
+ }, function() {
+ enable();
+ });
+ });
+ </script>
+</head>
+<body>
+
+<div style="width:300px">
+ <ul id="context1" class="ui-widget ui-widget-header">
+ <li><a href="#" title="Tooltip text 1">Anchor 1</a></li>
+ <li><a href="#" title="Tooltip text 2">Anchor 2</a></li>
+ <li><a href="#" title="Tooltip text 3">Anchor 3</a></li>
+ <li><a href="#" title="Tooltip text 4 more Tooltip text Tooltip text ">Anchor 4</a></li>
+ <li><a href="#" title="Tooltip text 5 more Tooltip text Tooltip text ">Anchor 5</a></li>
+ <li><a href="#" title="Tooltip text 6 more Tooltip text Tooltip text ">Anchor 6</a></li>
+ </ul>
+
+ <div id="right1" style="position: absolute; right: 1em" title="right aligned element">
+ collision detection should kick in around here
+ </div>
+
+ <div id="footnotes" style="margin: 2em 0">
+ <a href="#footnote1">I'm a link to a footnote.</a>
+ <a href="#footnote2">I'm another link to a footnote.</a>
+ </div>
+
+ <div id="right2" style="position: absolute; right: 1em" title="right aligned element with custom position">
+ right aligned with custom position
+ </div>
+
+ <div id="ajax" style="width: 100px;" class="ui-widget-content" title="never be seen">
+ gets its content via ajax
+ </div>
+ <div id="ajax2" style="width: 100px;" class="ui-widget-content" title="never be seen">
+ gets its content via ajax, caches the response
+ </div>
+
+ <div id="context2" class="ui-widget ui-widget-content">
+ <span title="something" style="border:1px solid blue">span</span>
+ <div title="something else" style="border:1px solid red;">
+ div
+ <span title="something more" style="border:1px solid green;">nested span</span>
+ </div>
+ </div>
+
+ <div id="childish" class="ui-widget ui-widget-content" style="margin: 2em 0; border: 1px solid black;" title="element with child elements">
+ Text in <strong>bold</strong>.
+ </div>
+
+ <form style="margin: 2em 0;">
+ <div>
+ <label for="first">First Name:</label>
+ <input id="first" title="Your first name is optional" />
+ </div>
+ <div>
+ <label for="last">Last Name:</label>
+ <input id="last" title="Your last name is optional" />
+ </div>
+ </form>
+
+ <div id="buttons">
+ <button id="button1" title="Button Tooltip">Button Label</button>
+ <button id="button2" title="Icon Button">Button with Icon</button>
+ <button id="button3">Icon Only Button 1</button>
+ <button id="button4">Icon Only Button 2</button>
+ </div>
+
+ <div id="footnote1">This is <strong>the</strong> footnote, including other elements</div>
+ <div id="footnote2">This is <strong>the other</strong> footnote, including other elements</div>
+
+ <button id="disable">Toggle disabled</button>
+ <button id="toggle">Toggle widget</button>
+</div>
+
+<div style="height: 2000px"></div>
+
+</body>
+</html>