]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/cocoa/window.mm
Fix uninitialized variable warning in wxMSW wxFileSystemWatcher code.
[wxWidgets.git] / src / osx / cocoa / window.mm
index d6832303c6644ed670e4e0ea1fabf76d15f9704c..46aa01527af1b1d4015f387ec18240b0dbf5abe8 100644 (file)
@@ -2072,6 +2072,23 @@ bool wxWidgetCocoaImpl::SetFocus()
     return true;
 }
 
+void wxWidgetCocoaImpl::SetDropTarget(wxDropTarget* target)
+{
+    [m_osxView unregisterDraggedTypes];
+    
+    if ( target == NULL )
+        return;
+    
+    wxDataObject* dobj = target->GetDataObject();
+    
+    if( dobj )
+    {
+        CFMutableArrayRef typesarray = CFArrayCreateMutable(kCFAllocatorDefault,0,&kCFTypeArrayCallBacks);
+        
+        [m_osxView registerForDraggedTypes:(NSArray*)typesarray];
+        CFRelease(typesarray);
+    }
+}
 
 void wxWidgetCocoaImpl::RemoveFromParent()
 {
@@ -2407,7 +2424,7 @@ bool wxWidgetCocoaImpl::DoHandleKeyEvent(NSEvent *event)
 
     if ( !result )
     {
-        if ( IsUserPane() && [event type] == NSKeyDown)
+        if ( [event type] == NSKeyDown)
         {
             long keycode = wxOSXTranslateCocoaKey( event, wxEVT_CHAR );
             
@@ -2416,12 +2433,20 @@ bool wxWidgetCocoaImpl::DoHandleKeyEvent(NSEvent *event)
                 // eventually we could setup a doCommandBySelector catcher and retransform this into the wx key chars
                 wxKeyEvent wxevent2(wxevent) ;
                 wxevent2.SetEventType(wxEVT_CHAR);
+                SetupKeyEvent( wxevent2, event );
                 wxevent2.m_keyCode = keycode;
                 result = GetWXPeer()->OSXHandleKeyEvent(wxevent2);
             }
+            else if (wxevent.CmdDown())
+            {
+                wxKeyEvent wxevent2(wxevent) ;
+                wxevent2.SetEventType(wxEVT_CHAR);
+                SetupKeyEvent( wxevent2, event );
+                result = GetWXPeer()->OSXHandleKeyEvent(wxevent2);
+            }
             else
             {
-                if ( !wxevent.CmdDown() )
+                if ( IsUserPane() && !wxevent.CmdDown() )
                 {
                     if ( [m_osxView isKindOfClass:[NSScrollView class] ] )
                         [[(NSScrollView*)m_osxView documentView] interpretKeyEvents:[NSArray arrayWithObject:event]];
@@ -2526,10 +2551,6 @@ wxWidgetImpl* wxWidgetImpl::CreateUserPane( wxWindowMac* wxpeer, wxWindowMac* WX
     NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
     wxNSView* v = [[wxNSView alloc] initWithFrame:r];
 
-    // temporary hook for dnd
-    [v registerForDraggedTypes:[NSArray arrayWithObjects:
-        NSStringPboardType, NSFilenamesPboardType, NSTIFFPboardType, NSPICTPboardType, NSPDFPboardType, nil]];
-
     wxWidgetCocoaImpl* c = new wxWidgetCocoaImpl( wxpeer, v, false, true );
     return c;
 }