+/***********************************
+ * Fullscreen controller
+ ***********************************/
+
+static int showFullscreenControllCallback(vlc_object_t *vlc_object, const char *variable, vlc_value_t old_val,
+ vlc_value_t new_val, void *data);
+
+static int regMouseMoveCallback(vlc_object_t *vlc_object, const char *variable, vlc_value_t old_val,
+ vlc_value_t new_val, void *data);
+
+class FullscreenControllerWidget : public ControlsWidget
+{
+ Q_OBJECT
+public:
+ FullscreenControllerWidget( intf_thread_t *, MainInterface*, bool, bool );
+ virtual ~FullscreenControllerWidget();
+
+ void setHideTimeout( int hideTimeout ) { i_hideTimeout = hideTimeout; }
+ void setIsFullscreen( bool isFS ) { b_isFullscreen = isFS; }
+ void regFullscreenCallback( vout_thread_t *p_vout );
+
+ bool isFSCHidden();
+
+public slots:
+ void unregFullscreenCallback();
+
+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 hideFSControllerWidget();
+ void slowHideFSC();
+
+private:
+ QTimer *p_hideTimer;
+
+#if HAVE_TRANSPARENCY
+ QTimer *p_slowHideTimer;
+#endif
+
+ int i_lastPosX;
+ int i_lastPosY;
+ int i_hideTimeout; /* FSC hiding timeout, same as mouse hiding timeout */
+ bool b_mouseIsOver;
+ bool b_isFullscreen;
+
+#ifdef WIN32TRICK
+ bool fscHidden;
+#endif
+
+ virtual void customEvent( QEvent *event );
+};
+
+
+