]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/src/vout_window.hpp
skins2 vout manager
[vlc] / modules / gui / skins2 / src / vout_window.hpp
index 7e752ed4f11c32b85e5a4a8b6312f1b9c68ba6b4..90d8225214a3d800358aec225f02a92f7f8ae801 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * vout_window.hpp
  *****************************************************************************
- * Copyright (C) 2003 VideoLAN
+ * Copyright (C) 2003 the VideoLAN team
  * $Id$
  *
  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
@@ -18,7 +18,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #ifndef VOUT_WINDOW_HPP
 #include "generic_window.hpp"
 
 class OSGraphics;
+class CtrlVideo;
 
 
 /// Class to handle a video output window
-class VoutWindow: public GenericWindow
+class VoutWindow: private GenericWindow
 {
     public:
-        VoutWindow( intf_thread_t *pIntf, int xPos, int yPos,
-                    bool dragDrop, bool playOnDrop, GenericWindow &rParent );
-        virtual ~VoutWindow();
 
-        /// These methods are redefined here to make them public
-        //@{
-        /// Show the window
-        virtual void show() { GenericWindow::show(); }
+        VoutWindow( intf_thread_t *pIntf, vout_thread_t* pVout,
+                    int width, int height, GenericWindow* pParent = NULL );
+        virtual ~VoutWindow();
 
-        /// Hide the window
-        virtual void hide() { GenericWindow::hide(); }
+        // counter used for debugging purpose
+        static int count;
 
-        /// Move the window
-        virtual void move( int left, int top )
-            { GenericWindow::move( left, top ); }
+        /// Make some functions public
+        //@{
+        using GenericWindow::show;
+        using GenericWindow::hide;
+        using GenericWindow::move;
+        using GenericWindow::getOSHandle;
         //@}
 
         /// Resize the window
         virtual void resize( int width, int height );
 
+        /// get the parent  window
+        virtual GenericWindow* getWindow( ) { return m_pParentWindow; }
+
         /// Refresh an area of the window
         virtual void refresh( int left, int top, int width, int height );
 
+        /// set Video Control for VoutWindow
+        virtual void setCtrlVideo( CtrlVideo* pCtrlVideo );
+
+        /// get original size of vout
+        virtual int getOriginalWidth( ) { return original_width; }
+        virtual int getOriginalHeight( ) { return original_height; }
+
         virtual string getType() const { return "Vout"; }
 
     private:
+
         /// Image when there is no video
         OSGraphics *m_pImage;
+
+        /// vout thread
+        vout_thread_t* m_pVout;
+
+        /// original width and height
+        int original_width;
+        int original_height;
+
+        /// VideoControl attached to it
+        CtrlVideo* m_pCtrlVideo;
+
+        /// Parent Window
+        GenericWindow* m_pParentWindow;
 };
 
 typedef CountedPtr<VoutWindow> VoutWindowPtr;