]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/src/os_factory.hpp
Include vlc_plugin.h as needed
[vlc] / modules / gui / skins2 / src / os_factory.hpp
index d1c26daa5d56d96eb975eee3457b0db76acf5b7d..c16d52ef4afb996c6f6a23ee6f9fdc346278a471 100644 (file)
@@ -1,11 +1,11 @@
 /*****************************************************************************
  * os_factory.hpp
  *****************************************************************************
- * Copyright (C) 2003 VideoLAN
- * $Id: os_factory.hpp,v 1.1 2004/01/03 23:31:33 asmax Exp $
+ * Copyright (C) 2003 the VideoLAN team
+ * $Id$
  *
  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
- *          Olivier Teulière <ipkiss@via.ecp.fr>
+ *          Olivier Teulière <ipkiss@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,7 +19,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 OS_FACTORY_HPP
 #include "skin_common.hpp"
 #include "../utils/position.hpp"
 #include <string>
+#include <list>
 
 class GenericWindow;
+class CmdGeneric;
 class OSBitmap;
 class OSGraphics;
 class OSLoop;
 class OSWindow;
 class OSTooltip;
+class OSPopup;
 class OSTimer;
 
 
@@ -42,54 +45,95 @@ class OSTimer;
 class OSFactory: public SkinObject
 {
     public:
-        /// Initialization method overloaded in derived classes.
-        /// It must return false if the init failed.
+        enum CursorType_t
+        {
+            kDefaultArrow,
+            kResizeNS,
+            kResizeWE,
+            kResizeNWSE,
+            kResizeNESW
+        };
+
+        /**
+         * Initialization method overloaded in derived classes.
+         * It must return false if the init failed.
+         */
         virtual bool init() { return true; }
 
-        /// Get the right instance of OSFactory.
-        /// Returns NULL if initialization of the concrete factory failed.
+        /**
+         * Get the right instance of OSFactory.
+         * Returns NULL if initialization of the concrete factory failed.
+         */
         static OSFactory *instance( intf_thread_t *pIntf );
 
-        /// Delete the instance of OSFactory.
+        /// Delete the instance of OSFactory
         static void destroy( intf_thread_t *pIntf );
 
-        /// Instantiate an object OSGraphics.
+        /// Instantiate an object OSGraphics
         virtual OSGraphics *createOSGraphics( int width, int height ) = 0;
 
-        /// Get the instance of the singleton OSLoop.
+        /// Get the instance of the singleton OSLoop
         virtual OSLoop *getOSLoop() = 0;
 
-        /// Destroy the instance of OSLoop.
+        /// Destroy the instance of OSLoop
         virtual void destroyOSLoop() = 0;
 
-        /// Instantiate an OSTimer with the given callback
-        virtual OSTimer *createOSTimer( const Callback &rCallback ) = 0;
+        /// Minimize all the windows
+        virtual void minimize() = 0;
 
-        /// Instantiate an object OSWindow.
+        /// Restore the minimized windows
+        virtual void restore() = 0;
+
+        /// Add an icon in the system tray
+        virtual void addInTray() = 0;
+
+        /// Remove the icon from the system tray
+        virtual void removeFromTray() = 0;
+
+        /// Show the task in the task bar
+        virtual void addInTaskBar() = 0;
+
+        /// Remove the task from the task bar
+        virtual void removeFromTaskBar() = 0;
+
+        /// Instantiate an OSTimer with the given command
+        virtual OSTimer *createOSTimer( CmdGeneric &rCmd ) = 0;
+
+        /// Instantiate an object OSWindow
         virtual OSWindow *createOSWindow( GenericWindow &rWindow,
-                                          bool dragDrop, bool playOnDrop ) = 0;
+                                          bool dragDrop, bool playOnDrop,
+                                          OSWindow *pParent ) = 0;
 
-        /// Instantiate an object OSTooltip.
+        /// Instantiate an object OSTooltip
         virtual OSTooltip *createOSTooltip() = 0;
 
+        /// Instantiate an object OSPopup
+        virtual OSPopup *createOSPopup() = 0;
+
         /// Get the directory separator
-        virtual const string getDirSeparator() const = 0;
+        virtual const string &getDirSeparator() const = 0;
+
+        /// Get the resource path
+        virtual const list<string> &getResourcePath() const = 0;
 
         /// Get the screen size
         virtual int getScreenWidth() const = 0;
         virtual int getScreenHeight() const = 0;
 
         /// Get the work area (screen area without taskbars)
-        virtual Rect getWorkArea() const = 0;
+        virtual SkinsRect getWorkArea() const = 0;
 
         /// Get the position of the mouse
         virtual void getMousePos( int &rXPos, int &rYPos ) const = 0;
 
+        /// Change the cursor
+        virtual void changeCursor( CursorType_t type ) const = 0;
+
         /// Delete a directory recursively
         virtual void rmDir( const string &rPath ) = 0;
 
    protected:
-        // Protected because it's a singleton.
+        // Protected because it's a singleton
         OSFactory( intf_thread_t* pIntf ): SkinObject( pIntf ) {}
         virtual ~OSFactory() {}
 };