Zoom.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. // wrapped by build app
  2. define("dojox/drawing/plugins/tools/Zoom", ["dijit","dojo","dojox","dojo/require!dojox/drawing/plugins/_Plugin"], function(dijit,dojo,dojox){
  3. dojo.provide("dojox.drawing.plugins.tools.Zoom");
  4. dojo.require("dojox.drawing.plugins._Plugin");
  5. (function(){
  6. //
  7. // zoomInc: Float
  8. // The amount of zoom that will occur upon each click.
  9. var zoomInc = Math.pow(2.0,0.25),
  10. //
  11. // maxZoom: Number
  12. // The maximum the canvas can be zoomed in. 10 = 1000%
  13. maxZoom = 10,
  14. //
  15. // minZoom: Float
  16. // The most the canvas can be zoomed out. .1 = 10%
  17. minZoom = 0.1,
  18. //
  19. // zoomFactor: [readonly] Float
  20. // The current zoom amount
  21. zoomFactor = 1,
  22. dt = dojox.drawing.plugins.tools;
  23. dt.ZoomIn = dojox.drawing.util.oo.declare(
  24. // summary:
  25. // A plugin that allows for zooming the canvas in and out. An
  26. // action-tool is added to the toolbar with plus, minus and 100%
  27. // buttons.
  28. //
  29. function(options){
  30. // mix in private vars
  31. },
  32. {}
  33. );
  34. dt.ZoomIn = dojox.drawing.util.oo.declare(
  35. // summary:
  36. dojox.drawing.plugins._Plugin,
  37. function(options){
  38. },
  39. {
  40. type:"dojox.drawing.plugins.tools.ZoomIn",
  41. onZoomIn: function(){
  42. // summary:
  43. // Handles zoom in.
  44. //
  45. zoomFactor *= zoomInc;
  46. zoomFactor = Math.min(zoomFactor, maxZoom);
  47. this.canvas.setZoom(zoomFactor);
  48. this.mouse.setZoom(zoomFactor);
  49. },
  50. onClick: function(){
  51. this.onZoomIn();
  52. }
  53. }
  54. );
  55. dt.Zoom100 = dojox.drawing.util.oo.declare(
  56. // summary:
  57. dojox.drawing.plugins._Plugin,
  58. function(options){
  59. },
  60. {
  61. type:"dojox.drawing.plugins.tools.Zoom100",
  62. onZoom100: function(){
  63. // summary:
  64. // Zooms to 100%
  65. //
  66. zoomFactor = 1;
  67. this.canvas.setZoom(zoomFactor);
  68. this.mouse.setZoom(zoomFactor);
  69. },
  70. onClick: function(){
  71. this.onZoom100();
  72. }
  73. }
  74. );
  75. dt.ZoomOut = dojox.drawing.util.oo.declare(
  76. // summary:
  77. dojox.drawing.plugins._Plugin,
  78. function(options){
  79. },
  80. {
  81. type:"dojox.drawing.plugins.tools.ZoomOut",
  82. onZoomOut: function(){
  83. // summary:
  84. // Handles zoom out.
  85. //
  86. zoomFactor /= zoomInc;
  87. zoomFactor = Math.max(zoomFactor, minZoom);
  88. this.canvas.setZoom(zoomFactor);
  89. this.mouse.setZoom(zoomFactor);
  90. },
  91. onClick: function(){
  92. this.onZoomOut();
  93. }
  94. }
  95. );
  96. dt.ZoomIn.setup = {
  97. name:"dojox.drawing.plugins.tools.ZoomIn",
  98. tooltip:"Zoom In"
  99. };
  100. dojox.drawing.register(dt.ZoomIn.setup, "plugin");
  101. dt.Zoom100.setup = {
  102. name:"dojox.drawing.plugins.tools.Zoom100",
  103. tooltip:"Zoom to 100%"
  104. };
  105. dojox.drawing.register(dt.Zoom100.setup, "plugin");
  106. dt.ZoomOut.setup = {
  107. name:"dojox.drawing.plugins.tools.ZoomOut",
  108. tooltip:"Zoom In"
  109. };
  110. dojox.drawing.register(dt.ZoomOut.setup, "plugin");
  111. })();
  112. });