]> git.saurik.com Git - wxWidgets.git/commitdiff
merge of new wxMac code
authorStefan Csomor <csomor@advancedconcepts.ch>
Sat, 27 Mar 2004 07:15:02 +0000 (07:15 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sat, 27 Mar 2004 07:15:02 +0000 (07:15 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26402 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

18 files changed:
include/wx/mac/carbon/app.h
include/wx/mac/carbon/bmpbuttn.h
include/wx/mac/carbon/brush.h
include/wx/mac/carbon/control.h
include/wx/mac/carbon/font.h
include/wx/mac/carbon/frame.h
include/wx/mac/carbon/listbox.h
include/wx/mac/carbon/private.h
include/wx/mac/carbon/private/print.h
include/wx/mac/carbon/setup.h [deleted file]
include/wx/mac/carbon/slider.h
include/wx/mac/carbon/statbox.h
include/wx/mac/carbon/stattext.h
include/wx/mac/carbon/statusbr.h
include/wx/mac/carbon/textctrl.h
include/wx/mac/carbon/toplevel.h
include/wx/mac/carbon/uma.h
include/wx/mac/carbon/window.h

index efc50cbea21ff37ab39ca3be76f3a670055eb812..15391015a8691161219fa9da6446d3f76cb9e0c2 100644 (file)
@@ -69,15 +69,10 @@ class WXDLLEXPORT wxApp: public wxAppBase
     void OnEndSession(wxCloseEvent& event);
     void OnQueryEndSession(wxCloseEvent& event);
 
-    // Windows only, but for compatibility...
-    inline void SetAuto3D(bool flag) { m_auto3D = flag; }
-    inline bool GetAuto3D() const { return m_auto3D; }
-
 protected:
     bool                  m_showOnInit;
     int                   m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
-    bool                  m_auto3D ;   // Always use 3D controls, except
-                                       // where overriden
+
 public:
 
     static bool           sm_isEmbedded;
@@ -86,13 +81,12 @@ public:
     virtual void CleanUp();
 
     bool IsExiting() { return !m_keepGoing ; }
-#if TARGET_CARBON
+
     // the installed application event handler
     WXEVENTHANDLERREF    MacGetEventHandler() { return m_macEventHandler ; }
     WXEVENTHANDLERREF    MacGetCurrentEventHandlerCallRef() { return m_macCurrentEventHandlerCallRef ; }
     void MacSetCurrentEvent( WXEVENTREF event , WXEVENTHANDLERCALLREF handler )
     { m_macCurrentEvent = event ; m_macCurrentEventHandlerCallRef = handler ; }
-#endif
 
 public:
     static long           sm_lastMessageTime;
@@ -107,10 +101,9 @@ private:
     bool                  m_keepGoing ;
 
     // mac specifics
-#if TARGET_CARBON
+
     WXEVENTHANDLERREF     m_macEventHandler ;
     WXEVENTHANDLERCALLREF m_macCurrentEventHandlerCallRef ;
-#endif
     WXEVENTREF            m_macCurrentEvent ;
 
 public:
@@ -135,11 +128,6 @@ public:
     WXHRGN                m_macSleepRgn ;
     WXHRGN                m_macHelpRgn ;
 
-    virtual void          MacSuspend( bool convertClipboard ) ;
-    virtual void          MacResume( bool convertClipboard ) ;
-    virtual void          MacConvertPrivateToPublicScrap() ;
-    virtual void          MacConvertPublicToPrivateScrap() ;
-
     void                  MacDoOneEvent() ;
     WXEVENTREF            MacGetCurrentEvent() { return m_macCurrentEvent ; }
     void                  MacHandleOneEvent( WXEVENTREF ev ) ;
@@ -147,28 +135,8 @@ public:
     // For embedded use. By default does nothing.
     virtual void          MacHandleUnhandledEvent( WXEVENTREF ev );
 
-#if !TARGET_CARBON
-    virtual void          MacHandleMenuSelect( int menuid , int menuitem ) ;
-    virtual void          MacHandleMouseUpEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleOSEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleDiskEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleActivateEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleUpdateEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleMouseDownEvent( WXEVENTREF ev ) ;
-
-    void                  MacHandleModifierEvents( WXEVENTREF ev ) ;
-
-    virtual void          MacHandleKeyDownEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleKeyUpEvent( WXEVENTREF ev ) ;
-    virtual void          MacHandleHighLevelEvent( WXEVENTREF ev ) ;
-
-#else
-    virtual void          MacHandleMouseMovedEvent( wxInt32 x , wxInt32 y ,wxUint32 modifiers , long timestamp ) ;
-#endif
-
-    void                  MacHandleMenuCommand( wxUint32 command ) ;
-    bool                    MacSendKeyDownEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey ) ;
-    bool                    MacSendKeyUpEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey ) ;
+    bool    MacSendKeyDownEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey ) ;
+    bool    MacSendKeyUpEvent( wxWindow* focus , long keyval , long modifiers , long when , short wherex , short wherey ) ;
 
     virtual short         MacHandleAEODoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
     virtual short         MacHandleAEPDoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
index 28a91ed93f218e4c1d7f883ed4fa780cf5d03712..648b7472c0cff4f86fb041f6594323020ab5a71c 100644 (file)
@@ -49,14 +49,6 @@ public:
 
     virtual void SetBitmapLabel(const wxBitmap& bitmap);
 
-/*
-  // TODO: Implementation
-  virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
-  virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel );
-  virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel );
-  virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg );
-*/
-
 protected:
     virtual wxSize DoGetBestSize() const;    
 };
index 12e60e06d157a5536ed8219676db5f5581238b45..7684cf241e7ed77bcdd8d484617e044af839a58e 100644 (file)
@@ -48,8 +48,8 @@ public:
   virtual void SetColour(unsigned char r, unsigned char g, unsigned char b)  ;
   virtual void SetStyle(int style)  ;
   virtual void SetStipple(const wxBitmap& stipple)  ;
-  virtual void SetMacTheme(short macThemeBrush) ;
-  virtual void SetMacThemeBackground(unsigned long macThemeBackground ,  WXRECTPTR extent) ;
+  virtual void MacSetTheme(short macThemeBrush) ;
+  virtual void MacSetThemeBackground(unsigned long macThemeBackground ,  WXRECTPTR extent) ;
 
   wxBrush& operator = (const wxBrush& brush)
   { if (*this == brush) return (*this); Ref(brush); return *this; }
@@ -60,8 +60,8 @@ public:
 
   wxMacBrushKind MacGetBrushKind()  const ;
 
-  unsigned long GetMacThemeBackground(WXRECTPTR extent)  const ;
-  short GetMacTheme()  const ;
+  unsigned long MacGetThemeBackground(WXRECTPTR extent)  const ;
+  short MacGetTheme()  const ;
   wxColour& GetColour() const ;
   int GetStyle() const ;
   wxBitmap *GetStipple() const ;
index cc588f3861d7816bb2ba321293379ca5abce7402..201ce9f0edb547c6909360770c215f737f2aed72 100644 (file)
@@ -49,61 +49,9 @@ public:
 
    // Calls the callback and appropriate event handlers
    bool ProcessCommand(wxCommandEvent& event);
-   virtual void SetLabel(const wxString& title) ;
 
-   wxList& GetSubcontrols() { return m_subControls; }
-   
-   void OnEraseBackground(wxEraseEvent& event);
-   
-   virtual bool             Enable(bool enable = TRUE) ;
-   virtual bool             Show(bool show = TRUE) ;
-   virtual void             DoSetWindowVariant( wxWindowVariant variant ) ;
-   virtual void         MacRedrawControl () ;
-   virtual void      MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ;
-   virtual void             MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label ,
-                          const wxPoint& pos,
-                          const wxSize& size, long style,
-                          const wxValidator& validator,
-                          const wxString& name ,
-                          WXRECTPTR outBounds ,
-                          unsigned char* maclabel ) ;
-   virtual void         MacPostControlCreate() ;
-   virtual void         MacAdjustControlRect() ;
-   virtual WXWidget MacGetContainerForEmbedding() ;
-   virtual void      MacSuperChangedPosition() ;
-   virtual void      MacSuperEnabled( bool enabled ) ;
-   virtual void      MacSuperShown( bool show ) ;
-   virtual bool         MacCanFocus() const ;
-   virtual void         MacUpdateDimensions() ;
-   void*             MacGetControlAction() { return m_macControlAction ; }
-   
-   virtual void       DoSetSize(int x, int y,int width, int height,int sizeFlags = wxSIZE_AUTO ) ;
-   void              OnKeyDown( wxKeyEvent &event ) ;
-   void                 OnMouseEvent( wxMouseEvent &event ) ;
-   void              OnPaint(wxPaintEvent& event) ;
-   virtual void         Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL) ;
-   WXWidget     GetMacControl() { return m_macControl ;}
-
-protected:
-   // For controls like radiobuttons which are really composite
-   WXWidget m_macControl ;
-   void*    m_macControlAction ;
-   bool     m_macControlIsShown ;
-   wxList   m_subControls;
-   int      m_macHorizontalBorder ;
-   int      m_macVerticalBorder ;
-
-   virtual wxSize DoGetBestSize() const;
-
-private:
-   DECLARE_EVENT_TABLE()
+   void                 OnKeyDown( wxKeyEvent &event ) ;
 };
 
-
-wxControl *wxFindControlFromMacControl(WXWidget inControl ) ;
-void wxAssociateControlWithMacControl(WXWidget inControl, wxControl *control) ;
-void wxRemoveMacControlAssociation(wxControl *control) ;
-
 #endif
     // _WX_CONTROL_H_
