Tooltip.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. // wrapped by build app
  2. define("dojox/drawing/ui/Tooltip", ["dijit","dojo","dojox","dojo/require!dojox/drawing/plugins/_Plugin"], function(dijit,dojo,dojox){
  3. dojo.provide("dojox.drawing.ui.Tooltip");
  4. dojo.require("dojox.drawing.plugins._Plugin");
  5. (function(){
  6. // summary:
  7. // Used for UI tooltips. Buttons in the toolbar.
  8. // This file is not complete.
  9. //
  10. var master = null;
  11. var MasterC = dojox.drawing.util.oo.declare(
  12. dojox.drawing.plugins._Plugin,
  13. function(options){
  14. this.createDom();
  15. },
  16. {
  17. show: function(button, text){
  18. this.domNode.innerHTML = text;
  19. var dx = 30;
  20. var px = button.data.x + button.data.width;
  21. var py = button.data.y + button.data.height;
  22. var x = px + this.mouse.origin.x + dx;
  23. var y = py + this.mouse.origin.y + dx;
  24. dojo.style(this.domNode, {
  25. display: "inline",
  26. left:x +"px",
  27. top:y+"px"
  28. });
  29. var box = dojo.marginBox(this.domNode);
  30. this.createShape(x-this.mouse.origin.x, y-this.mouse.origin.y, box.w, box.h);
  31. },
  32. createShape: function(x,y,w,h){
  33. this.balloon && this.balloon.destroy();
  34. var r = 5, x2 = x+w, y2 = y+h, points = [];
  35. var add = function(){
  36. for(var i=0;i<arguments.length;i++){
  37. points.push(arguments[i]);
  38. }
  39. };
  40. add({x:x,y:y+5},
  41. {t:"Q", x:x,y:y},
  42. {x:x+r,y:y});
  43. add({t:"L", x:x2-r,y:y});
  44. add({t:"Q", x:x2,y:y},
  45. {x:x2,y:y+r});
  46. add({t:"L", x:x2,y:y2-r});
  47. add({t:"Q", x:x2,y:y2},
  48. {x:x2-r,y:y2});
  49. add({t:"L", x:x+r,y:y2});
  50. add({t:"Q", x:x,y:y2},
  51. {x:x,y:y2-r});
  52. add({t:"L", x:x,y:y+r});
  53. this.balloon = this.drawing.addUI("path", {points:points});
  54. },
  55. createDom: function(){
  56. this.domNode = dojo.create('span', {"class":"drawingTooltip"}, document.body);
  57. dojo.style(this.domNode, {
  58. display: "none",
  59. position:"absolute"
  60. });
  61. }
  62. }
  63. );
  64. dojox.drawing.ui.Tooltip = dojox.drawing.util.oo.declare(
  65. dojox.drawing.plugins._Plugin,
  66. function(options){
  67. if(!master){
  68. master = new MasterC(options);
  69. }
  70. if(options.stencil){
  71. //todo
  72. }else if(this.button){
  73. this.connect(this.button, "onOver", this, "onOver");
  74. this.connect(this.button, "onOut", this, "onOut");
  75. }
  76. },
  77. {
  78. width:300,
  79. height:200,
  80. onOver: function(){
  81. //console.log(" tooltip over", this.data.text)
  82. master.show(this.button, this.data.text);
  83. },
  84. onOut: function(){
  85. //console.log(" tooltip out")
  86. }
  87. }
  88. );
  89. dojox.drawing.register({
  90. name:"dojox.drawing.ui.Tooltip"
  91. }, "stencil");
  92. })();
  93. });