From 1553abf415efc2989f1f0c0d60926dba062bf492 Mon Sep 17 00:00:00 2001 From: Ryan Norton Date: Mon, 27 Sep 2004 23:19:24 +0000 Subject: [PATCH] source nice-ness and remove erronous files git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/mac/carbon/private/hid.h | 25 +- include/wx/mac/classic/private/hid.h | 63 ---- include/wx/mac/private/hid.h | 5 - src/mac/carbon/fontdlg.cpp | 43 ++- src/mac/carbon/hid.cpp | 36 ++- src/mac/classic/hid.cpp | 417 --------------------------- 6 files changed, 93 insertions(+), 496 deletions(-) delete mode 100644 include/wx/mac/classic/private/hid.h delete mode 100644 include/wx/mac/private/hid.h delete mode 100644 src/mac/classic/hid.cpp diff --git a/include/wx/mac/carbon/private/hid.h b/include/wx/mac/carbon/private/hid.h index ddc93c2cf2..cf43a804d2 100644 --- a/include/wx/mac/carbon/private/hid.h +++ b/include/wx/mac/carbon/private/hid.h @@ -8,9 +8,29 @@ // Copyright: (c) Ryan Norton // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +// =========================================================================== +// declarations +// =========================================================================== + +// --------------------------------------------------------------------------- +// headers +// --------------------------------------------------------------------------- + +#ifndef _WX_MACCARBONHID_H_ +#define _WX_MACCARBONHID_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "hid.h" +#endif #include "wx/defs.h" + +// --------------------------------------------------------------------------- +// definitions +// --------------------------------------------------------------------------- + +//Mac OSX only #ifdef __DARWIN__ #include @@ -76,4 +96,7 @@ public: virtual void BuildCookies(wxCFArray& Array); }; -#endif //__DARWIN__ \ No newline at end of file +#endif //__DARWIN__ + +#endif + //WX_MACCARBONHID_H \ No newline at end of file diff --git a/include/wx/mac/classic/private/hid.h b/include/wx/mac/classic/private/hid.h deleted file mode 100644 index 2947ee3575..0000000000 --- a/include/wx/mac/classic/private/hid.h +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include - -//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; -}; - -// -// 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 (const int& nClass = -1, const int& nType = -1); - - inline void AddCookie(CFTypeRef Data, const int& i); - inline void AddCookieInQueue(CFTypeRef Data, const int& i); - inline void InitCookies(const size_t& dwSize, bool bQueue = false); - - //Must be implemented by derived classes - //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; - - //checks to see whether the cookie at index nIndex is active (element value != 0) - bool IsActive(const int& nIndex); - - //closes the device and cleans the queue and cookies - virtual ~wxHIDDevice(); -private: - IOHIDDeviceInterface** m_ppDevice; //this, essentially - IOHIDQueueInterface** m_ppQueue; //queue (if we want one) - IOHIDElementCookie* m_pCookies; //cookies - - const char* m_szName; //(product) name - mach_port_t m_pPort; -}; - -class wxHIDKeyboard : public wxHIDDevice -{ -public: - bool Create(); - virtual void BuildCookies(wxCFArray& Array); -}; \ No newline at end of file diff --git a/include/wx/mac/private/hid.h b/include/wx/mac/private/hid.h deleted file mode 100644 index 26a34870b6..0000000000 --- a/include/wx/mac/private/hid.h +++ /dev/null @@ -1,5 +0,0 @@ -#if __WXMAC_CLASSIC__ -#include "wx/mac/classic/private/hid.h" -#else -#include "wx/mac/carbon/private/hid.h" -#endif \ No newline at end of file diff --git a/src/mac/carbon/fontdlg.cpp b/src/mac/carbon/fontdlg.cpp index 5fafc36dbf..236cbb8518 100644 --- a/src/mac/carbon/fontdlg.cpp +++ b/src/mac/carbon/fontdlg.cpp @@ -9,12 +9,29 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +// =========================================================================== +// declarations +// =========================================================================== + +// --------------------------------------------------------------------------- +// headers +// --------------------------------------------------------------------------- + #ifdef __GNUG__ #pragma implementation "fontdlg.h" #endif -#include "wx/mac/fontdlg.h" -#include "wx/cmndata.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/mac/fontdlg.h" + #include "wx/cmndata.h" +#endif #if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) @@ -22,12 +39,21 @@ IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) #include "wx/mac/private.h" +//Mac OSX 10.2+ only #if defined( __WXMAC__ ) && TARGET_API_MAC_OSX && ( MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2 ) #include #include "wx/msgdlg.h" +// ============================================================================ +// implementation +// ============================================================================ + +// --------------------------------------------------------------------------- +// Carbon event callback(s) +// --------------------------------------------------------------------------- + pascal OSStatus wxFontDialogEventHandler( EventHandlerCallRef inHandlerCallRef, EventRef event, void* pData) { @@ -99,9 +125,9 @@ pascal OSStatus wxFontDialogEventHandler( EventHandlerCallRef inHandlerCallRef, DEFINE_ONE_SHOT_HANDLER_GETTER( wxFontDialogEventHandler ); -//--------------------------- -// Class implementation -//--------------------------- +// --------------------------------------------------------------------------- +// wxFontDialog +// --------------------------------------------------------------------------- wxFontDialog::wxFontDialog() : m_dialogParent(NULL), m_pEventHandlerRef(NULL) @@ -221,10 +247,9 @@ int wxFontDialog::ShowModal() #else //10.2+ only - -// -// no native implementation -// +// --------------------------------------------------------------------------- +// wxFontDialog stub for mac OS's without a native font dialog +// --------------------------------------------------------------------------- wxFontDialog::wxFontDialog() { diff --git a/src/mac/carbon/hid.cpp b/src/mac/carbon/hid.cpp index 927341fff0..feb8e3a260 100644 --- a/src/mac/carbon/hid.cpp +++ b/src/mac/carbon/hid.cpp @@ -9,7 +9,29 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#include "wx/defs.h" +// =========================================================================== +// declarations +// =========================================================================== + +// --------------------------------------------------------------------------- +// headers +// --------------------------------------------------------------------------- + +#ifdef __GNUG__ +#pragma implementation "hid.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/defs.h" +#endif + //DARWIN _ONLY_ #ifdef __DARWIN__ @@ -18,6 +40,11 @@ #include "wx/string.h" #include "wx/log.h" + +// --------------------------------------------------------------------------- +// assertion macros +// --------------------------------------------------------------------------- + #define wxFORCECHECK_MSG(arg, msg) \ {\ if (arg) \ @@ -57,6 +84,9 @@ void CFShowTypeIDDescription(CFTypeRef pData) // implementation // ============================================================================ +// --------------------------------------------------------------------------- +// wxHIDDevice +// --------------------------------------------------------------------------- bool wxHIDDevice::Create (const int& nClass, const int& nType) { @@ -208,6 +238,10 @@ wxHIDDevice::~wxHIDDevice() } } +// --------------------------------------------------------------------------- +// wxHIDKeyboard +// --------------------------------------------------------------------------- + enum { WXK_RSHIFT = 400, diff --git a/src/mac/classic/hid.cpp b/src/mac/classic/hid.cpp deleted file mode 100644 index f4ce8a1874..0000000000 --- a/src/mac/classic/hid.cpp +++ /dev/null @@ -1,417 +0,0 @@ -#include "hid.h" - -#define wxFORCECHECK_MSG(arg, msg) \ -{\ - if (arg) \ - {\ - wxLogSysError(wxString::Format(wxT("Message:%s\nHID: %s failed!"), wxT(msg), wxT(#arg)));\ - return false;\ - }\ -} -#define wxIOCHECK(arg, msg) wxFORCECHECK_MSG(arg != kIOReturnSuccess, msg) -#define wxKERNCHECK(arg, msg) wxFORCECHECK_MSG(arg != KERN_SUCCESS, msg) -#define wxSCHECK(arg, msg) wxFORCECHECK_MSG(arg != S_OK, msg) - -void CFShowTypeIDDescription(CFTypeRef pData) -{ - if(!pData) - { - wxMessageBox("AHHH!"); - return; - } - - wxMessageBox( - CFStringGetCStringPtr( - CFCopyTypeIDDescription(CFGetTypeID(pData)),CFStringGetSystemEncoding() - ) - ); -} - -// ============================================================================ -// implementation -// ============================================================================ - - -bool wxHIDDevice::Create (const int& nClass, const int& nType) -{ - //Create the mach port - wxIOCHECK(IOMasterPort(bootstrap_port, &m_pPort), "Could not create mach port"); - - //Dictionary that will hold first - //the matching dictionary for determining which kind of devices we want, - //then later some registry properties from an iterator (see below) - CFMutableDictionaryRef pDictionary; - - //Create a dictionary - //The call to IOServiceMatching filters down the - //the services we want to hid services (and also eats the - //dictionary up for us (consumes one reference)) - wxASSERT((pDictionary = IOServiceMatching(kIOHIDDeviceKey)) != NULL ); - - //Here we'll filter down the services to what we want - if (nType != -1) - { - CFNumberRef pType = CFNumberCreate(kCFAllocatorDefault, - kCFNumberIntType, &nType); - CFDictionarySetValue(pDictionary, CFSTR(kIOHIDPrimaryUsageKey), pType); - CFRelease(pType); - } - if (nClass != -1) - { - CFNumberRef pClass = CFNumberCreate(kCFAllocatorDefault, - kCFNumberIntType, &nClass); - CFDictionarySetValue(pDictionary, CFSTR(kIOHIDPrimaryUsagePageKey), pClass); - CFRelease(pClass); - } - - //Now get the maching services - io_iterator_t pIterator; - wxIOCHECK(IOServiceGetMatchingServices(m_pPort, pDictionary, &pIterator), "No Matching HID Services"); - wxASSERT(pIterator != NULL); - - //Now we iterate through them - io_object_t pObject; - while ( (pObject = IOIteratorNext(pIterator)) != NULL) - { - wxASSERT(IORegistryEntryCreateCFProperties(pObject, &pDictionary, - kCFAllocatorDefault, kNilOptions) == KERN_SUCCESS); - - //Just for sanity :) - wxASSERT(CFGetTypeID(CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDProductKey))) == CFStringGetTypeID()); - - //Get [product] name - m_szName = CFStringGetCStringPtr ( - (CFStringRef) CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDProductKey)), - CFStringGetSystemEncoding() - ); - - // - //Now the hard part - in order to scan things we need "cookies" - - // - wxCFArray CookieArray = CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDElementKey)); - BuildCookies(CookieArray); - if (m_ppQueue != NULL) - wxASSERT((*m_ppQueue)->start(m_ppQueue) == S_OK); - - //Create the interface (good grief - long function names!) - SInt32 nScore; - IOCFPlugInInterface** ppPlugin; - wxIOCHECK(IOCreatePlugInInterfaceForService(pObject, kIOHIDDeviceUserClientTypeID, - kIOCFPlugInInterfaceID, &ppPlugin, &nScore), ""); - - //Now, the final thing we can check before we fall back to asserts - //(because the dtor only checks if the device is ok, so if anything - //fails from now on the dtor will delete the device anyway, so we can't break from this). - - //Get the HID interface from the plugin to the mach port - wxSCHECK((*ppPlugin)->QueryInterface(ppPlugin, - CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID), (void**) &m_ppDevice), ""); - - //release the plugin - (*ppPlugin)->Release(ppPlugin); - - //open the HID interface... - wxASSERT((*m_ppDevice)->open(m_ppDevice, 0) == S_OK); - - //cleanup - CFRelease(pDictionary); - IOObjectRelease(pObject); - break; - } - //iterator cleanup - IOObjectRelease(pIterator); - - return true; -}//end Create() - -void wxHIDDevice::AddCookie(CFTypeRef Data, const int& i) -{ - CFNumberGetValue( - (CFNumberRef) CFDictionaryGetValue ( (CFDictionaryRef) Data - , CFSTR(kIOHIDElementCookieKey) - ), - kCFNumberIntType, - &m_pCookies[i] - ); -} - -void wxHIDDevice::AddCookieInQueue(CFTypeRef Data, const int& i) -{ - AddCookie(Data, i); - wxASSERT((*m_ppQueue)->addElement(m_ppQueue, m_pCookies[i], 0) == S_OK);//3rd Param flags (none yet) -} - -void wxHIDDevice::InitCookies(const size_t& dwSize, bool bQueue) -{ - m_pCookies = new IOHIDElementCookie[dwSize]; - if (bQueue) - { - wxASSERT( m_ppQueue != NULL); - wxASSERT( (m_ppQueue = (*m_ppDevice)->allocQueue(m_ppDevice)) != NULL); - wxASSERT( (*m_ppQueue)->create(m_ppQueue, 0, 512) == S_OK); //Param 2, flags, none yet - } -} - -bool wxHIDDevice::IsActive(const int& nIndex) -{ - wxASSERT(m_pCookies[nIndex] != NULL); - IOHIDEventStruct Event; - (*m_ppDevice)->getElementValue(m_ppDevice, m_pCookies[nIndex], &Event); - return !!Event.value; -} - - -wxHIDDevice::~wxHIDDevice() -{ - if (m_ppDevice != NULL) - { - (*m_ppDevice)->close(m_ppDevice); - (*m_ppDevice)->Release(m_ppDevice); - mach_port_deallocate(mach_task_self(), m_pPort); - } - - if (m_pCookies != NULL) - { - delete [] m_pCookies; - if (m_ppQueue != NULL) - { - (*m_ppQueue)->stop(m_ppQueue); - (*m_ppQueue)->dispose(m_ppQueue); - (*m_ppQueue)->Release(m_ppQueue); - } - } -} -/* -enum -{ - kHIDUsage_KeyboardHyphen = 0x2D, - kHIDUsage_KeyboardEqualSign = 0x2E, - kHIDUsage_KeyboardOpenBracket = 0x2F, - kHIDUsage_KeyboardCloseBracket = 0x30, - kHIDUsage_KeyboardBackslash = 0x31, //* \ or | * - kHIDUsage_KeyboardNonUSPound = 0x32, /* Non-US # or _ * - kHIDUsage_KeyboardSemicolon = 0x33, /* ; or : * - kHIDUsage_KeyboardQuote = 0x34, /* ' or " * - kHIDUsage_KeyboardGraveAccentAndTilde = 0x35, /* Grave Accent and Tilde * - kHIDUsage_KeyboardComma = 0x36, /* , or < * - kHIDUsage_KeyboardPeriod = 0x37, /* . or > * - kHIDUsage_KeyboardSlash = 0x38, /* / or ? * - kHIDUsage_KeyboardCapsLock = 0x39, /* Caps Lock * - - kHIDUsage_KeyboardPrintScreen = 0x46, /* Print Screen * - kHIDUsage_KeyboardScrollLock = 0x47, /* Scroll Lock * - kHIDUsage_KeyboardPause = 0x48, /* Pause * - kHIDUsage_KeyboardInsert = 0x49, /* Insert * - kHIDUsage_KeyboardHome = 0x4A, /* Home * - kHIDUsage_KeyboardDeleteForward = 0x4C, /* Delete Forward * - - kHIDUsage_KeyboardUpArrow - kHIDUsage_KeypadNumLock - kHIDUsage_KeypadSlash - kHIDUsage_KeypadAsterisk - kHIDUsage_KeypadHyphen - kHIDUsage_KeypadPlus - kHIDUsage_KeypadEnter - kHIDUsage_KeypadPeriod - kHIDUsage_KeyboardNonUSBackslash - kHIDUsage_KeyboardApplication - kHIDUsage_KeyboardPower - kHIDUsage_KeypadEqualSign -}; -/* - enum wxKeyCode - { - - WXK_START = 300, - WXK_LBUTTON, - WXK_RBUTTON, - WXK_CANCEL, - WXK_MBUTTON, - WXK_CLEAR, - WXK_SHIFT, - WXK_ALT, - WXK_CONTROL, - WXK_MENU, - WXK_PAUSE, - WXK_PRIOR, * Page up * - WXK_NEXT, * Page down * - WXK_END, - WXK_HOME, - WXK_LEFT, - WXK_UP, - WXK_RIGHT, - WXK_DOWN, - WXK_SELECT, - WXK_PRINT, - WXK_EXECUTE, - WXK_SNAPSHOT, - WXK_INSERT, - WXK_HELP, - WXK_MULTIPLY, - WXK_ADD, - WXK_SEPARATOR, - WXK_SUBTRACT, - WXK_DECIMAL, - WXK_DIVIDE, - WXK_PAGEUP, - WXK_PAGEDOWN, - - WXK_NUMPAD_SPACE, - WXK_NUMPAD_TAB, - WXK_NUMPAD_ENTER, - WXK_NUMPAD_HOME, - WXK_NUMPAD_LEFT, - WXK_NUMPAD_UP, - WXK_NUMPAD_RIGHT, - WXK_NUMPAD_DOWN, - WXK_NUMPAD_PRIOR, - WXK_NUMPAD_PAGEUP, - WXK_NUMPAD_NEXT, - WXK_NUMPAD_PAGEDOWN, - WXK_NUMPAD_END, - WXK_NUMPAD_BEGIN, - WXK_NUMPAD_INSERT, - WXK_NUMPAD_DELETE, - WXK_NUMPAD_EQUAL, - WXK_NUMPAD_MULTIPLY, - WXK_NUMPAD_ADD, - WXK_NUMPAD_SEPARATOR, - WXK_NUMPAD_SUBTRACT, - WXK_NUMPAD_DECIMAL, - WXK_NUMPAD_DIVIDE, - - WXK_WINDOWS_LEFT, - WXK_WINDOWS_RIGHT, - WXK_WINDOWS_MENU , - WXK_COMMAND - }; - - */ -enum -{ - WXK_RSHIFT = 400, - WXK_RALT, - WXK_RCONTROL, - WXK_RMENU - -}; - -bool wxHIDKeyboard::Create() -{ - return wxHIDDevice::Create(kHIDPage_GenericDesktop, kHIDUsage_GD_Keyboard); -} - -void wxHIDKeyboard::BuildCookies(wxCFArray& Array) -{ - Array = CFDictionaryGetValue((CFDictionaryRef)Array[0], CFSTR(kIOHIDElementKey)); - InitCookies(500); - int i, - nUsage; - for (i = 0; i < Array.Count(); ++i) - { - CFNumberGetValue( - (CFNumberRef) CFDictionaryGetValue((CFDictionaryRef) Array[i], CFSTR(kIOHIDElementUsageKey)), - kCFNumberLongType, &nUsage); - - if (nUsage >= kHIDUsage_KeyboardA && nUsage <= kHIDUsage_KeyboardZ) - AddCookie(Array[i], 'A' + (nUsage - kHIDUsage_KeyboardA) ); - else if (nUsage >= kHIDUsage_Keyboard1 && nUsage <= kHIDUsage_Keyboard9) - AddCookie(Array[i], '1' + (nUsage - kHIDUsage_Keyboard1) ); - else if (nUsage >= kHIDUsage_KeyboardF1 && nUsage <= kHIDUsage_KeyboardF12) - AddCookie(Array[i], WXK_F1 + (nUsage - kHIDUsage_KeyboardF1) ); - else if (nUsage >= kHIDUsage_KeyboardF13 && nUsage <= kHIDUsage_KeyboardF24) - AddCookie(Array[i], WXK_F13 + (nUsage - kHIDUsage_KeyboardF13) ); - else if (nUsage >= kHIDUsage_Keypad1 && nUsage <= kHIDUsage_Keypad9) - AddCookie(Array[i], WXK_NUMPAD1 + (nUsage - kHIDUsage_Keypad1) ); - else switch (nUsage) - { - //0's (wx & ascii go 0-9, but HID goes 1-0) - case kHIDUsage_Keyboard0: - AddCookie(Array[i],'0'); - break; - case kHIDUsage_Keypad0: - AddCookie(Array[i],WXK_NUMPAD0); - break; - - //Basic - case kHIDUsage_KeyboardReturnOrEnter: - AddCookie(Array[i], WXK_RETURN); - break; - case kHIDUsage_KeyboardEscape: - AddCookie(Array[i], WXK_ESCAPE); - break; - case kHIDUsage_KeyboardDeleteOrBackspace: - AddCookie(Array[i], WXK_BACK); - break; - case kHIDUsage_KeyboardTab: - AddCookie(Array[i], WXK_TAB); - break; - case kHIDUsage_KeyboardSpacebar: - AddCookie(Array[i], WXK_SPACE); - break; - case kHIDUsage_KeyboardPageUp: - AddCookie(Array[i], WXK_PRIOR); - break; - case kHIDUsage_KeyboardEnd: - AddCookie(Array[i], WXK_END); - break; - case kHIDUsage_KeyboardPageDown: - AddCookie(Array[i], WXK_NEXT); - break; - case kHIDUsage_KeyboardRightArrow: - AddCookie(Array[i], WXK_RIGHT); - break; - case kHIDUsage_KeyboardLeftArrow: - AddCookie(Array[i], WXK_LEFT); - break; - case kHIDUsage_KeyboardDownArrow: - AddCookie(Array[i], WXK_DOWN); - break; - case kHIDUsage_KeyboardUpArrow: - AddCookie(Array[i], WXK_UP); - break; - - //LEDS - case kHIDUsage_KeyboardCapsLock: - AddCookie(Array[i],WXK_CAPITAL); - break; - case kHIDUsage_KeypadNumLock: - AddCookie(Array[i],WXK_NUMLOCK); - break; - case kHIDUsage_KeyboardScrollLock: - AddCookie(Array[i],WXK_SCROLL); - break; - - //Menu keys, Shift, other specials - case kHIDUsage_KeyboardLeftControl: - AddCookie(Array[i],WXK_CONTROL); - break; - case kHIDUsage_KeyboardLeftShift: - AddCookie(Array[i],WXK_SHIFT); - break; - case kHIDUsage_KeyboardLeftAlt: - AddCookie(Array[i],WXK_ALT); - break; - case kHIDUsage_KeyboardLeftGUI: - AddCookie(Array[i],WXK_MENU); - break; - case kHIDUsage_KeyboardRightControl: - AddCookie(Array[i],WXK_RCONTROL); - break; - case kHIDUsage_KeyboardRightShift: - AddCookie(Array[i],WXK_RSHIFT); - break; - case kHIDUsage_KeyboardRightAlt: - AddCookie(Array[i],WXK_RALT); - break; - case kHIDUsage_KeyboardRightGUI: - AddCookie(Array[i],WXK_RMENU); - break; - - //Default - default: - //not in wx keycodes - do nothing.... - break; - } - } -}//end buildcookies -- 2.47.2