| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/osx/cocoa/private.h
 
- // Purpose:     Private declarations: as this header is only included by
 
- //              wxWidgets itself, it may contain identifiers which don't start
 
- //              with "wx".
 
- // Author:      Stefan Csomor
 
- // Modified by:
 
- // Created:     1998-01-01
 
- // Copyright:   (c) Stefan Csomor
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_PRIVATE_COCOA_H_
 
- #define _WX_PRIVATE_COCOA_H_
 
- #include <ApplicationServices/ApplicationServices.h>
 
- #ifdef __OBJC__
 
-     #import <Cocoa/Cocoa.h>
 
- #endif
 
- //
 
- // shared between Cocoa and Carbon
 
- //
 
- // bring in theming types without pulling in the headers
 
- #if wxUSE_GUI
 
- typedef SInt16 ThemeBrush;
 
- CGColorRef WXDLLIMPEXP_CORE wxMacCreateCGColorFromHITheme( ThemeBrush brush ) ;
 
- OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
 
-                                CGContextRef    inContext,
 
-                                const CGRect *  inBounds,
 
-                                CGImageRef      inImage) ;
 
- WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromCGImage( CGImageRef image, double scale = 1.0 );
 
- CGImageRef WXDLLIMPEXP_CORE wxOSXCreateCGImageFromNSImage( WX_NSImage nsimage, double *scale = NULL );
 
- CGContextRef WXDLLIMPEXP_CORE wxOSXCreateBitmapContextFromNSImage( WX_NSImage nsimage);
 
- wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size);
 
- WXWindow WXDLLIMPEXP_CORE wxOSXGetMainWindow();
 
- class WXDLLIMPEXP_FWD_CORE wxDialog;
 
- class WXDLLIMPEXP_CORE wxWidgetCocoaImpl : public wxWidgetImpl
 
- {
 
- public :
 
-     wxWidgetCocoaImpl( wxWindowMac* peer , WXWidget w, bool isRootControl = false, bool isUserPane = false ) ;
 
-     wxWidgetCocoaImpl() ;
 
-     ~wxWidgetCocoaImpl();
 
-     void Init();
 
-     virtual bool        IsVisible() const ;
 
-     virtual void        SetVisibility(bool);
 
-     // we provide a static function which can be reused from
 
-     // wxNonOwnedWindowCocoaImpl too
 
-     static bool ShowViewOrWindowWithEffect(wxWindow *win,
 
-                                            bool show,
 
-                                            wxShowEffect effect,
 
-                                            unsigned timeout);
 
-     virtual bool ShowWithEffect(bool show,
 
-                                 wxShowEffect effect,
 
-                                 unsigned timeout);
 
-     virtual void        Raise();
 
-     virtual void        Lower();
 
-     virtual void        ScrollRect( const wxRect *rect, int dx, int dy );
 
-     virtual WXWidget    GetWXWidget() const { return m_osxView; }
 
-     virtual void        SetBackgroundColour(const wxColour&);
 
-     virtual bool        SetBackgroundStyle(wxBackgroundStyle style);
 
-     virtual void        GetContentArea( int &left , int &top , int &width , int &height ) const;
 
-     virtual void        Move(int x, int y, int width, int height);
 
-     virtual void        GetPosition( int &x, int &y ) const;
 
-     virtual void        GetSize( int &width, int &height ) const;
 
-     virtual void        SetControlSize( wxWindowVariant variant );
 
-     virtual void        SetNeedsDisplay( const wxRect* where = NULL );
 
-     virtual bool        GetNeedsDisplay() const;
 
-     virtual void        SetDrawingEnabled(bool enabled);
 
-     virtual bool        CanFocus() const;
 
-     // return true if successful
 
-     virtual bool        SetFocus();
 
-     virtual bool        HasFocus() const;
 
-     void                RemoveFromParent();
 
-     void                Embed( wxWidgetImpl *parent );
 
-     void                SetDefaultButton( bool isDefault );
 
-     void                PerformClick();
 
-     virtual void        SetLabel(const wxString& title, wxFontEncoding encoding);
 
-     void                SetCursor( const wxCursor & cursor );
 
-     void                CaptureMouse();
 
-     void                ReleaseMouse();
 
- #if wxUSE_DRAG_AND_DROP
 
-     void                SetDropTarget(wxDropTarget* target);
 
- #endif
 
-     wxInt32             GetValue() const;
 
-     void                SetValue( wxInt32 v );
 
-     wxBitmap            GetBitmap() const;
 
-     void                SetBitmap( const wxBitmap& bitmap );
 
-     void                SetBitmapPosition( wxDirection dir );
 
-     void                SetupTabs( const wxNotebook ¬ebook );
 
-     void                GetBestRect( wxRect *r ) const;
 
-     bool                IsEnabled() const;
 
-     void                Enable( bool enable );
 
-     bool                ButtonClickDidStateChange() { return true ;}
 
-     void                SetMinimum( wxInt32 v );
 
-     void                SetMaximum( wxInt32 v );
 
-     wxInt32             GetMinimum() const;
 
-     wxInt32             GetMaximum() const;
 
-     void                PulseGauge();
 
-     void                SetScrollThumb( wxInt32 value, wxInt32 thumbSize );
 
-     void                SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true );
 