index 78aa2f4d5f2f44eac7f0f700f60afa261a1da758..5968f65705ade0610a9066f891e334deed4e1b98 100644 (file)
@@ -64,6 +64,8 @@ public:
 
     bool Create(const wxNativeFontInfo& info);
 
+    bool MacCreateThemeFont( wxUint16 themeFontID ) ;
+    
     virtual ~wxFont();
 
     // assignment
@@ -97,11 +99,12 @@ public:
     virtual bool GetNoAntiAliasing() ;
 
     // Mac-specific, risks to change, don't use in portable code
-    short GetMacFontNum() const;
-    short GetMacFontSize() const;
-    wxByte  GetMacFontStyle() const;
-    wxUint32 GetMacATSUFontID() const;
-
+    short MacGetFontNum() const;
+    short MacGetFontSize() const;
+    wxByte  MacGetFontStyle() const;
+    wxUint32 MacGetATSUFontID() const;
+    wxUint32 MacGetATSUAdditionalQDStyles() const;
+    wxUint16 MacGetThemeFontID() const ;
 protected:
     // common part of all ctors
     void Init();
index f92f7196fcaf0dbfe3aa73397ef937e8af797589..1620419b9b409804309d20801278614ef36dcbee 100644 (file)
@@ -62,10 +62,6 @@ public:
     // override some more virtuals
     virtual bool Enable(bool enable = TRUE) ;
 
-    // get the origin of the client area (which may be different from (0, 0)
-    // if the frame has a toolbar) in client coordinates
-    virtual wxPoint GetClientAreaOrigin() const;
-
     // event handlers
     void OnActivate(wxActivateEvent& event);
     void OnSysColourChanged(wxSysColourChangedEvent& event);
index 77c0f27209ffc97c07e43385b01f9c191ba923ca..d471bb7940e76a4faaee0392ea521e3a07bad8f6 100644 (file)
@@ -127,7 +127,6 @@ public:
 
     // Windows callbacks
 
-    virtual void    SetupColours();
     virtual void    MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ;
        virtual bool MacCanFocus() const { return true ; }
     void OnChar(wxKeyEvent& event);
@@ -136,9 +135,11 @@ public:
     wxArrayString   m_stringArray ;
     wxListDataArray m_dataArray ;
     wxArrayInt      m_selectionPreImage ;
+    wxArrayLong     m_idArray ;
+    wxUint32        m_nextId ;
+    
     void            MacSetRedraw( bool doDraw ) ;
 protected:
-    void            MacDestroy() ;
     void            MacDelete( int n ) ;
     void            MacInsert( int n , const wxString& item) ;
     void            MacAppend( const wxString& item) ;
index 2f0c5cb7e014509aa52041caa562a18991ceb23a..c64fcbb0b37104a61192165d0b3c39280a8ff286 100644 (file)
@@ -20,6 +20,7 @@
 #ifdef __DARWIN__
 #    include <Carbon/Carbon.h>
 #else
+#    include <Debugging.h>
 #    include <Quickdraw.h>
 #    include <Appearance.h>
 #    include <Folders.h>
@@ -62,6 +63,24 @@ private:
     short           m_textMode ;
 } ;
 
+class WXDLLEXPORT wxMacPortSaver
+{
+    DECLARE_NO_COPY_CLASS(wxMacPortSaver)
+        
+public:
+    wxMacPortSaver( GrafPtr port ) 
+    {
+        ::GetPort( &m_port ) ;
+        ::SetPort( port ) ;
+    }
+    ~wxMacPortSaver()
+    {
+        ::SetPort( m_port ) ;
+    }
+private :
+    GrafPtr m_port ;
+} ;
+
 class WXDLLEXPORT wxMacPortSetter
 {
     DECLARE_NO_COPY_CLASS(wxMacPortSetter)
@@ -74,7 +93,11 @@ private:
     const wxDC* m_dc ;
 } ;
 
-class WXDLLEXPORT wxMacWindowClipper
+/*
+ Clips to the visible region of a control within the current port
+ */
+class WXDLLEXPORT wxMacWindowClipper : public wxMacPortSaver
 {
     DECLARE_NO_COPY_CLASS(wxMacWindowClipper)
         
@@ -86,6 +109,7 @@ private:
     RgnHandle m_newClip ;
 } ;
 
+/*
 class wxMacDrawingHelper
 {
     DECLARE_NO_COPY_CLASS(wxMacDrawingHelper)
@@ -105,6 +129,7 @@ private:
     PenState  m_savedPenState ;
     bool      m_ok ;
 } ;
+*/
 
 // app.h
 bool wxMacConvertEventToRecord( EventRef event , EventRecord *rec) ;
@@ -118,9 +143,9 @@ WXDLLEXPORT void wxMacFilename2FSSpec( const wxChar *path , FSSpec *spec ) ;
 #  ifndef __DARWIN__
 // Mac file names are POSIX (Unix style) under Darwin, so these are not needed
 WXDLLEXPORT wxString wxMacFSSpec2UnixFilename( const FSSpec *spec ) ;
-WXDLLEXPORT void wxUnixFilename2FSSpec( const wxChar *path , FSSpec *spec ) ;
-WXDLLEXPORT wxString wxMac2UnixFilename( const wxChar *s) ;
-WXDLLEXPORT wxString wxUnix2MacFilename( const wxChar *s);
+WXDLLEXPORT void wxUnixFilename2FSSpec( const char *path , FSSpec *spec ) ;
+WXDLLEXPORT wxString wxMac2UnixFilename( const char *s) ;
+WXDLLEXPORT wxString wxUnix2MacFilename( const char *s);
 #  endif
 
 // utils.h
@@ -149,6 +174,105 @@ void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bi
 #define MAC_WXPOINTPTR(a) ((Point*)a)
 #define MAC_WXHMENU(a) ((MenuHandle)a)
 
+struct wxOpaqueWindowRef
+{
+    wxOpaqueWindowRef( WindowRef ref ) { m_data = ref ; }
+    operator WindowRef() { return m_data ; } 
+private :
+    WindowRef m_data ;
+} ;
+
+wxWindow *wxFindControlFromMacControl(ControlRef inControl ) ;
+wxTopLevelWindowMac* wxFindWinFromMacWindow( WindowRef inWindow ) ;
+extern wxWindow* g_MacLastWindow ;
+pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) ;
+Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxSize &size ) ;
+
+template<typename T> EventParamType wxMacGetEventParamType() { wxFAIL_MSG( wxT("Unknown Param Type") ) ; return 0 ; }
+template<> inline EventParamType wxMacGetEventParamType<RgnHandle>() { return typeQDRgnHandle ; }
+template<> inline EventParamType wxMacGetEventParamType<ControlRef>() { return typeControlRef ; }
+template<> inline EventParamType wxMacGetEventParamType<WindowRef>() { return typeWindowRef ; }
+template<> inline EventParamType wxMacGetEventParamType<MenuRef>() { return typeMenuRef ; }
+template<> inline EventParamType wxMacGetEventParamType<EventRef>() { return typeEventRef ; }
+template<> inline EventParamType wxMacGetEventParamType<Point>() { return typeQDPoint ; }
+template<> inline EventParamType wxMacGetEventParamType<Rect>() { return typeQDRectangle ; }
+template<> inline EventParamType wxMacGetEventParamType<Boolean>() { return typeBoolean ; }
+#if TARGET_API_MAC_OSX
+template<> inline EventParamType wxMacGetEventParamType<HIPoint>() { return typeHIPoint ; }
+template<> inline EventParamType wxMacGetEventParamType<HISize>() { return typeHISize ; }
+template<> inline EventParamType wxMacGetEventParamType<HIRect>() { return typeHIRect ; }
+template<> inline EventParamType wxMacGetEventParamType<void*>() { return typeVoidPtr ; }
+#endif
+template<> inline EventParamType wxMacGetEventParamType<Collection>() { return typeCollection ; }
+template<> inline EventParamType wxMacGetEventParamType<CGContextRef>() { return typeCGContextRef ; }
+/*
+These are ambiguous
+template<> EventParamType wxMacGetEventParamType<GrafPtr>() { return typeGrafPtr ; }
+template<> EventParamType wxMacGetEventParamType<OSStatus>() { return typeOSStatus ; }
+template<> EventParamType wxMacGetEventParamType<CFIndex>() { return typeCFIndex ; }
+template<> EventParamType wxMacGetEventParamType<GWorldPtr>() { return typeGWorldPtr ; }
+*/
+
+class wxMacCarbonEvent
+{
+    
+public :
+    wxMacCarbonEvent( EventRef event ) 
+    {
+        m_eventRef = event ;
+    }
+    
+    OSStatus GetParameter( EventParamName inName, EventParamType inDesiredType, UInt32 inBufferSize, void * outData) ;
+    
+    template <typename T> OSStatus GetParameter( EventParamName inName, EventParamType type , T *data )
+    {
+        return GetParameter( inName, type , sizeof( T ) , data ) ;
+    }
+    template <typename T> OSStatus GetParameter( EventParamName inName, T *data )
+    {
+        return GetParameter<T>( inName, wxMacGetEventParamType<T>() , data ) ;
+    }
+    
+    template <typename T> T GetParameter( EventParamName inName )
+    {
+        T value ;
+        verify_noerr( GetParameter<T>( inName, &value ) ) ;
+        return value ;
+    }
+    template <typename T> T GetParameter( EventParamName inName, EventParamType inDesiredType )
+    {
+        T value ;
+        verify_noerr( GetParameter<T>( inName, inDesiredType , &value ) ) ;
+        return value ;
+    }
+
+
+    OSStatus SetParameter( EventParamName inName, EventParamType inType, UInt32 inSize, void * inData) ;
+    template <typename T> OSStatus SetParameter( EventParamName inName, EventParamType type , T *data )
+    {
+        return SetParameter( inName, type , sizeof( T ) , data ) ;
+    }
+    template <typename T> OSStatus SetParameter( EventParamName inName, T *data )
+    {
+        return SetParameter<T>( inName, wxMacGetEventParamType<T>() , data ) ;
+    }
+    
+    EventKind GetKind()
+    {
+        return ::GetEventKind( m_eventRef ) ;
+    }
+    EventTime GetTime()
+    {
+        return ::GetEventTime( m_eventRef ) ;
+    }
+    UInt32 GetTicks()
+    {
+        return EventTimeToTicks( GetTime() ) ;
+    }
+protected :
+    EventRef m_eventRef ;
+} ;
+
 #endif // wxUSE_GUI
 
 //---------------------------------------------------------------------------
