Zoom.js 2.9 KB

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