-     void                SetToolTip( wxToolTip* tooltip );
 
-     void                InstallEventHandler( WXWidget control = NULL );
 
-     virtual bool        DoHandleMouseEvent(NSEvent *event);
 
-     virtual bool        DoHandleKeyEvent(NSEvent *event);
 
-     virtual bool        DoHandleCharEvent(NSEvent *event, NSString *text);
 
-     virtual void        DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* otherWindow);
 
-     virtual void        SetupKeyEvent(wxKeyEvent &wxevent, NSEvent * nsEvent, NSString* charString = NULL);
 
-     virtual void        SetupMouseEvent(wxMouseEvent &wxevent, NSEvent * nsEvent);
 
-     void                SetupCoordinates(wxCoord &x, wxCoord &y, NSEvent *nsEvent);
 
-     virtual bool        SetupCursor(NSEvent* event);
 
- #if !wxOSX_USE_NATIVE_FLIPPED
 
-     void                SetFlipped(bool flipped);
 
-     virtual bool        IsFlipped() const { return m_isFlipped; }
 
- #endif
 
-     virtual double      GetContentScaleFactor() const;
 
-     
 
-     // cocoa thunk connected calls
 
- #if wxUSE_DRAG_AND_DROP
 
-     virtual unsigned int        draggingEntered(void* sender, WXWidget slf, void* _cmd);
 
-     virtual void                draggingExited(void* sender, WXWidget slf, void* _cmd);
 
-     virtual unsigned int        draggingUpdated(void* sender, WXWidget slf, void* _cmd);
 
-     virtual bool                performDragOperation(void* sender, WXWidget slf, void* _cmd);
 
- #endif
 
-     virtual void                mouseEvent(WX_NSEvent event, WXWidget slf, void* _cmd);
 
-     virtual void                cursorUpdate(WX_NSEvent event, WXWidget slf, void* _cmd);
 
-     virtual void                keyEvent(WX_NSEvent event, WXWidget slf, void* _cmd);
 
-     virtual void                insertText(NSString* text, WXWidget slf, void* _cmd);
 
-     virtual void                doCommandBySelector(void* sel, WXWidget slf, void* _cmd);
 
-     virtual bool                performKeyEquivalent(WX_NSEvent event, WXWidget slf, void* _cmd);
 
-     virtual bool                acceptsFirstResponder(WXWidget slf, void* _cmd);
 
-     virtual bool                becomeFirstResponder(WXWidget slf, void* _cmd);
 
-     virtual bool                resignFirstResponder(WXWidget slf, void* _cmd);
 
- #if !wxOSX_USE_NATIVE_FLIPPED
 
-     virtual bool                isFlipped(WXWidget slf, void* _cmd);
 
- #endif
 
