player widget now sends a special message when the mouse is hovering it. popcorn-port
authorhamidouk
Fri, 25 Nov 2011 11:10:19 +0100
branchpopcorn-port
changeset 331 ef3447aa6920
parent 330 156ea1d74223
child 332 3c40f2e862d2
player widget now sends a special message when the mouse is hovering it.
src/js/widgets/playerWidget.js
unittests/tests/widgets/playerWidget.js
--- a/src/js/widgets/playerWidget.js	Fri Nov 25 10:40:08 2011 +0100
+++ b/src/js/widgets/playerWidget.js	Fri Nov 25 11:10:19 2011 +0100
@@ -38,6 +38,9 @@
   var searchBox = Mustache.to_html(IriSP.search_template, {margin_left : searchButtonPos.left + "px"});
   this.selector.append(searchBox);
   
+  // trigger an IriSP.PlayerWidget.MouseOver to the widgets that are interested (i.e : sliderWidget)
+  this.selector.hover(function() { self._Popcorn.trigger("IriSP.PlayerWidget.MouseOver"); }, 
+                      function() { self._Popcorn.trigger("IriSP.PlayerWidget.MouseOut"); });
 };
 
 /* Update the elasped time div */
--- a/unittests/tests/widgets/playerWidget.js	Fri Nov 25 10:40:08 2011 +0100
+++ b/unittests/tests/widgets/playerWidget.js	Fri Nov 25 11:10:19 2011 +0100
@@ -100,5 +100,36 @@
   ok(spy_closed.called, "closed signal has been sent");  
   
   });
-  
-};
\ No newline at end of file
+ 
+  test("test mouseover handler", function() {
+    var player = new IriSP.PlayerWidget(this.Popcorn, this.config, this.ser);
+
+    var spy_callback = this.spy();
+    this.Popcorn.listen("IriSP.PlayerWidget.MouseOver", spy_callback);    
+    this.Popcorn.listen("IriSP.PlayerWidget.MouseOut", spy_callback);    
+    
+    player.draw();
+    var elem = player.selector.get(0);
+
+    if( document.createEvent ) {
+      var evObj = document.createEvent('MouseEvents');
+        evObj.initEvent( 'mouseover', true, false );
+        elem.dispatchEvent(evObj);
+    } else if( document.createEventObject ) {
+        elem.fireEvent('onmouseover');
+    }
+
+     ok(spy_callback.called, "the MouseOver event has been fired");
+
+     if( document.createEvent ) {
+      var evObj = document.createEvent('MouseEvents');
+        evObj.initEvent( 'mouseout', true, false );
+        elem.dispatchEvent(evObj);
+     } else if( document.createEventObject ) {
+        elem.fireEvent('onmouseout');
+     }
+
+     ok(spy_callback.calledTwice, "the MouseOver event has been fired");
+  });
+
+};