index d406494902a75c21192192ee23f85320f5b4dfbe..cf46612db917cb4102bbe88afd13c7e2e4bc1cb4 100644 (file)
 #  include "Printing.h"
 #endif
 
-#if TARGET_CARBON 
 #if !PM_USE_SESSION_APIS
 #error "only Carbon Printing Session API is supported"
 #endif
-#endif
 
 class wxNativePrintData
 {
@@ -52,8 +50,6 @@ public :
     static wxNativePrintData* Create() ;
 } ;
 
-#if TARGET_CARBON
-
 class wxMacCarbonPrintData : public wxNativePrintData 
 {
 public :
@@ -80,28 +76,4 @@ public :
     PMPrintSettings         m_macPrintSettings ;
 } ;
 
-#else
-
-class wxMacClassicPrintData : public wxNativePrintData
-{
-public :
-                            wxMacClassicPrintData() ;
-                            ~wxMacClassicPrintData() ;
-    virtual void            TransferFrom( wxPrintData * ) ;
-    virtual void            TransferTo( wxPrintData * )  ;
-    virtual void            TransferFrom( wxPageSetupDialogData * ) ;
-    virtual void            TransferTo( wxPageSetupDialogData * ) ;
-    virtual void            TransferFrom( wxPrintDialogData * )  ;
-    virtual void            TransferTo( wxPrintDialogData * ) ;
-    virtual void            CopyFrom( wxNativePrintData * ) ;
-    virtual int             ShowPrintDialog() ;
-    virtual int             ShowPageSetupDialog() ;
-private :
-    virtual void            ValidateOrCreate() ;
-public :
-    THPrint                 m_macPrintSettings ;
-} ;
-
-#endif
-
 #endif