-     virtual void                drawRect(void* rect, WXWidget slf, void* _cmd);
 
-     virtual void                controlAction(WXWidget slf, void* _cmd, void* sender);
 
-     virtual void                controlDoubleAction(WXWidget slf, void* _cmd, void *sender);
 
-     // for wxTextCtrl-derived classes, put here since they don't all derive
 
-     // from the same pimpl class.
 
-     virtual void                controlTextDidChange();
 
- protected:
 
-     WXWidget m_osxView;
 
-     NSEvent* m_lastKeyDownEvent;
 
- #if !wxOSX_USE_NATIVE_FLIPPED
 
-     bool m_isFlipped;
 
- #endif
 
-     // if it the control has an editor, that editor will already send some
 
-     // events, don't resend them
 
-     bool m_hasEditor;
 
-     DECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetCocoaImpl)
 
- };
 
- DECLARE_WXCOCOA_OBJC_CLASS( wxNSWindow );
 
- class wxNonOwnedWindowCocoaImpl : public wxNonOwnedWindowImpl
 
- {
 
- public :
 
-     wxNonOwnedWindowCocoaImpl( wxNonOwnedWindow* nonownedwnd) ;
 
-     wxNonOwnedWindowCocoaImpl();
 
-     virtual ~wxNonOwnedWindowCocoaImpl();
 
-     virtual void WillBeDestroyed() ;
 
-     void Create( wxWindow* parent, const wxPoint& pos, const wxSize& size,
 
-     long style, long extraStyle, const wxString& name ) ;
 
-     void Create( wxWindow* parent, WXWindow nativeWindow );
 
-     WXWindow GetWXWindow() const;
 
-     void Raise();
 
-     void Lower();
 
-     bool Show(bool show);
 
-     virtual bool ShowWithEffect(bool show,
 
-                                 wxShowEffect effect,
 
-                                 unsigned timeout);
 
-     void Update();
 
-     bool SetTransparent(wxByte alpha);
 
-     bool SetBackgroundColour(const wxColour& col );
 
-     void SetExtraStyle( long exStyle );
 
-     void SetWindowStyleFlag( long style );
 
-     bool SetBackgroundStyle(wxBackgroundStyle style);
 
-     bool CanSetTransparent();
 
-     void MoveWindow(int x, int y, int width, int height);
 
-     void GetPosition( int &x, int &y ) const;
 
-     void GetSize( int &width, int &height ) const;
 
-     void GetContentArea( int &left , int &top , int &width , int &height ) const;
 
-     bool SetShape(const wxRegion& region);
 
-     virtual void SetTitle( const wxString& title, wxFontEncoding encoding ) ;
 
-     virtual bool IsMaximized() const;
 
-     virtual bool IsIconized() const;
 
-     virtual void Iconize( bool iconize );
 
-     virtual void Maximize(bool maximize);
 
-     virtual bool IsFullScreen() const;
 
-     virtual bool ShowFullScreen(bool show, long style);
 
-     virtual void ShowWithoutActivating();
 
-     virtual void RequestUserAttention(int flags);
 
-     virtual void ScreenToWindow( int *x, int *y );
 
-     virtual void WindowToScreen( int *x, int *y );
 
-     virtual bool IsActive();
 
-     virtual void SetModified(bool modified);
 
-     virtual bool IsModified() const;
 
-     virtual void SetRepresentedFilename(const wxString& filename);
 
-     wxNonOwnedWindow*   GetWXPeer() { return m_wxPeer; }
 
-     
 
-     CGWindowLevel   GetWindowLevel() const { return m_macWindowLevel; }
 
-     void            RestoreWindowLevel();
 
-     
 
-     static WX_NSResponder GetNextFirstResponder() ;
 
- protected :
 
-     CGWindowLevel   m_macWindowLevel;
 
-     WXWindow        m_macWindow;
 
-     void *          m_macFullScreenData ;
 
-     DECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowCocoaImpl)
 
- };
 
- DECLARE_WXCOCOA_OBJC_CLASS( wxNSButton );
 
