]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/cocoa/window.mm
disable new event code unconditionally for now
[wxWidgets.git] / src / osx / cocoa / window.mm
index 7cff3356c65eb3df0406dc30502f5567729ce6ec..ce2fa679f822a14aa42934a4704986fd83f10c52 100644 (file)
@@ -11,7 +11,9 @@
 
 #include "wx/wxprec.h"
 
-#include <Cocoa/Cocoa.h>
+#ifndef WX_PRECOMP
+#include "wx/nonownedwnd.h"
+#endif
 
 #ifdef __WXMAC__
 #include "wx/osx/private.h"
@@ -30,26 +32,20 @@ NSRect wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const
 
 @interface wxNSView : NSView
 {
-    wxWidgetImpl* impl;
+    wxWidgetCocoaImpl* impl;
 }
 
 - (void)drawRect: (NSRect) rect;
 
--(void)mouseDown:(NSEvent *)event ;
--(void)rightMouseDown:(NSEvent *)event ;
--(void)otherMouseDown:(NSEvent *)event ;
--(void)mouseUp:(NSEvent *)event ;
--(void)rightMouseUp:(NSEvent *)event ;
--(void)otherMouseUp:(NSEvent *)event ;
--(void)handleMouseEvent:(NSEvent *)event;
+WXCOCOAIMPL_COMMON_MOUSE_INTERFACE
 
 - (void)keyDown:(NSEvent *)event;
 - (void)keyUp:(NSEvent *)event;
 - (void)flagsChanged:(NSEvent *)event;
 - (void)handleKeyEvent:(NSEvent *)event;
 
-- (void)setImplementation: (wxWidgetImpl *) theImplementation;
-- (wxWidgetImpl*) implementation;
+- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation;
+- (wxWidgetCocoaImpl*) implementation;
 - (BOOL) isFlipped;
 - (BOOL) becomeFirstResponder;
 - (BOOL) resignFirstResponder;
@@ -110,6 +106,7 @@ long wxOSXTranslateCocoaKey(unsigned short code, int unichar )
 void SetupKeyEvent( wxKeyEvent &wxevent , NSEvent * nsEvent )
 {
     UInt32 modifiers = [nsEvent modifierFlags] ;
+    int eventType = [nsEvent type];
 
     wxevent.m_shiftDown = modifiers & NSShiftKeyMask;
     wxevent.m_controlDown = modifiers & NSControlKeyMask;
@@ -117,11 +114,14 @@ void SetupKeyEvent( wxKeyEvent &wxevent , NSEvent * nsEvent )
     wxevent.m_metaDown = modifiers & NSCommandKeyMask;
 
     wxString chars;
-    NSString* nschars = [nsEvent characters];
-    if ( nschars )
+    if ( eventType != NSFlagsChanged )
     {
-        wxCFStringRef cfchars((CFStringRef)[nschars retain]);
-        chars = cfchars.AsString();
+        NSString* nschars = [nsEvent characters];
+        if ( nschars )
+        {
+            wxCFStringRef cfchars((CFStringRef)[nschars retain]);
+            chars = cfchars.AsString();
+        }
     }
     
     int unichar = chars.Length() > 0 ? chars[0] : 0;
@@ -134,7 +134,6 @@ void SetupKeyEvent( wxKeyEvent &wxevent , NSEvent * nsEvent )
     wxevent.m_rawFlags = modifiers;
     
     wxevent.SetTimestamp( [nsEvent timestamp] * 1000.0 ) ;
-    int eventType = [nsEvent type];
     switch (eventType)
     {
         case NSKeyDown :
@@ -322,7 +321,7 @@ void SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEvent )
         
         wxRegion updateRgn;
         const NSRect *rects;
-        int count ;
+        NSInteger count;
 
         [self getRectsBeingDrawn:&rects count:&count];
         for ( int i = 0 ; i < count ; ++i )
@@ -343,47 +342,7 @@ void SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEvent )
     }
 }
 
--(void)mouseDown:(NSEvent *)event 
-{
-    [self handleMouseEvent:event];
-}
-
--(void)rightMouseDown:(NSEvent *)event 
-{
-    [self handleMouseEvent:event];
-}
-
--(void)otherMouseDown:(NSEvent *)event 
-{
-    [self handleMouseEvent:event];
-}
-
--(void)mouseUp:(NSEvent *)event 
-{
-    [self handleMouseEvent:event];
-}
-
--(void)rightMouseUp:(NSEvent *)event 
-{
-    [self handleMouseEvent:event];
-}
-
--(void)otherMouseUp:(NSEvent *)event 
-{
-    [self handleMouseEvent:event];
-}
-
--(void)handleMouseEvent:(NSEvent *)event 
-{ 
-    NSPoint clickLocation; 
-    clickLocation = [self convertPoint:[event locationInWindow] fromView:nil]; 
-    wxPoint pt = wxFromNSPoint( self, clickLocation );
-    wxMouseEvent wxevent(wxEVT_LEFT_DOWN);
-    SetupMouseEvent( wxevent , event ) ;
-    wxevent.m_x = pt.x;
-    wxevent.m_y = pt.y;
-    impl->GetWXPeer()->HandleWindowEvent(wxevent);
-}
+WXCOCOAIMPL_COMMON_MOUSE_IMPLEMENTATION
 
 - (void)keyDown:(NSEvent *)event
 {
@@ -408,12 +367,12 @@ void SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEvent )
 }
 
 
-- (void)setImplementation: (wxWidgetImpl *) theImplementation
+- (void)setImplementation: (wxWidgetCocoaImpl *) theImplementation
 {
     impl = theImplementation;
 }
 
-- (wxWidgetImpl*) implementation
+- (wxWidgetCocoaImpl*) implementation
 {
     return impl;
 }
@@ -708,6 +667,28 @@ void wxWidgetCocoaImpl::SetControlSize( wxWindowVariant variant )
         [m_osxView setControlSize:size];
 }
 
+void wxWidgetCocoaImpl::SetFont(wxFont const&, wxColour const&, long, bool)
+{
+    // TODO
+}
+
+void wxWidgetCocoaImpl::InstallEventHandler( WXWidget control )
+{
+}
+
+void wxWidgetCocoaImpl::DoHandleMouseEvent(NSEvent *event)
+{
+    NSPoint clickLocation; 
+    clickLocation = [m_osxView convertPoint:[event locationInWindow] fromView:nil]; 
+    wxPoint pt = wxFromNSPoint( m_osxView, clickLocation );
+    wxMouseEvent wxevent(wxEVT_LEFT_DOWN);
+    SetupMouseEvent( wxevent , event ) ;
+    wxevent.m_x = pt.x;
+    wxevent.m_y = pt.y;
+    GetWXPeer()->HandleWindowEvent(wxevent);
+}
+
+
 //
 // Factory methods
 //