PlayButton.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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.av.widget.PlayButton"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
  7. dojo._hasResource["dojox.av.widget.PlayButton"] = true;
  8. dojo.provide("dojox.av.widget.PlayButton");
  9. dojo.require("dijit._Widget");
  10. dojo.require("dijit._Templated");
  11. dojo.require("dijit.form.Button");
  12. dojo.declare("dojox.av.widget.PlayButton", [dijit._Widget, dijit._Templated], {
  13. // summary:
  14. // A Play/Pause button widget to use with dojox.av.widget.Player
  15. //
  16. templateString: dojo.cache("dojox.av.widget", "resources/PlayButton.html", "<div class=\"PlayPauseToggle Pause\" dojoAttachEvent=\"click:onClick\">\n <div class=\"icon\"></div>\n</div>\n"),
  17. //
  18. postCreate: function(){
  19. // summary:
  20. // Intialize button.
  21. this.showPlay();
  22. },
  23. setMedia: function(/* Object */med){
  24. // summary:
  25. // A common method to set the media in all Player widgets.
  26. // May do connections and initializations.
  27. //
  28. this.media = med;
  29. dojo.connect(this.media, "onEnd", this, "showPlay");
  30. dojo.connect(this.media, "onStart", this, "showPause");
  31. },
  32. onClick: function(){
  33. // summary:
  34. // Fired on play or pause click.
  35. //
  36. if(this._mode=="play"){
  37. this.onPlay();
  38. }else{
  39. this.onPause();
  40. }
  41. },
  42. onPlay: function(){
  43. // summary:
  44. // Fired on play click.
  45. //
  46. if(this.media){
  47. this.media.play();
  48. }
  49. this.showPause();
  50. },
  51. onPause: function(){
  52. // summary:
  53. // Fired on pause click.
  54. //
  55. if(this.media){
  56. this.media.pause();
  57. }
  58. this.showPlay();
  59. },
  60. showPlay: function(){
  61. // summary:
  62. // Toggles the pause button invisible and the play
  63. // button visible..
  64. //
  65. this._mode = "play";
  66. dojo.removeClass(this.domNode, "Pause");
  67. dojo.addClass(this.domNode, "Play");
  68. },
  69. showPause: function(){
  70. // summary:
  71. // Toggles the play button invisible and the pause
  72. // button visible.
  73. //
  74. this._mode = "pause";
  75. dojo.addClass(this.domNode, "Pause");
  76. dojo.removeClass(this.domNode, "Play");
  77. }
  78. });
  79. }