- class wxButtonCocoaImpl : public wxWidgetCocoaImpl, public wxButtonImpl
 
- {
 
- public:
 
-     wxButtonCocoaImpl(wxWindowMac *wxpeer, wxNSButton *v);
 
-     virtual void SetBitmap(const wxBitmap& bitmap);
 
- #if wxUSE_MARKUP
 
-     virtual void SetLabelMarkup(const wxString& markup);
 
- #endif // wxUSE_MARKUP
 
-     
 
-     void SetPressedBitmap( const wxBitmap& bitmap );
 
-     void GetLayoutInset(int &left , int &top , int &right, int &bottom) const;
 
-     void SetAcceleratorFromLabel(const wxString& label);
 
-     NSButton *GetNSButton() const;
 
- };
 
- #ifdef __OBJC__
 
-     typedef void (*wxOSX_TextEventHandlerPtr)(NSView* self, SEL _cmd, NSString *event);
 
-     typedef void (*wxOSX_EventHandlerPtr)(NSView* self, SEL _cmd, NSEvent *event);
 
-     typedef BOOL (*wxOSX_PerformKeyEventHandlerPtr)(NSView* self, SEL _cmd, NSEvent *event);
 
-     typedef BOOL (*wxOSX_FocusHandlerPtr)(NSView* self, SEL _cmd);
 
-     WXDLLIMPEXP_CORE NSScreen* wxOSXGetMenuScreen();
 
-     WXDLLIMPEXP_CORE NSRect wxToNSRect( NSView* parent, const wxRect& r );
 
-     WXDLLIMPEXP_CORE wxRect wxFromNSRect( NSView* parent, const NSRect& rect );
 
-     WXDLLIMPEXP_CORE NSPoint wxToNSPoint( NSView* parent, const wxPoint& p );
 
-     WXDLLIMPEXP_CORE wxPoint wxFromNSPoint( NSView* parent, const NSPoint& p );
 
-     NSRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size ,
 
-         bool adjustForOrigin = true );
 
-     WXDLLIMPEXP_CORE NSView* wxOSXGetViewFromResponder( NSResponder* responder );
 
-     // used for many wxControls
 
-     @interface wxNSButton : NSButton
 
-     {
 
-         NSTrackingRectTag rectTag;
 
-     }
 
-     @end
 
-     @interface wxNSBox : NSBox
 
-     {
 
-     }
 
-     @end
 
-     @interface wxNSTextFieldEditor : NSTextView
 
-     {
 
-         NSEvent* lastKeyDownEvent;
 
-     }
 
-     @end
 
-     @interface wxNSTextField : NSTextField wxOSX_10_6_AND_LATER(<NSTextFieldDelegate>)
 
-     {
 
-         wxNSTextFieldEditor* fieldEditor;
 
-     }
 
-     - (wxNSTextFieldEditor*) fieldEditor;
 
-     - (void) setFieldEditor:(wxNSTextFieldEditor*) fieldEditor;
 
-     @end
 
-     @interface wxNSSecureTextField : NSSecureTextField wxOSX_10_6_AND_LATER(<NSTextFieldDelegate>)
 
-     {
 
-     }
 
-     @end
 
-     @interface wxNSTextView : NSTextView wxOSX_10_6_AND_LATER(<NSTextViewDelegate>)
 
-     {
 
-     }
 
-     - (void)textDidChange:(NSNotification *)aNotification;
 
-     @end
 
-     @interface wxNSComboBox : NSComboBox
 
-     {
 
-         wxNSTextFieldEditor* fieldEditor;
 
-     }
 
-     - (wxNSTextFieldEditor*) fieldEditor;
 
-     - (void) setFieldEditor:(wxNSTextFieldEditor*) fieldEditor;
 
-     @end
 
-     @interface wxNSMenu : NSMenu
 
-     {
 
-        wxMenuImpl* impl;
 
-     }
 
-     - (void) setImplementation:(wxMenuImpl*) item;
 
-     - (wxMenuImpl*) implementation;
 
