]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/corefoundation/hid.h
wxTheColourDatabase->Find() can fail.
[wxWidgets.git] / include / wx / mac / corefoundation / hid.h
index 9af78ddb07e90f2516fa311c02c2470a67675481..077a4c44359d528a08602e1f82ac44f2ca80d654 100644 (file)
@@ -8,6 +8,7 @@
 // Copyright:   (c) Ryan Norton
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
+
 // ===========================================================================
 // declarations
 // ===========================================================================
 #include "wx/defs.h"
 #include "wx/string.h"
 
-// ---------------------------------------------------------------------------
-// definitions
-// ---------------------------------------------------------------------------
-
 //Mac OSX only
 #ifdef __DARWIN__
 
@@ -44,28 +41,24 @@ extern "C" {
 
 #include <mach/mach.h> //this actually includes mach_port.h (see above)
 
-//Utility wrapper around CFArray
-class wxCFArray
-{
-public:
-    wxCFArray(CFTypeRef pData) : pArray((CFArrayRef) pData) {}
-    CFTypeRef operator [] (const int& nIndex) {return CFArrayGetValueAtIndex(pArray, nIndex); }
-    int Count() {return CFArrayGetCount(pArray);}
-private:
-    CFArrayRef pArray;
-};
+// ===========================================================================
+// definitions
+// ===========================================================================
+
 
+// ---------------------------------------------------------------------------
+// wxHIDDevice
 //
 // A wrapper around OS X HID Manager procedures.
 // The tutorial "Working With HID Class Device Interfaces" Is
 // Quite good, as is the sample program associated with it
 // (Depite the author's protests!).
+// ---------------------------------------------------------------------------
 class wxHIDDevice
 {
 public:
     wxHIDDevice() : m_ppDevice(NULL), m_ppQueue(NULL), m_pCookies(NULL) {}
-    //kHIDPage_GenericDesktop
-    //kHIDUsage_GD_Joystick,kHIDUsage_GD_Mouse,kHIDUsage_GD_Keyboard
+
     bool Create (int nClass = -1, int nType = -1, int nDev = 1);
 
     static size_t GetCount(int nClass = -1, int nType = -1);
@@ -78,12 +71,13 @@ public:
     //builds the cookie array -
     //first call InitCookies to initialize the cookie
     //array, then AddCookie to add a cookie at a certain point in an array
-    virtual void BuildCookies(wxCFArray& Array) = 0;
+    virtual void BuildCookies(CFArrayRef Array) = 0;
 
     //checks to see whether the cookie at nIndex is active (element value != 0)
     bool IsActive(int nIndex);
 
-    //checks to see whether the cookie at nIndex exists
+    //checks to see whether an element in the internal cookie array
+    //exists
     bool HasElement(int nIndex);
 
     //closes the device and cleans the queue and cookies
@@ -97,17 +91,25 @@ protected:
     wxString    m_szProductName; //product name
     int         m_nProductId; //product id
     int         m_nManufacturerId; //manufacturer id
-    mach_port_t m_pPort;
+    mach_port_t                        m_pPort;            //mach port to use
 };
 
+// ---------------------------------------------------------------------------
+// wxHIDKeyboard
+//
+// Semi-simple implementation that opens a connection to the first
+// keyboard of the machine. Used in wxGetKeyState.
+// ---------------------------------------------------------------------------
 class wxHIDKeyboard : public wxHIDDevice
 {
 public:
-    bool Create();
-    virtual void BuildCookies(wxCFArray& Array);
+    static int GetCount();
+    bool Create(int nDev = 1);
+    void AddCookie(CFTypeRef Data, int i);
+    virtual void BuildCookies(CFArrayRef Array);
+    void DoBuildCookies(CFArrayRef Array);
 };
 
 #endif //__DARWIN__
 
-#endif
-        //WX_MACCARBONHID_H
+#endif //WX_MACCARBONHID_H