Patch: [#22524] Update Windows Recent Documents on Open/Save
[blender.git] / intern / ghost / intern / GHOST_System.h
index 533665b6671fa9bb3d987ef6d81d3b3cdd08ba76..d9b901235ca6e26114f8056361a1e875c1255126 100644 (file)
@@ -1,14 +1,11 @@
 /**
  * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * 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 the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -17,7 +14,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-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
-
 /**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author     Maarten Gribnau
- * @date       May 7, 2001
+ * @file       GHOST_System.h
+ * Declaration of GHOST_System class.
  */
 
 #ifndef _GHOST_SYSTEM_H_
@@ -55,23 +48,17 @@ class GHOST_Event;
 class GHOST_TimerManager;
 class GHOST_Window;
 class GHOST_WindowManager;
+class GHOST_NDOFManager;
 
 /**
- * Implementation of platform independent functionality of the GHOST_ISystem interface.
- * GHOST_System is an abstract base class because not all methods of GHOST_ISystem are implemented.
- * There should be only one system class in an application.
- * Therefore, the routines to create and dispose the system are static.
- * Provides:
- * 1. Time(r) management.
- * 2. Display/window management (windows are only created on the main display for now).
- * 3. Event management.
- * 4. Cursor shape management (no custom cursors for now).
- * 5. Access to the state of the mouse buttons and the keyboard.
+ * Implementation of platform independent functionality of the GHOST_ISystem
+ * interface.
+ * GHOST_System is an abstract class because not all methods of GHOST_ISystem
+ * are implemented.
  * @see GHOST_ISystem.
  * @author     Maarten Gribnau
  * @date       May 7, 2001
  */
-
 class GHOST_System : public GHOST_ISystem
 {
 protected:
@@ -195,6 +182,27 @@ public:
         */
        virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer* consumer);
 
+
+
+       /***************************************************************************************
+        ** N-degree of freedom devcice management functionality
+        ***************************************************************************************/
+
+       /** Inherited from GHOST_ISystem
+     *  Opens the N-degree of freedom device manager
+        * return 0 if device found, 1 otherwise
+     */
+    virtual int openNDOF(GHOST_IWindow* w,        
+        GHOST_NDOFLibraryInit_fp setNdofLibraryInit, 
+        GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown,
+        GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen);
+        
+// original patch only        
+//        GHOST_NDOFEventHandler_fp setNdofEventHandler);
+
+
+
+
        /***************************************************************************************
         ** Cursor management functionality
         ***************************************************************************************/
@@ -223,7 +231,7 @@ public:
         * @return                      Indication of success.
         */
        virtual GHOST_TSuccess getButtonState(GHOST_TButtonMask mask, bool& isDown) const;
-
+       
        /***************************************************************************************
         ** Other (internal) functionality.
         ***************************************************************************************/
@@ -254,6 +262,12 @@ public:
         */
        virtual inline GHOST_WindowManager* getWindowManager() const;
 
+       /**
+        * Returns a pointer to our n-degree of freedeom manager.
+        * @return A pointer to our n-degree of freedeom manager.
+        */
+       virtual inline GHOST_NDOFManager* getNDOFManager() const;
+
        /**
         * Returns the state of all modifier keys.
         * @param keys  The state of all modifier keys (true == pressed).
@@ -268,6 +282,22 @@ public:
         */
        virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const = 0;
 
+       /**
+        * Returns the selection buffer
+        * @param selection             Only used on X11
+        * @return                              Returns the clipboard data
+        *
+        */
+        virtual GHOST_TUns8* getClipboard(bool selection) const = 0;
+         
+         /**
+          * Put data to the Clipboard
+          * @param buffer              The buffer to copy to the clipboard
+          * @param selection   The clipboard to copy too only used on X11
+          */
+         virtual void putClipboard(GHOST_TInt8 *buffer, bool selection) const = 0;
+
+       
 protected:
        /**
         * Initialize the system.
@@ -301,9 +331,12 @@ protected:
        /** The event manager. */
        GHOST_EventManager* m_eventManager;
 
+    /** The N-degree of freedom device manager */
+    GHOST_NDOFManager* m_ndofManager;
+       
        /** Prints all the events. */
 #ifdef GHOST_DEBUG
-       GHOST_EventPrinter m_eventPrinter;
+       GHOST_EventPrinter* m_eventPrinter;
 #endif // GHOST_DEBUG
 
        /** Settings of the display before the display went fullscreen. */
@@ -325,5 +358,10 @@ inline GHOST_WindowManager* GHOST_System::getWindowManager() const
        return m_windowManager;
 }
 
+inline GHOST_NDOFManager* GHOST_System::getNDOFManager() const
+{
+       return m_ndofManager;
+}
+
 #endif // _GHOST_SYSTEM_H_