diff --git a/include/wx/mac/carbon/setup.h b/include/wx/mac/carbon/setup.h
deleted file mode 100644 (file)
index b67d2f2..0000000
+++ /dev/null
@@ -1,938 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        setup.h
-// Purpose:     Configuration for the library
-// Author:      Stefan Csomor
-// Modified by: Stefan Csomor
-// Created:     1998-01-01
-// RCS-ID:      $Id$
-// Copyright:   (c) Stefan Csomor
-// Licence:     wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef _WX_SETUP_H_
-#define _WX_SETUP_H_
-
-#define wxUSE_LIBMSPACK 0
-#define wxUSE_SOUND 1
-// ----------------------------------------------------------------------------
-// global settings
-// ----------------------------------------------------------------------------
-
-// define this to 0 when building wxBase library - this can also be done from
-// makefile/project file overriding the value here
-#ifndef wxUSE_GUI
-    #define wxUSE_GUI            1
-#endif // wxUSE_GUI
-
-// ----------------------------------------------------------------------------
-// compatibility settings
-// ----------------------------------------------------------------------------
-
-// This setting determines the compatibility with 2.0 API: set it to 1 to
-// enable it
-//
-// Default is 0.
-//
-// Recommended setting: 0 (please update your code instead!)
-#define WXWIN_COMPATIBILITY_2_2 0
-
-// This setting determines the compatibility with 2.2 API: set it to 0 to
-// flag all cases of using deprecated functions.
-//
-// Default is 1 but please try building your code with 0 as the default will
-// change to 0 in the next version and the deprecated functions will disappear
-// in the version after it completely.
-//
-// Recommended setting: 0 (please update your code)
-#define WXWIN_COMPATIBILITY_2_4 1
-
-// in wxMSW version 2.1.11 and earlier, wxIcon always derives from wxBitmap,
-// but this is very dangerous because you can mistakenly pass an icon instead
-// of a bitmap to a function taking "const wxBitmap&" - which will *not* work
-// because an icon is not a valid bitmap
-//
-// Starting from 2.1.12, you have the choice under this backwards compatible
-// behaviour (your code will still compile, but probably won't behave as
-// expected!) and not deriving wxIcon class from wxBitmap, but providing a
-// conversion ctor wxBitmap(const wxIcon&) instead.
-//
-// Recommended setting: 0
-#define wxICON_IS_BITMAP    0
-
-// Define as 1 for font size to be backward compatible to 1.63 and earlier.
-// 1.64 and later define point sizes to be compatible with Windows.
-//
-// Default is 0
-//
-// Recommended setting: 0
-#define wxFONT_SIZE_COMPATIBILITY    0
-
-// Set to 0 for accurate dialog units, else 1 to be as per 2.1.16 and before.
-// If migrating between versions, your dialogs may seem to shrink.
-//
-// Default is 1
-//
-// Recommended setting: 0 (the new calculations are more correct!)
-#define wxDIALOG_UNIT_COMPATIBILITY   1
-
-// ----------------------------------------------------------------------------
-// debugging settings
-// ----------------------------------------------------------------------------
-
-// Generic comment about debugging settings: they are very useful if you don't
-// use any other memory leak detection tools such as Purify/BoundsChecker, but
-// are probably redundant otherwise. Also, Visual C++ CRT has the same features
-// as wxWindows memory debugging subsystem built in since version 5.0 and you
-// may prefer to use it instead of built in memory debugging code because it is
-// faster and more fool proof.
-//
-// Using VC++ CRT memory debugging is enabled by default in debug mode
-// (__WXDEBUG__) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0)
-// and if __NO_VC_CRTDBG__ is not defined.
-
-// If 1, enables wxDebugContext, for writing error messages to file, etc. If
-// __WXDEBUG__ is not defined, will still use normal memory operators. It's
-// recommended to set this to 1, since you may well need to output an error log
-// in a production version (or non-debugging beta).
-//
-// Default is 1.
-//
-// Recommended setting: 1 but see comment above
-#ifndef __MWERKS__
-#define wxUSE_DEBUG_CONTEXT       0
-#else
-#define wxUSE_DEBUG_CONTEXT       1
-#endif
-
-// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF*
-// __WXDEBUG__ is also defined.
-//
-// WARNING: this code may not work with all architectures, especially if
-// alignment is an issue. This switch is currently ignored for mingw / cygwin
-//
-// Default is 1
-//
-// Recommended setting: 1 but see comment in the beginning of this section
-#define wxUSE_MEMORY_TRACING 1
-
-// In debug mode, cause new and delete to be redefined globally.
-// If this causes problems (e.g. link errors which is a common problem
-// especially if you use another library which also redefines the global new
-// and delete), set this to 0.
-// This switch is currently ignored for mingw / cygwin
-//
-// Default is 0
-//
-// Recommended setting: 0
-#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
-
-// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
-// this causes problems (e.g. link errors), set this to 0. You may need to set
-// this to 0 if using templates (at least for VC++). This switch is currently
-// ignored for mingw / cygwin 
-//
-// Default is 0
-//
-// Recommended setting: 0
-#define wxUSE_DEBUG_NEW_ALWAYS 0
-
-// wxHandleFatalExceptions() may be used to catch the program faults at run
-// time and, instead of terminating the program with a usual GPF message box,
-// call the user-defined wxApp::OnFatalException() function. If you set
-// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work.
-//
-// This setting is for Win32 only and can only be enabled if your compiler
-// supports Win32 structured exception handling (currently only VC++ does)
-//
-// Default is 1
-//
-// Recommended setting: 1 if your compiler supports it.
-#ifdef _MSC_VER
-    #define wxUSE_ON_FATAL_EXCEPTION 1
-#else
-    #define wxUSE_ON_FATAL_EXCEPTION 0
-#endif
-
-// ----------------------------------------------------------------------------
-// Unicode support
-// ----------------------------------------------------------------------------
-
-// Set wxUSE_UNICODE to 1 to compile wxWindows in Unicode mode: wxChar will be
-// defined as wchar_t, wxString will use Unicode internally. If you set this
-// to 1, you must use wxT() macro for all literal strings in the program.
-//
-// Unicode is currently only fully supported under Windows NT/2000 (Windows 9x
-// doesn't support it and the programs compiled in Unicode mode will not run
-// under 9x).
-//
-// Default is 0
-//
-// Recommended setting: 0 (unless you only plan to use Windows NT/2000)
-#if TARGET_CARBON && ( !defined(__MWERKS__) || !defined(__MACH__) )
-#define wxUSE_UNICODE 1
-#else
-#define wxUSE_UNICODE 0
-#endif
-// Setting wxUSE_WCHAR_T to 1 gives you some degree of Unicode support without
-// compiling the program in Unicode mode. More precisely, it will be possible
-// to construct wxString from a wide (Unicode) string and convert any wxString
-// to Unicode.
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_WCHAR_T 1
-
-// ----------------------------------------------------------------------------
-// global features
-// ----------------------------------------------------------------------------
-
-// Compile library in exception-safe mode? If set to 1, the library will try to
-// behave correctly in presence of exceptions (even though it still will not
-// use the exceptions itself) and notify the user code about any unhandled
-// exceptions. If set to 0, propagation of the exceptions through the library
-// code will lead to undefined behaviour -- but the code itself will be
-// slightly smaller and faster.
-//
-// Default is 1
-//
-// Recommended setting: depends on whether you intend to use C++ exceptions
-//                      in your own code (1 if you do, 0 if you don't)
-#define wxUSE_EXCEPTIONS    1
-
-// Support for message/error logging. This includes wxLogXXX() functions and
-// wxLog and derived classes. Don't set this to 0 unless you really know what
-// you are doing.
-//
-// Default is 1
-//
-// Recommended setting: 1 (always)
-#define wxUSE_LOG 1
-
-// Recommended setting: 1 (always)
-#define wxUSE_LOGWINDOW 1
-
-// Recommended setting: 1 (always)
-#define wxUSE_LOGGUI 1
-
-// Recommended setting: 1 (always)
-#define wxUSE_LOG_DIALOG 1
-
-// Support for command line parsing using wxCmdLineParser class.
-//
-// Default is 1
-//
-// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
-#define wxUSE_CMDLINE_PARSER 1
-
-// Support for multithreaded applications: if 1, compile in thread classes
-// (thread.h) and make the library a bit more thread safe. Although thread
-// support is quite stable by now, you may still consider recompiling the
-// library without it if you have no use for it - this will result in a
-// somewhat smaller and faster operation.
-//
-// This is ignored under Win16, threads are only supported under Win32.
-//
-// Default is 1
-//
-// Recommended setting: 0 unless you do plan to develop MT applications
-#define wxUSE_THREADS 1
-
-// If enabled (1), compiles wxWindows streams classes
-#define wxUSE_STREAMS       1
-
-// Use standard C++ streams if 1. If 0, use wxWin streams implementation.
-#ifndef __MWERKS__
-#define wxUSE_STD_IOSTREAM  0
-#else
-#define wxUSE_STD_IOSTREAM  1
-#endif
-
-// Use serialization (requires utils/serialize)
-#define wxUSE_SERIAL        0
-
-// ----------------------------------------------------------------------------
-// non GUI features selection
-// ----------------------------------------------------------------------------
-
-// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit
-// integer which is implemented in terms of native 64 bit integers if any or
-// uses emulation otherwise.
-//
-// This class is required by wxDateTime and so you should enable it if you want
-// to use wxDateTime. For most modern platforms, it will use the native 64 bit
-// integers in which case (almost) all of its functions are inline and it
-// almost does not take any space, so there should be no reason to switch it
-// off.
-//
-// Recommended setting: 1
-#define wxUSE_LONGLONG      1
-
-// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
-// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
-//
-// Default is 1
-//
-// Recommended setting: 1 (wxFile is highly recommended as it is required by
-// i18n code, wxFileConfig and others)
-#define wxUSE_FILE          1
-#define wxUSE_FFILE         1
-
-// use wxTextBuffer class: required by wxTextFile
-#define wxUSE_TEXTBUFFER    1
-
-// use wxTextFile class: requires wxFile and wxTextBuffer, required by
-// wxFileConfig
-#define wxUSE_TEXTFILE      1
-
-// i18n support: _() macro, wxLocale class. Requires wxTextFile.
-#define wxUSE_INTL          1
-
-// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which
-// allow to manipulate dates, times and time intervals. wxDateTime replaces the
-// old wxTime and wxDate classes which are still provided for backwards
-// compatibility (and implemented in terms of wxDateTime).
-//
-// Note that this class is relatively new and is still officially in alpha
-// stage because some features are not yet (fully) implemented. It is already
-// quite useful though and should only be disabled if you are aiming at
-// absolutely minimal version of the library.
-//
-// Requires: wxUSE_LONGLONG
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_DATETIME      1
-
-// Set wxUSE_TIMER to 1 to compile wxTimer class
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_TIMER         1
-
-// Use wxStopWatch clas.
-//
-// Default is 1
-//
-// Recommended setting: 1 (needed by wxSocket)
-#define wxUSE_STOPWATCH     1
-
-// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes
-// which allow the application to store its settings in the persistent
-// storage. Setting this to 1 will also enable on-demand creation of the
-// global config object in wxApp.
-//
-// See also wxUSE_CONFIG_NATIVE below.
-//
-// Recommended setting: 1
-#define wxUSE_CONFIG        1
-
-// If wxUSE_CONFIG is 1, you may choose to use either the native config
-// classes under Windows (using .INI files under Win16 and the registry under
-// Win32) or the portable text file format used by the config classes under
-// Unix.
-//
-// Default is 1 to use native classes. Note that you may still use
-// wxFileConfig even if you set this to 1 - just the config object created by
-// default for the applications needs will be a wxRegConfig or wxIniConfig and
-// not wxFileConfig.
-//
-// Recommended setting: 1
-#define wxUSE_CONFIG_NATIVE   1
-
-// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
-// to connect/disconnect from the network and be notified whenever the dial-up
-// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_DIALUP_MANAGER   1
-
-// Compile in classes for run-time DLL loading and function calling.
-// Required by wxUSE_DIALUP_MANAGER.
-//
-// This setting is for Win32 only
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_DYNLIB_CLASS  1
-
-// experimental extension, use with caution.
-#define wxUSE_DYNAMIC_LOADER  0
-
-// Set to 1 to use socket classes
-#define wxUSE_SOCKETS       1
-
-// Set to 1 to enable virtual file systems (required by wxHTML)
-#define wxUSE_FILESYSTEM    1
-
-// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM)
-#define wxUSE_FS_ZIP        1
-
-// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM)
-#define wxUSE_FS_INET       1
-
-// Set to 1 to compile wxZipInput/OutputStream classes.
-#define wxUSE_ZIPSTREAM     1
-
-// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by
-// wxUSE_LIBPNG and wxUSE_GZSTREAM.
-#define wxUSE_ZLIB          1
-
-// Set to 1 to compile wxGzipInput/OutputStream classes. Requires wxUSE_ZLIB.
-#define wxUSE_GZSTREAM      1
-
-// If enabled, the code written by Apple will be used to write, in a portable
-// way, float on the disk. See extended.c for the license which is different
-// from wxWindows one.
-//
-// Default is 1.
-//
-// Recommended setting: 1 unless you don't like the license terms (unlikely)
-#define wxUSE_APPLE_IEEE          1
-
-// Joystick support class
-#define wxUSE_JOYSTICK            1
-
-// wxFontMapper class
-#define wxUSE_FONTMAP 1
-
-// wxMimeTypesManager class
-#define wxUSE_MIMETYPE 1
-
-// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP
-// or wxURL you need to set this to 1.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_PROTOCOL 1
-
-// The settings for the individual URL schemes
-#define wxUSE_PROTOCOL_FILE 1
-#define wxUSE_PROTOCOL_FTP 1
-#define wxUSE_PROTOCOL_HTTP 1
-
-// Define this to use wxURL class.
-#define wxUSE_URL 1
-
-// Support for regular expression matching via wxRegEx class: enable this to
-// use POSIX regular expressions in your code. You need to compile regex
-// library from src/regex to use it under Windows.
-//
-// Default is 0
-//
-// Recommended setting: 1 if your compiler supports it, if it doesn't please
-// contribute us a makefile for src/regex for it
-#define wxUSE_REGEX       0
-
-// wxSystemOptions class
-#define wxUSE_SYSTEM_OPTIONS 1
-
-// wxWave class
-#define wxUSE_WAVE      1
-
-// XML parsing classes. Note that their API will change in the future, so
-// using wxXmlDocument and wxXmlNode in your app is not recommended.
-//
-// Default is 1
-//
-// Recommended setting: 1 (needed by XRC)
-#define wxUSE_XML       1
-
-// ----------------------------------------------------------------------------
-// Individual GUI controls
-// ----------------------------------------------------------------------------
-
-// You must set wxUSE_CONTROLS to 1 if you are using any controls at all
-// (without it, wxControl class is not compiled)
-//
-// Default is 1
-//
-// Recommended setting: 1 (don't change except for very special programs)
-#define wxUSE_CONTROLS     1
-
-// wxPopupWindow class is a top level transient window. It is currently used
-// to implement wxTipWindow but doesn't work yet under Mac.
-//
-// Default is  0
-//
-// Recommended setting: 0
-#define wxUSE_POPUPWIN     0
-
-// wxTipWindow allows to implement the custom tooltips, it is used by the
-// context help classes. Requires wxUSE_POPUPWIN.
-//
-// Default is 0
-//
-// Recommended setting: 0
-#define wxUSE_TIPWINDOW    0
-
-// Each of the settings below corresponds to one wxWindows control. They are
-// all switched on by default but may be disabled if you are sure that your
-// program (including any standard dialogs it can show!) doesn't need them and
-// if you desperately want to save some space. If you use any of these you must
-// set wxUSE_CONTROLS as well.
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_BUTTON       1    // wxButton
-#define wxUSE_BMPBUTTON    1    // wxBitmapButton
-#define wxUSE_CALENDARCTRL 1    // wxCalendarCtrl
-#define wxUSE_CHECKBOX     1    // wxCheckBox
-#define wxUSE_CHECKLISTBOX 1    // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
-#define wxUSE_CHOICE       1    // wxChoice
-#define wxUSE_COMBOBOX     1    // wxComboBox
-#define wxUSE_GAUGE        1    // wxGauge
-#define wxUSE_LISTBOX      1    // wxListBox
-#define wxUSE_LISTCTRL     1    // wxListCtrl
-#define wxUSE_RADIOBOX     1    // wxRadioBox
-#define wxUSE_RADIOBTN     1    // wxRadioButton
-#define wxUSE_SCROLLBAR    1    // wxScrollBar
-#define wxUSE_SLIDER       1    // wxSlider
-#define wxUSE_SPINBTN      1    // wxSpinButton
-#define wxUSE_SPINCTRL     1    // wxSpinCtrl
-#define wxUSE_STATBOX      1    // wxStaticBox
-#define wxUSE_STATLINE     1    // wxStaticLine
-#define wxUSE_STATTEXT     1    // wxStaticText
-#define wxUSE_STATBMP      1    // wxStaticBitmap
-#define wxUSE_TEXTCTRL     1    // wxTextCtrl
-#define wxUSE_TOGGLEBTN    1    // requires wxButton
-#define wxUSE_TREECTRL     1    // wxTreeCtrl
-
-// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
-// below either wxStatusBar95 or a generic wxStatusBar will be used.
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_STATUSBAR    1
-
-// Two status bar implementations are available under Win32: the generic one
-// or the wrapper around native control. For native look and feel the native
-// version should be used.
-//
-// Default is 1.
-//
-// Recommended setting: 1 (there is no advantage in using the generic one)
-#define wxUSE_NATIVE_STATUSBAR        1
-
-// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar
-// classes at all. Otherwise, use the native toolbar class unless
-// wxUSE_TOOLBAR_NATIVE is 0.
-//
-// Default is 1 for all settings.
-//
-// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE.
-#define wxUSE_TOOLBAR 1
-#define wxUSE_TOOLBAR_NATIVE 1
-
-// this setting is obsolete, value is ignored
-#define wxUSE_BUTTONBAR    1
-
-// wxNotebook is a control with several "tabs" located on one of its sides. It
-// may be used ot logically organise the data presented to the user instead of
-// putting everything in one huge dialog. It replaces wxTabControl and related
-// classes of wxWin 1.6x.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_NOTEBOOK 1
-
-// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of
-// the tabs
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_LISTBOOK 1
-
-// wxTabDialog is a generic version of wxNotebook but it is incompatible with
-// the new class. It shouldn't be used in new code.
-//
-// Default is 0.
-//
-// Recommended setting: 0 (use wxNotebook)
-#define wxUSE_TAB_DIALOG    0
-
-// wxGrid class
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_GRID         1
-
-// wxProperty[Value/Form/List] classes, used by Dialog Editor
-#define wxUSE_PROPSHEET    0
-
-// ----------------------------------------------------------------------------
-// Miscellaneous GUI stuff
-// ----------------------------------------------------------------------------
-
-// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
-#define wxUSE_ACCEL 1
-
-// Use wxCaret: a class implementing a "cursor" in a text control (called caret
-// under Windows).
-//
-// Default is 1.
-//
-// Recommended setting: 1 (can be safely set to 0, not used by the library)
-#define wxUSE_CARET         1
-
-// Use wxDisplay class: it allows enumerating all displays on a system and
-// working with them.
-//
-// Default is 0 because it isn't yet implemented on all platforms
-//
-// Recommended setting: 1 if you need it, can be safely set to 0 otherwise
-#define wxUSE_DISPLAY       0
-
-// Miscellaneous geometry code: needed for Canvas library
-#define wxUSE_GEOMETRY            1
-
-// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and
-// wxListCtrl.
-//
-// Default is 1.
-//
-// Recommended setting: 1 (set it to 0 if you don't use any of the controls
-// enumerated above, then this class is mostly useless too)
-#define wxUSE_IMAGLIST      1
-
-// Use wxMenu, wxMenuBar, wxMenuItem.
-//
-// Default is 1.
-//
-// Recommended setting: 1 (can't be disabled under MSW)
-#define wxUSE_MENUS         1
-
-// Use wxSashWindow class.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_SASH          1
-
-// Use wxSplitterWindow class.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_SPLITTER      1
-
-// Use wxToolTip and wxWindow::Set/GetToolTip() methods.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_TOOLTIPS      1
-
-// wxValidator class and related methods
-#define wxUSE_VALIDATORS    1
-
-// wxDC cacheing implementation
-#define wxUSE_DC_CACHEING 0
-
-// ----------------------------------------------------------------------------
-// common dialogs
-// ----------------------------------------------------------------------------
-
-// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g.
-// file selector, printer dialog). Switching this off also switches off the
-// printing architecture and interactive wxPrinterDC.
-//
-// Default is 1
-//
-// Recommended setting: 1 (unless it really doesn't work)
-#define wxUSE_COMMON_DIALOGS 1
-
-// wxBusyInfo displays window with message when app is busy. Works in same way
-// as wxBusyCursor
-#define wxUSE_BUSYINFO      1
-
-// Use single/multiple choice dialogs.
-//
-// Default is 1
-//
-// Recommended setting: 1 (used in the library itself)
-#define wxUSE_CHOICEDLG     1
-
-// Use colour picker dialog
-//
-// Default is 1
-//
-// Recommended setting: 1
-#define wxUSE_COLOURDLG     1
-
-// wxDirDlg class for getting a directory name from user
-#define wxUSE_DIRDLG 1
-
-// TODO: setting to choose the generic or native one
-
-// Use file open/save dialogs.
-//
-// Default is 1
-//
-// Recommended setting: 1 (used in many places in the library itself)
-#define wxUSE_FILEDLG       1
-
-// Use find/replace dialogs.
-//
-// Default is 1
-//
-// Recommended setting: 1 (but may be safely set to 0)
-#define wxUSE_FINDREPLDLG       1
-
-// Use font picker dialog
-//
-// Default is 1
-//
-// Recommended setting: 1 (used in the library itself)
-#define wxUSE_FONTDLG       1
-
-// Use wxMessageDialog and wxMessageBox.
-//
-// Default is 1
-//
-// Recommended setting: 1 (used in the library itself)
-#define wxUSE_MSGDLG        1
-
-// progress dialog class for lengthy operations
-#define wxUSE_PROGRESSDLG 1
-
-// support for startup tips (wxShowTip &c)
-#define wxUSE_STARTUP_TIPS 1
-
-// text entry dialog and wxGetTextFromUser function
-#define wxUSE_TEXTDLG 1
-
-// number entry dialog
-#define wxUSE_NUMBERDLG 1
-
-// splash screen class
-#define wxUSE_SPLASH 1
-
-// wizards
-#define wxUSE_WIZARDDLG 1
-
-// ----------------------------------------------------------------------------
-// Metafiles support
-// ----------------------------------------------------------------------------
-
-// Windows supports the graphics format known as metafile which is, though not
-// portable, is widely used under Windows and so is supported by wxWin (under
-// Windows only, of course). Win16 (Win3.1) used the so-called "Window
-// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in
-// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by
-// default, WMFs will be used under Win16 and EMFs under Win32. This may be
-// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting
-// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile
-// in any metafile related classes at all.
-//
-// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS.
-//
-// Recommended setting: default or 0 for everything for portable programs.
-#define wxUSE_METAFILE              1
-#define wxUSE_ENH_METAFILE          1
-#define wxUSE_WIN_METAFILES_ALWAYS  0
-
-// ----------------------------------------------------------------------------
-// Big GUI components
-// ----------------------------------------------------------------------------
-
-// Set to 0 to disable document/view architecture
-#define wxUSE_DOC_VIEW_ARCHITECTURE 1
-
-// Set to 0 to disable MDI document/view architecture
-#define wxUSE_MDI_ARCHITECTURE    1
-
-// Set to 0 to disable print/preview architecture code
-#define wxUSE_PRINTING_ARCHITECTURE  1
-
-// wxHTML sublibrary allows to display HTML in wxWindow programs and much,
-// much more.
-//
-// Default is 1.
-//
-// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a
-// smaller library.
-#define wxUSE_HTML          1
-
-// OpenGL canvas
-#define wxUSE_GLCANVAS       0
-
-// ----------------------------------------------------------------------------
-// Data transfer
-// ----------------------------------------------------------------------------
-
-// Use wxClipboard class for clipboard copy/paste.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_CLIPBOARD     1
-
-// Use wxDataObject and related classes. Needed for clipboard and OLE drag and
-// drop
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_DATAOBJ       1
-
-// Use wxDropTarget and wxDropSource classes for drag and drop (this is
-// different from "built in" drag and drop in wxTreeCtrl which is always
-// available). Requires wxUSE_DATAOBJ.
-//
-// Default is 1.
-//
-// Recommended setting: 1
-#define wxUSE_DRAG_AND_DROP 1
-
-// ----------------------------------------------------------------------------
-// miscellaneous settings
-// ----------------------------------------------------------------------------
-
-// wxSingleInstanceChecker class allows to verify at startup if another program
-// instance is running (it is only available under Win32)
-//
-// Default is 1
-//
-// Recommended setting: 1 (the class is tiny, disabling it won't save much
-// space)
-#define wxUSE_SNGLINST_CHECKER  1
-
-#define wxUSE_DRAGIMAGE   1
-
-#define wxUSE_IPC         0
-                                // 0 for no interprocess comms
-#define wxUSE_HELP        1
-                                // 0 for no help facility
-#define wxUSE_WXHTML_HELP 1
-                                // 0 for no MS HTML Help
-#define wxUSE_RESOURCES   1
-                                // 0 for no wxGetResource/wxWriteResource
-#define wxUSE_CONSTRAINTS 1
-                                // 0 for no window layout constraint system
-
-#define wxUSE_SPLINES     1
-                                // 0 for no splines
-
-#define wxUSE_MOUSEWHEEL        1
-                                // Include mouse wheel support
-
-// ----------------------------------------------------------------------------
-// postscript support settings
-// ----------------------------------------------------------------------------
-
-// Set to 1 for PostScript device context.
-#define wxUSE_POSTSCRIPT  0
-
-// Set to 1 to use font metric files in GetTextExtent
-#define wxUSE_AFM_FOR_POSTSCRIPT 0
-
-// ----------------------------------------------------------------------------
-// database classes
-// ----------------------------------------------------------------------------
-
-// Define 1 to use ODBC classes
-#define wxUSE_ODBC          0
-
-// For backward compatibility reasons, this parameter now only controls the
-// default scrolling method used by cursors.  This default behavior can be
-// overriden by setting the second param of wxDB::wxDbGetConnection() or
-// wxDb() constructor to indicate whether the connection (and any wxDbTable()s
-// that use the connection) should support forward only scrolling of cursors,
-// or both forward and backward support for backward scrolling cursors is
-// dependent on the data source as well as the ODBC driver being used.
-#define wxODBC_FWD_ONLY_CURSORS     1
-
-// Default is 0.  Set to 1 to use the deprecated classes, enum types, function,
-// member variables.  With a setting of 1, full backward compatability with the
-// 2.0.x release is possible. It is STRONGLY recommended that this be set to 0,
-// as future development will be done only on the non-deprecated
-// functions/classes/member variables/etc.
-#define wxODBC_BACKWARD_COMPATABILITY 0
-
-// ----------------------------------------------------------------------------
-// other compiler (mis)features
-// ----------------------------------------------------------------------------
-
-// Set this to 0 if your compiler can't cope with omission of prototype
-// parameters.
-//
-// Default is 1.
-//
-// Recommended setting: 1 (should never need to set this to 0)
-#define REMOVE_UNUSED_ARG   1
-
-// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix
-// them. Set to 1 for <iostream.h>, 0 for <iostream>
-//
-// Default is 1.
-//
-// Recommended setting: whatever your compiler likes more
-#ifndef __MWERKS__
-#define wxUSE_IOSTREAMH     0
-#else
-#define wxUSE_IOSTREAMH     1
-#endif
-
-// ----------------------------------------------------------------------------
-// image format support
-// ----------------------------------------------------------------------------
-
-// wxImage supports many different image formats which can be configured at
-// compile-time. BMP is always supported, others are optional and can be safely
-// disabled if you don't plan to use images in such format sometimes saving
-// substantial amount of code in the final library.
-//
-// Some formats require an extra library which is included in wxWin sources
-// which is mentioned if it is the case.
-
-// Set to 1 for wxImage support (recommended).
-#define wxUSE_IMAGE         1
-
-// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB.
-#define wxUSE_LIBPNG        1
-
-// Set to 1 for JPEG format support (requires libjpeg)
-#define wxUSE_LIBJPEG       1
-
-// Set to 1 for TIFF format support (requires libtiff)
-#define wxUSE_LIBTIFF       1
-
-// Set to 1 for GIF format support
-#define wxUSE_GIF           1
-
-// Set to 1 for PNM format support
-#define wxUSE_PNM           1
-
-// Set to 1 for PCX format support
-#define wxUSE_PCX           1
-
-// Set to 1 for IFF format support
-#define wxUSE_IFF           0
-
-// Set to 1 for XPM format support
-#define wxUSE_XPM           1
-
-// Set to 1 for MS Icons and Cursors format support
-#define wxUSE_ICO_CUR       1
-
-// Set to 1 to compile in wxPalette class
-#define wxUSE_PALETTE       1
-
-// If 1, enables provision of run-time type information.
-// NOW MANDATORY: don't change.
-#define wxUSE_DYNAMIC_CLASSES     1
-
-#endif
-    // _WX_SETUP_H_
index 9599a60c10ba14943c24b1dbaa80e195e144490b..ec96420817aa3d9182db527c96da5eb1cda7dbcf 100644 (file)
@@ -91,7 +91,6 @@ public:
  
   void Command(wxCommandEvent& event);
     void                     MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ;
