1/////////////////////////////////////////////////////////////////////////////// 2// Name: wx/cocoa/NSView.h 3// Purpose: wxCocoaNSView class 4// Author: David Elliott 5// Modified by: 6// Created: 2003/02/15 7// RCS-ID: $Id: NSView.h 51576 2008-02-06 20:10:07Z DE $ 8// Copyright: (c) 2003 David Elliott 9// Licence: wxWindows licence 10/////////////////////////////////////////////////////////////////////////////// 11 12#ifndef __WX_COCOA_NSVIEW_H__ 13#define __WX_COCOA_NSVIEW_H__ 14 15#include "wx/hashmap.h" 16#include "wx/cocoa/ObjcAssociate.h" 17 18#if defined(__LP64__) || defined(NS_BUILD_32_LIKE_64) 19typedef struct CGRect NSRect; 20#else 21typedef struct _NSRect NSRect; 22#endif 23 24struct objc_object; 25 26class wxWindow; 27 28WX_DECLARE_OBJC_HASHMAP(NSView); 29class wxCocoaNSView 30{ 31/* NSView is a rather special case and requires some extra attention */ 32 WX_DECLARE_OBJC_INTERFACE_HASHMAP(NSView) 33public: 34 void AssociateNSView(WX_NSView cocoaNSView); 35 void DisassociateNSView(WX_NSView cocoaNSView); 36protected: 37 static struct objc_object *sm_cocoaObserver; 38public: 39 virtual wxWindow* GetWxWindow() const 40 { return NULL; } 41 virtual void Cocoa_FrameChanged(void) = 0; 42#if wxUSE_ABI_INCOMPATIBLE_FEATURES 43 virtual void Cocoa_synthesizeMouseMoved(void) = 0; 44#endif 45 virtual bool Cocoa_acceptsFirstMouse(bool &acceptsFirstMouse, WX_NSEvent theEvent) 46 { return false; } 47 virtual bool Cocoa_drawRect(const NSRect &rect) 48 { return false; } 49 virtual bool Cocoa_mouseDown(WX_NSEvent theEvent) 50 { return false; } 51 virtual bool Cocoa_mouseDragged(WX_NSEvent theEvent) 52 { return false; } 53 virtual bool Cocoa_mouseUp(WX_NSEvent theEvent) 54 { return false; } 55 virtual bool Cocoa_mouseMoved(WX_NSEvent theEvent) 56 { return false; } 57 virtual bool Cocoa_mouseEntered(WX_NSEvent theEvent) 58 { return false; } 59 virtual bool Cocoa_mouseExited(WX_NSEvent theEvent) 60 { return false; } 61 virtual bool Cocoa_rightMouseDown(WX_NSEvent theEvent) 62 { return false; } 63 virtual bool Cocoa_rightMouseDragged(WX_NSEvent theEvent) 64 { return false; } 65 virtual bool Cocoa_rightMouseUp(WX_NSEvent theEvent) 66 { return false; } 67 virtual bool Cocoa_otherMouseDown(WX_NSEvent theEvent) 68 { return false; } 69 virtual bool Cocoa_otherMouseDragged(WX_NSEvent theEvent) 70 { return false; } 71 virtual bool Cocoa_otherMouseUp(WX_NSEvent theEvent) 72 { return false; } 73 virtual bool Cocoa_resetCursorRects() 74 { return false; } 75#if wxUSE_ABI_INCOMPATIBLE_FEATURES 76 virtual bool Cocoa_viewDidMoveToWindow() 77 { return false; } 78 virtual bool Cocoa_viewWillMoveToWindow(WX_NSWindow newWindow) 79 { return false; } 80#endif 81 virtual ~wxCocoaNSView() { } 82}; 83 84#endif 85 // __WX_COCOA_NSVIEW_H__ 86