fixed GetFreeMemory decl. to match wxWidgets
[wxWidgets.git] / src / mac / carbon / window.cpp
index bfdbeb7ef6708730544d7d00201f336bbce508df..55d8ff2c3646264c95c142bc2778afbb75e0bd46 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        windows.cpp
+// Name:        src/mac/carbon/window.cpp
 // Purpose:     wxWindowMac
 // Author:      Stefan Csomor
 // Modified by:
@@ -9,10 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "window.h"
-#endif
-
 #include "wx/wxprec.h"
 
 #include "wx/menu.h"
@@ -343,9 +339,15 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
                         thisWindow->GetCaret()->OnKillFocus();
                     }
         #endif // wxUSE_CARET
-                    wxFocusEvent event( wxEVT_KILL_FOCUS, thisWindow->GetId());
-                    event.SetEventObject(thisWindow);
-                    thisWindow->GetEventHandler()->ProcessEvent(event) ;
+                    static bool inKillFocusEvent = false ;
+                    if ( !inKillFocusEvent )
+                    {
+                        inKillFocusEvent = true ;
+                        wxFocusEvent event( wxEVT_KILL_FOCUS, thisWindow->GetId());
+                        event.SetEventObject(thisWindow);
+                        thisWindow->GetEventHandler()->ProcessEvent(event) ;
+                        inKillFocusEvent = false ;
+                    }
                 }
                 else
                 {
@@ -429,7 +431,7 @@ static pascal OSStatus wxMacWindowServiceEventHandler( EventHandlerCallRef handl
                 val = val.Mid( from , to - from ) ;
                 ScrapRef scrapRef = cEvent.GetParameter< ScrapRef > ( kEventParamScrapRef , typeScrapRef ) ;
                 verify_noerr( ClearScrap( &scrapRef ) ) ;
-                verify_noerr( PutScrapFlavor( scrapRef , kTXNTextData , 0 , val.Length() , val.c_str() ) ) ;
+                verify_noerr( PutScrapFlavor( scrapRef , kTXNTextData , 0 , val.length() , val.c_str() ) ) ;
                 result = noErr ;
             }
             break ;
@@ -597,7 +599,10 @@ void wxWindowMac::MacControlUserPaneActivateProc(bool activating)
 
 wxInt16 wxWindowMac::MacControlUserPaneFocusProc(wxInt16 action)
 {
-    return kControlNoPart ;
+    if ( AcceptsFocus() )
+        return 1 ;
+    else
+        return kControlNoPart ;
 }
 
 void wxWindowMac::MacControlUserPaneBackgroundProc(void* info)
@@ -628,35 +633,6 @@ wxMAC_DEFINE_PROC_GETTER( ControlActionUPP , wxMacLiveScrollbarActionProc ) ;
 // implementation
 // ===========================================================================
 
-#if KEY_wxList_DEPRECATED
-wxList wxWinMacControlList(wxKEY_INTEGER);
-
-wxWindow *wxFindControlFromMacControl(ControlRef inControl )
-{
-    wxNode *node = wxWinMacControlList.Find((long)inControl);
-    if (!node)
-        return NULL;
-    return (wxControl *)node->GetData();
-}
-
-void wxAssociateControlWithMacControl(ControlRef inControl, wxWindow *control)
-{
-    // adding NULL ControlRef is (first) surely a result of an error and
-    // (secondly) breaks native event processing
-    wxCHECK_RET( inControl != (ControlRef) NULL, wxT("attempt to add a NULL WindowRef to window list") );
-
-    if ( !wxWinMacControlList.Find((long)inControl) )
-        wxWinMacControlList.Append((long)inControl, control);
-}
-
-void wxRemoveMacControlAssociation(wxWindow *control)
-{
-    // remove all associations pointing to us
-    while ( wxWinMacControlList.DeleteObject(control) )
-        {}
-}
-#else
-
 WX_DECLARE_HASH_MAP(ControlRef, wxWindow*, wxPointerHash, wxPointerEqual, MacControlMap);
 
 static MacControlMap wxWinMacControlList;
@@ -699,7 +675,6 @@ void wxRemoveMacControlAssociation(wxWindow *control)
         }
     }
 }
-#endif // deprecated wxList
 
 // ----------------------------------------------------------------------------
  // constructors and such
@@ -787,6 +762,7 @@ wxWindowMac::~wxWindowMac()
     {
         // in case the callback might be called during destruction
         wxRemoveMacControlAssociation( this) ;
+        ::RemoveEventHandler( (EventHandlerRef ) m_macControlEventHandler ) ;
         // we currently are not using this hook
         // ::SetControlColorProc( *m_peer , NULL ) ;
         m_peer->Dispose() ;
@@ -924,7 +900,7 @@ void wxWindowMac::MacPostControlCreate(const wxPoint& pos, const wxSize& size)
     // adjust font, controlsize etc
     DoSetWindowVariant( m_windowVariant ) ;
 
-    m_peer->SetTitle( wxStripMenuCodes(m_label) ) ;
+    m_peer->SetLabel( wxStripMenuCodes(m_label) ) ;
 
     if (!m_macIsUserPane)
     {
@@ -1907,18 +1883,18 @@ void wxWindowMac::DoSetClientSize(int clientwidth, int clientheight)
     }
 }
 
-void wxWindowMac::SetTitle(const wxString& title)
+void wxWindowMac::SetLabel(const wxString& title)
 {
     m_label = wxStripMenuCodes(title) ;
 
     if ( m_peer && m_peer->Ok() )
     {
-        m_peer->SetTitle( m_label ) ;
+        m_peer->SetLabel( m_label ) ;
     }
     Refresh() ;
 }
 
-wxString wxWindowMac::GetTitle() const
+wxString wxWindowMac::GetLabel() const
 {
     return m_label ;
 }