-    virtual void            MacUpdateDimensions() ;
 
      wxStaticText*    m_macMinimumStatic ;
      wxStaticText*    m_macMaximumStatic ;
index 9f73a539ed89a5b84ee0962a7c2a7b672474ecf2..6dd85bf43dc78c2527cb7521203eb4dbe13c2868 100644 (file)
@@ -26,31 +26,29 @@ class WXDLLEXPORT wxStaticBox: public wxControl
   DECLARE_DYNAMIC_CLASS(wxStaticBox)
 
  public:
-  inline wxStaticBox() {}
-  inline wxStaticBox(wxWindow *parent, wxWindowID id,
+    inline wxStaticBox() {}
+    inline wxStaticBox(wxWindow *parent, wxWindowID id,
            const wxString& label,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
            long style = 0,
            const wxString& name = wxStaticBoxNameStr)
-  {
-    Create(parent, id, label, pos, size, style, name);
-  }
+    {
+        Create(parent, id, label, pos, size, style, name);
+    }
 
-  bool Create(wxWindow *parent, wxWindowID id,
+    bool Create(wxWindow *parent, wxWindowID id,
            const wxString& label,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
            long style = 0,
            const wxString& name = wxStaticBoxNameStr);
 
-  virtual void Command(wxCommandEvent& WXUNUSED(event)) {};
-  virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {};
+    virtual void Command(wxCommandEvent& WXUNUSED(event)) {};
+    virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {};
 
 
 protected:
-
-DECLARE_EVENT_TABLE()
 };
 
 #endif
index 17ecf98ad00e8b032ce4ee43e8dedbee174dcde7..c5f41c02c41b6e220eabcc3cb61f0ec47538b266 100644 (file)
 
 class WXDLLEXPORT wxStaticText: public wxStaticTextBase
 {
-  DECLARE_DYNAMIC_CLASS(wxStaticText)
- public:
-  inline wxStaticText() : m_label() { }
+public:
+    wxStaticText() { }
 
-  inline wxStaticText(wxWindow *parent, wxWindowID id,
+    wxStaticText(wxWindow *parent, wxWindowID id,
            const wxString& label,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -43,19 +42,12 @@ class WXDLLEXPORT wxStaticText: public wxStaticTextBase
   void SetLabel( const wxString &str ) ;
   bool SetFont( const wxFont &font );
 
-  // operations
-  virtual void Command(wxCommandEvent& WXUNUSED(event)) {};
-  virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {};
-  // events
-  void DrawParagraph(wxDC &dc, wxString paragraph, int &y);
-  void OnPaint( wxPaintEvent &event ) ;
-  void OnDraw( wxDC &dc ) ;
+protected :
+
   virtual wxSize DoGetBestSize() const ;
   virtual bool AcceptsFocus() const { return FALSE; }
- private :
-     wxString    m_label ;
 
-   DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
 };
 
 #endif
index 959c4e618d901d317048f2b5c86fa84dde9660e8..a039ed6ef89fc59f0fce36da164bd8ff742af243 100644 (file)
@@ -41,8 +41,6 @@ class WXDLLEXPORT wxStatusBarMac : public wxStatusBarGeneric
   ////////////////////////////////////////////////////////////////////////
   // Implementation
 
-  virtual void MacSuperEnabled( bool enable ) ;
-
   void OnPaint(wxPaintEvent& event);
 protected:
 
index df3a9643392218ae470b4f7c3aeaecc5873ee579..a8e14fc8645443c8120d49c31d726179ef32b763 100644 (file)
@@ -87,6 +87,7 @@ public:
   // text control under some platforms supports the text styles: these
   // methods allow to apply the given text style to the given selection or to
   // set/get the style which will be used for all appended text
+  virtual bool SetFont( const wxFont &font ) ;
   virtual bool SetStyle(long start, long end, const wxTextAttr& style);
   virtual bool SetDefaultStyle(const wxTextAttr& style);
 
@@ -153,11 +154,20 @@ public:
     void OnUpdateUndo(wxUpdateUIEvent& event);
     void OnUpdateRedo(wxUpdateUIEvent& event);
 
-       virtual bool MacCanFocus() const { return true ; }
+    virtual bool MacCanFocus() const { return true ; }
     virtual bool MacSetupCursor( const wxPoint& pt ) ;
 
-    virtual void      MacSuperShown( bool show ) ;
-    virtual bool     Show(bool show = TRUE) ;
+    virtual void         MacVisibilityChanged() ;
+    virtual void         MacEnabledStateChanged() ;
+
+    virtual void            MacControlUserPaneDrawProc(wxInt16 part) ;
+    virtual wxInt16         MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y) ;
+    virtual wxInt16         MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc) ;
+    virtual void            MacControlUserPaneIdleProc() ;
+    virtual wxInt16         MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers) ;
+    virtual void            MacControlUserPaneActivateProc(bool activating) ;
+    virtual wxInt16         MacControlUserPaneFocusProc(wxInt16 action) ;
+    virtual void            MacControlUserPaneBackgroundProc(void* info) ;
 
 protected:
     // common part of all ctors