-     @end
 
-     @interface wxNSMenuItem : NSMenuItem
 
-     {
 
-        wxMenuItemImpl* impl;
 
-     }
 
-     - (void) setImplementation:(wxMenuItemImpl*) item;
 
-     - (wxMenuItemImpl*) implementation;
 
-     - (void)clickedAction:(id)sender;
 
-     - (BOOL)validateMenuItem:(NSMenuItem *)menuItem;
 
-     @end
 
-     void WXDLLIMPEXP_CORE wxOSXCocoaClassAddWXMethods(Class c);
 
-     /*
 
-     We need this for ShowModal, as the sheet just disables the parent window and
 
-     returns control to the app, whereas we don't want to return from ShowModal
 
-     until the sheet has been dismissed.
 
-     */
 
-     @interface ModalDialogDelegate : NSObject
 
-     {
 
-         BOOL sheetFinished;
 
-         int resultCode;
 
-         wxDialog* impl;
 
-     }
 
-     - (void)setImplementation: (wxDialog *)dialog;
 
-     - (BOOL)finished;
 
-     - (int)code;
 
-     - (void)waitForSheetToFinish;
 
-     - (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo;
 
-     @end
 
-     // This interface must be exported in shared 64 bit multilib build but
 
-     // using WXEXPORT with Objective C interfaces doesn't work with old (4.0.1)
 
-     // gcc when using 10.4 SDK. It does work with newer gcc even in 32 bit
 
-     // builds but seems to be unnecessary there so to avoid the expense of a
 
-     // configure check verifying if this does work or not with the current
 
-     // compiler we just only use it for 64 bit builds where this is always
 
-     // supported.
 
-     //
 
-     // NB: Currently this is the only place where we need to export an
 
-     //     interface but if we need to do it elsewhere we should define a
 
-     //     WXEXPORT_OBJC macro once and reuse it in all places it's needed
 
-     //     instead of duplicating this preprocessor check.
 
- #ifdef __LP64__
 
-     WXEXPORT
 
- #endif // 64 bit builds
 
-     @interface wxNSAppController : NSObject wxOSX_10_6_AND_LATER(<NSApplicationDelegate>)
 
-     {
 
-     }
 
-     @end
 
- #endif // __OBJC__
 
- // NSCursor
 
- WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type );
 
- WX_NSCursor  wxMacCocoaCreateCursorFromCGImage( CGImageRef cgImageRef, float hotSpotX, float hotSpotY );
 
- void  wxMacCocoaSetCursor( WX_NSCursor cursor );
 
- void  wxMacCocoaHideCursor();
 
- void  wxMacCocoaShowCursor();
 
- typedef struct tagClassicCursor
 
- {
 
-     wxUint16 bits[16];
 
-     wxUint16 mask[16];
 
-     wxInt16 hotspot[2];
 
- }ClassicCursor;
 
- const short kwxCursorBullseye = 0;
 
- const short kwxCursorBlank = 1;
 
- const short kwxCursorPencil = 2;
 
- const short kwxCursorMagnifier = 3;
 
- const short kwxCursorNoEntry = 4;
 
- const short kwxCursorPaintBrush = 5;
 
- const short kwxCursorPointRight = 6;
 
- const short kwxCursorPointLeft = 7;
 
- const short kwxCursorQuestionArrow = 8;
 
- const short kwxCursorRightArrow = 9;
 
- const short kwxCursorSizeNS = 10;
 
- const short kwxCursorSize = 11;
 
- const short kwxCursorSizeNESW = 12;
 
- const short kwxCursorSizeNWSE = 13;
 
- const short kwxCursorRoller = 14;
 
- const short kwxCursorWatch = 15;
 
- const short kwxCursorLast = kwxCursorWatch;
 
- // exposing our fallback cursor map
 
- extern ClassicCursor gMacCursors[];
 
- extern NSLayoutManager* gNSLayoutManager;
 
- #endif
 
- #endif
 
-     // _WX_PRIVATE_COCOA_H_
 
 
  |