+/***********************************
+ * Fullscreen controller
+ ***********************************/
+class FullscreenControllerWidget : public ControlsWidget
+{
+ Q_OBJECT
+public:
+ FullscreenControllerWidget( intf_thread_t *, MainInterface*, bool, bool );
+ virtual ~FullscreenControllerWidget();
+
+ /* */
+ void attachVout( vout_thread_t *p_vout );
+ void detachVout( vout_thread_t *p_vout );
+ void fullscreenChanged( vout_thread_t *, bool b_fs, int i_timeout );
+
+protected:
+ friend class MainInterface;
+ friend class VolumeClickHandler;
+
+ virtual void mouseMoveEvent( QMouseEvent *event );
+ virtual void mousePressEvent( QMouseEvent *event );
+ virtual void enterEvent( QEvent *event );
+ virtual void leaveEvent( QEvent *event );
+ virtual void keyPressEvent( QKeyEvent *event );
+
+private slots:
+ void showFSC();
+ void planHideFSC();
+ void hideFSC();
+
+ void slowHideFSC();
+
+
+private:
+ QTimer *p_hideTimer;
+#if HAVE_TRANSPARENCY
+ QTimer *p_slowHideTimer;
+#endif
+
+ int i_mouse_last_x;
+ int i_mouse_last_y;
+
+ bool b_mouse_over;
+
+ bool b_slow_hide_begin;
+ int i_slow_hide_timeout;
+
+#ifdef WIN32TRICK
+ bool fscHidden;
+#endif
+
+ virtual void customEvent( QEvent *event );
+
+ /* Shared variable between FSC and VLC (protected by a lock) */
+ vlc_mutex_t lock;
+ bool b_fullscreen;
+ int i_hide_timeout; /* FSC hiding timeout, same as mouse hiding timeout */
+};
+
+
+