@@ -171,12 +181,12 @@ protected:
   bool m_dirty;
 
   // one of the following objects is used for representation, the other one is NULL
-  void*  m_macTE ;
   void*  m_macTXN ;
-  void*  m_macTXNvars ;
-  bool  m_macUsesTXN ;
   unsigned long  m_maxLength ;
-  
+  // need to make this public because of the current implementation via callbacks
+public :  
+  void*  m_macTXNvars ;
+private :
   DECLARE_EVENT_TABLE()
 };
 
index ffb0bcd288f30ff962c2f161a8b87bbc5db52bcf..3f3bdcb54027183a5a978deb8f837282996c118d 100644 (file)
@@ -53,6 +53,8 @@ public:
 
     virtual ~wxTopLevelWindowMac();
 
+    virtual wxPoint GetClientAreaOrigin() const;
+
     // implement base class pure virtuals
     virtual void Maximize(bool maximize = TRUE);
     virtual bool IsMaximized() const;
@@ -77,37 +79,36 @@ public:
                                       const wxSize& size,
                                       long style,
                                       const wxString& name ) ;
-    static WXWindow MacGetWindowInUpdate() { return s_macWindowInUpdate ; }
-    virtual void MacGetPortParams(WXPOINTPTR localOrigin, WXRECTPTR clipRect, WXWindow *window , wxWindowMac** rootwin ) ;
     virtual void ClearBackground() ;
