# HG changeset patch # User hamidouk # Date 1322215819 -3600 # Node ID ef3447aa6920e27bba889cbbfbcfddc8bf79bc4c # Parent 156ea1d74223646d6e804892a955e47e12a09ed0 player widget now sends a special message when the mouse is hovering it. diff -r 156ea1d74223 -r ef3447aa6920 src/js/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 */ diff -r 156ea1d74223 -r ef3447aa6920 unittests/tests/widgets/playerWidget.js --- 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"); + }); + +};