-    virtual WXWidget MacGetContainerForEmbedding() ;
+
     WXWindow MacGetWindowRef() { return m_macWindow ; }
     virtual void MacActivate( long timestamp , bool inIsActivating ) ;
-    virtual void MacUpdate( long timestamp ) ;
-#if !TARGET_CARBON
-    virtual void MacMouseDown( WXEVENTREF ev , short windowPart ) ;
-    virtual void MacMouseUp( WXEVENTREF ev , short windowPart ) ;
-    virtual void MacMouseMoved( WXEVENTREF ev , short windowPart ) ;
-    virtual void MacKeyDown( WXEVENTREF ev ) ;
-#endif
-    virtual void MacFireMouseEvent( wxUint16 kind , wxInt32 x , wxInt32 y ,wxUint32 modifiers , long timestamp ) ;
+
     virtual void Raise();
     virtual void Lower();
     virtual void SetTitle( const wxString& title);
     virtual bool Show( bool show = TRUE );
-    virtual void DoMoveWindow(int x, int y, int width, int height);
-    void MacInvalidate( const WXRECTPTR rect, bool eraseBackground ) ;
-    short MacGetWindowBackgroundTheme() const { return m_macWindowBackgroundTheme ; }
-    static bool MacEnableCompositing( bool useCompositing ); 
+
+    virtual void MacSetBackgroundBrush( const wxBrush &brush ) ;
+
     bool MacUsesCompositing() { return m_macUsesCompositing; } 
 
-#if TARGET_CARBON
+    void MacSetMetalAppearance( bool on ) ;
+
+    void MacChangeWindowAttributes( wxUint32 attributesToSet , wxUint32 attributesToClear ) ;
+    wxUint32 MacGetWindowAttributes() const ;
+
     WXEVENTHANDLERREF    MacGetEventHandler() { return m_macEventHandler ; }
-#endif
+
 protected:
     // common part of all ctors
     void Init();
 
+    virtual void DoGetPosition( int *x, int *y ) const;
+    virtual void DoGetSize( int *width, int *height ) const;
+    virtual void DoMoveWindow(int x, int y, int width, int height);
+    virtual void DoGetClientSize(int *width, int *height) const;
+
     // is the frame currently iconized?
     bool m_iconized;
 
@@ -116,31 +117,19 @@ protected:
     bool m_maximizeOnShow;
     bool m_macUsesCompositing ;
 
-    short m_macWindowBackgroundTheme ;
     WXWindow m_macWindow ;
-    WXWidget m_macRootControl ;
+
     wxWindowMac* m_macFocus ;
-    WXHRGN m_macNoEraseUpdateRgn ;
-    bool m_macNeedsErasing ;
 
-    static WXWindow s_macWindowInUpdate ;
     static wxTopLevelWindowMac *s_macDeactivateWindow;
-    static bool s_macWindowCompositing ;
 private :
-#if TARGET_CARBON
     WXEVENTHANDLERREF    m_macEventHandler ;
-#endif
+
+    DECLARE_EVENT_TABLE()
 };
 
 // list of all frames and modeless dialogs
 extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows;
 
-// associate mac windows with wx counterparts
-
-wxTopLevelWindowMac* wxFindWinFromMacWindow( WXWindow inWindow ) ;
-void wxAssociateWinWithMacWindow(WXWindow inWindow, wxTopLevelWindowMac *win) ;
-void wxRemoveMacWindowAssociation(wxTopLevelWindowMac *win) ;
-
-
 #endif // _WX_MSW_TOPLEVEL_H_
 
index c862427f62eced2c0f6d845c64b74317d12230d2..eae90070f60d0b6d32f36a1ede91a42b31921756 100644 (file)
@@ -53,11 +53,6 @@ void            UMASetMenuItemText(  MenuRef menu,  MenuItemIndex item, const wx
 void            UMAShowWatchCursor() ;
 void            UMAShowArrowCursor() ;
 
-#if !TARGET_CARBON
-OSStatus        UMAPrOpen() ;
-OSStatus        UMAPrClose() ;
-#endif
-
 // window manager
 
 GrafPtr        UMAGetWindowPort( WindowRef inWindowRef ) ;
@@ -69,32 +64,34 @@ void            UMAShowHide( WindowRef inWindowRef , Boolean show) ;
 
 // appearance manager
 
-void             UMADrawControl( ControlHandle inControl ) ;
+void             UMADrawControl( ControlRef inControl ) ;
 
-void             UMAEnableControl( ControlHandle inControl ) ;
-void            UMADisableControl( ControlHandle inControl ) ;
-void             UMAActivateControl( ControlHandle inControl ) ;
-void            UMADeactivateControl( ControlHandle inControl ) ;
+void             UMAEnableControl( ControlRef inControl ) ;
+void            UMADisableControl( ControlRef inControl ) ;
+void             UMAActivateControl( ControlRef inControl ) ;
+void            UMADeactivateControl( ControlRef inControl ) ;
 //                                 ControlPartCode         hiliteState)    ;
-void UMAShowControl                        (ControlHandle             theControl)    ;
-void UMAHideControl                        (ControlHandle             theControl);
-void UMAActivateControl                    (ControlHandle             inControl);
-void UMADeactivateControl                (ControlHandle             inControl);
-void UMASetControlTitle( ControlHandle inControl , const wxString& title , wxFontEncoding encoding) ;
-
-void UMAMoveControl( ControlHandle inControl , short x , short y ) ;
-void UMASizeControl( ControlHandle inControl , short x , short y ) ;
+void UMAShowControl                        (ControlRef             theControl)    ;
+void UMAHideControl                        (ControlRef             theControl);
+void UMAActivateControl                    (ControlRef             inControl);
+void UMADeactivateControl                (ControlRef             inControl);
+void UMASetControlTitle( ControlRef inControl , const wxString& title , wxFontEncoding encoding) ;
+
+void UMAMoveControl( ControlRef inControl , short x , short y ) ;
+void UMASizeControl( ControlRef inControl , short x , short y ) ;
 // control hierarchy
 
+Rect * UMAGetControlBoundsInWindowCoords(ControlRef theControl, Rect *bounds) ;
+
 // keyboard focus
 OSErr UMASetKeyboardFocus                (WindowPtr                 inWindow,
-                                 ControlHandle             inControl,
+                                 ControlRef             inControl,
                                  ControlFocusPart         inPart)    ;
 
 // events
 
 void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn ) ;
-OSErr UMAGetRootControl( WindowPtr inWindow , ControlHandle *outControl ) ;
+OSErr UMAGetRootControl( WindowPtr inWindow , ControlRef *outControl ) ;
 
 // handling control data
 bool            UMAIsWindowFloating( WindowRef inWindow ) ;
@@ -114,16 +111,6 @@ OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState ) ;
 
 OSStatus UMAPutScrap( Size size , OSType type , void *data ) ;
 
-// accessor helpers
-
-#if !TARGET_CARBON
-#define ClearCurrentScrap() ZeroScrap() ;
-#define GetApplicationScript() smSystemScript
-#else
-
-// calls not in carbon
-
-#endif
 #define GetWindowUpdateRgn( inWindow , updateRgn ) GetWindowRegion( inWindow , kWindowUpdateRgn, updateRgn )
 
 #endif // wxUSE_GUI
index 807e261863b40595d0588e07a177bce262fe4015..5ec518e4a70cce0fc22d5ce0a0ea69d757049875 100644 (file)
@@ -40,12 +40,7 @@ class WXDLLEXPORT wxWindowMac: public wxWindowBase
 public:
     
     wxWindowMac()
-        : m_macBackgroundBrush()
-        , m_macVisibleRegion()
-        , m_x(0), m_y(0), m_width(0), m_height(0)
-        , m_hScrollBar(NULL), m_vScrollBar(NULL)
-        , m_label(wxEmptyString)
-        { Init(); }
+    { Init(); }
 
     wxWindowMac(wxWindowMac *parent,
                 wxWindowID id,
@@ -86,8 +81,10 @@ public:
                           const wxRect *rect = (const wxRect *) NULL );
 
     virtual bool SetCursor( const wxCursor &cursor );
-    virtual bool SetFont(const wxFont& font)
-           { return wxWindowBase::SetFont(font); }
+    virtual bool SetFont( const wxFont &font ) ;
+    virtual bool SetBackgroundColour( const wxColour &colour );
+    virtual bool SetForegroundColour( const wxColour &colour );
+
     virtual int GetCharHeight() const;
     virtual int GetCharWidth() const;
     virtual void GetTextExtent(const wxString& string,
@@ -115,30 +112,29 @@ public:
     // Accept files for dragging
     virtual void DragAcceptFiles(bool accept);
 
-    // Native resource loading (implemented in src/msw/nativdlg.cpp)
-    // FIXME: should they really be all virtual?
-    wxWindowMac* GetWindowChild1(wxWindowID id);
-    wxWindowMac* GetWindowChild(wxWindowID id);
-
     // implementation from now on
     // --------------------------
 
     void MacClientToRootWindow( int *x , int *y ) const ;
     void MacRootWindowToClient( int *x , int *y ) const ;
+
     void MacWindowToRootWindow( int *x , int *y ) const ;
+    void MacWindowToRootWindow( short *x , short *y ) const ;
+
     void MacRootWindowToWindow( int *x , int *y ) const ;
+    void MacRootWindowToWindow( short *x , short *y ) const ;
     
     virtual wxString MacGetToolTipString( wxPoint &where ) ;
 
     // simple accessors
     // ----------------
 
-//    WXHWND GetHWND() const { return m_hWnd; }
-//    void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; }
-    virtual WXWidget GetHandle() const { return (WXWidget) NULL ; }
+    virtual WXWidget GetHandle() const { return m_macControl ; }
 
+#if WXWIN_COMPATIBILITY_2_4
     bool GetTransparentBackground() const { return m_backgroundTransparent; }
     void SetTransparent(bool t = TRUE) { m_backgroundTransparent = t; }
+#endif
 
     // event handlers
     // --------------
@@ -161,79 +157,101 @@ public:
     wxWindowMac *FindItem(long id) const;
     wxWindowMac *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const;
 
-    // Make a Windows extended style from the given wxWindows window style
-    static WXDWORD MakeExtendedStyle(long style,
-                                     bool eliminateBorders = TRUE);
-    // Determine whether 3D effects are wanted
-    WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D) const;
-
-    // MSW only: TRUE if this control is part of the main control
-    virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
-
-    // Setup background and foreground colours correctly
-    virtual void SetupColours();
-
 public:
-    static bool          MacGetWindowFromPoint( const wxPoint &point , wxWindowMac** outWin ) ;
-    virtual bool         MacGetWindowFromPointSub( const wxPoint &point , wxWindowMac** outWin ) ;
-    virtual void         MacRedraw( WXHRGN updatergn , long time , bool erase) ;
-    virtual bool         MacCanFocus() const { return true ; }
+    virtual void        MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ;
+    virtual bool        MacDoRedraw( WXHRGN updatergn , long time ) ;
+    virtual void        MacRedraw( WXHRGN updatergn , long time , bool erase) ;
+    virtual bool        MacCanFocus() const ;
     
-    virtual bool         MacDispatchMouseEvent(wxMouseEvent& event ) ;
     // this should not be overriden in classes above wxWindowMac because it is called from its destructor via DeleteChildren
-    virtual void         RemoveChild( wxWindowBase *child );
-    virtual void         MacPaintBorders( int left , int top ) ;
-    WXWindow             MacGetRootWindow() const  ;
+    virtual void        RemoveChild( wxWindowBase *child );
+    virtual void        MacPaintBorders( int left , int top ) ;
+    WXWindow            MacGetTopLevelWindowRef() const  ;
     wxTopLevelWindowMac* MacGetTopLevelWindow() const ;
     
-    virtual WXWidget     MacGetContainerForEmbedding() ;
-    
-    virtual long         MacGetLeftBorderSize() const ;
-    virtual long         MacGetRightBorderSize() const ;
-    virtual long         MacGetTopBorderSize() const ;
-    virtual long         MacGetBottomBorderSize() const ;
+    virtual long        MacGetLeftBorderSize() const ;
+    virtual long        MacGetRightBorderSize() const ;
+    virtual long        MacGetTopBorderSize() const ;
+    virtual long        MacGetBottomBorderSize() const ;
     
-    static long          MacRemoveBordersFromStyle( long style ) ;
-    virtual void         MacSuperChangedPosition() ;
-    // the absolute coordinates of this item within the toplevel window may have changed
-    virtual void         MacUpdateDimensions() {}
+    static long         MacRemoveBordersFromStyle( long style ) ;
+
+    virtual void        MacSuperChangedPosition() ;
     // the absolute coortinates of this window's root have changed
-    virtual void         MacTopLevelWindowChangedPosition() ;
-    virtual void         MacSuperShown( bool show ) ;
-    virtual void         MacSuperEnabled( bool enable ) ;
-    bool                 MacIsReallyShown() const ;
-    virtual void         Update() ;
-    // for compatibility
-    void                 MacUpdateImmediately() { Update() ; }
-    virtual bool         MacSetupCursor( const wxPoint& pt ) ;
+    virtual void        MacTopLevelWindowChangedPosition() ;
+    
+    virtual void        MacVisibilityChanged() ;
+    virtual void        MacEnabledStateChanged() ;
+    
+    bool                MacIsReallyShown() ;
+    bool                MacIsReallyEnabled() ;
+    
+    bool                       MacIsUserPane() { return m_macIsUserPane; }
+
+    virtual void        Update() ;
+    virtual bool        MacSetupCursor( const wxPoint& pt ) ;
         
-//    virtual bool         MacSetPortDrawingParams( const Point & localOrigin, const Rect & clipRect, WindowRef window , wxWindowMac* rootwin )  ;
-//    virtual void         MacGetPortParams(Point* localOrigin, Rect* clipRect, WindowRef *window , wxWindowMac** rootwin ) ;
-//    virtual void         MacGetPortClientParams(Point* localOrigin, Rect* clipRect, WindowRef *window  , wxWindowMac** rootwin) ;
-    const wxBrush&       MacGetBackgroundBrush() ;
-    const wxRegion&      MacGetVisibleRegion( bool respectChildrenAndSiblings = true ) ;
-    bool                 MacIsWindowScrollbar( const wxScrollBar* sb )
+    virtual void        MacSetBackgroundBrush( const wxBrush &brush ) { m_macBackgroundBrush = brush ; }
+    const wxBrush&      MacGetBackgroundBrush() const { return m_macBackgroundBrush ; }
+    
+    // returns the visible region of this control in window ie non-client coordinates
+    
+    wxRegion            MacGetVisibleRegion( bool includeOuterStructures = false ) ;
+    bool                MacIsWindowScrollbar( const wxScrollBar* sb )
         { return (m_hScrollBar == sb || m_vScrollBar == sb) ; }
-    static wxWindowMac*  s_lastMouseWindow ;
-private:
+
+    wxList&             GetSubcontrols() { return m_subControls; }
+    virtual void               MacInstallEventHandler() ;
+       virtual void            MacRedrawControl();
+    WXEVENTHANDLERREF   MacGetControlEventHandler() { return m_macControlEventHandler ; }
+    void                MacPostControlCreate(const wxPoint& pos, const wxSize& size) ;
+
+    virtual void            MacControlUserPaneDrawProc(wxInt16 part) ;
+    virtual wxInt16         MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y) ;
+    virtual wxInt16         MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc) ;
+    virtual void            MacControlUserPaneIdleProc() ;
+    virtual wxInt16         MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers) ;
+    virtual void            MacControlUserPaneActivateProc(bool activating) ;
+    virtual wxInt16         MacControlUserPaneFocusProc(wxInt16 action) ;
+    virtual void            MacControlUserPaneBackgroundProc(void* info) ;
+
+    // translate wxWindows coords into ones suitable to be passed to
+    // the CreateControl calls
+    //
+    // returns TRUE if non default coords are returned, FALSE otherwise
+    bool                MacGetBoundsForControl(const wxPoint& pos,
+                                           const wxSize& size,
+                                           int& x, int& y,
+                                           int& w, int& h) const ;
+    // calculates the real window position and size from the native control
+    void                MacGetPositionAndSizeFromControl(int& x, int& y,
+                                           int& w, int& h) const ;
 protected:
-    wxBrush              m_macBackgroundBrush ;
-    wxRegion             m_macVisibleRegion ;
-    int                  m_x ;
-    int                  m_y ;
-    int                  m_width ;
-    int                  m_height ;
+    // For controls like radiobuttons which are really composite
+    wxList              m_subControls;
+
+    WXWidget            m_macControl ;
+       bool                            m_macIsUserPane ;
+    wxBrush             m_macBackgroundBrush ;
     
-    wxScrollBar*         m_hScrollBar ;
-    wxScrollBar*         m_vScrollBar ;
-    wxString             m_label ;
+    wxScrollBar*        m_hScrollBar ;
+    wxScrollBar*        m_vScrollBar ;
+    wxString            m_label ;
     
-    void                 MacCreateScrollBars( long style ) ;
-    void                 MacRepositionScrollBars() ;
-
+    void                MacCreateScrollBars( long style ) ;
+    void                MacRepositionScrollBars() ;
+    void                MacUpdateControlFont() ;
+    void                MacPropagateVisibilityChanged() ;
+    void                MacPropagateEnabledStateChanged() ;
+
+#if WXWIN_COMPATIBILITY_2_4
     bool                 m_backgroundTransparent ;
+#endif
 
     // implement the base class pure virtuals
+       virtual wxSize DoGetBestSize() const;
+       virtual wxSize DoGetSizeFromClientSize( const wxSize & size ) const;
     virtual void DoClientToScreen( int *x, int *y ) const;
     virtual void DoScreenToClient( int *x, int *y ) const;
     virtual void DoGetPosition( int *x, int *y ) const;
@@ -252,15 +270,22 @@ protected:
     // ::MoveWindow() except for composite controls which will want to arrange
     // themselves inside the given rectangle
     virtual void DoMoveWindow(int x, int y, int width, int height);
+    virtual void DoSetWindowVariant( wxWindowVariant variant ) ;
 
 #if wxUSE_TOOLTIPS
     virtual void DoSetToolTip( wxToolTip *tip );
 #endif // wxUSE_TOOLTIPS
 
+private :
+
 private:
     // common part of all ctors
     void Init();
 
+    WXEVENTHANDLERREF    m_macControlEventHandler ;
+
+
     DECLARE_NO_COPY_CLASS(wxWindowMac)
     DECLARE_EVENT_TABLE()
 };