]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/window.cpp
removed deprecated wxADJUST_MINSIZE
[wxWidgets.git] / src / mac / carbon / window.cpp
index 6991424ffcd59ef4e2466bc6192f74d7247d8e09..321f1f8e7172b1a076af962520481bc70f490a16 100644 (file)
     #include "wx/layout.h"
     #include "wx/statusbr.h"
     #include "wx/menuitem.h"
+    #include "wx/treectrl.h"
+    #include "wx/listctrl.h"
 #endif
 
 #include "wx/tooltip.h"
 #include "wx/spinctrl.h"
 #include "wx/geometry.h"
 
+#if wxUSE_LISTCTRL
+    #include "wx/listctrl.h"
+#endif
+
+#if wxUSE_TREECTRL
+    #include "wx/treectrl.h"
+#endif
+
 #if wxUSE_CARET
     #include "wx/caret.h"
 #endif
@@ -156,6 +166,7 @@ static const EventTypeSpec eventList[] =
     { kEventClassCommand, kEventProcessCommand } ,
     { kEventClassCommand, kEventCommandUpdateStatus } ,
 
+    { kEventClassControl , kEventControlGetClickActivation } ,
     { kEventClassControl , kEventControlHit } ,
 
     { kEventClassTextInput, kEventTextInputUnicodeForKeyEvent } ,
@@ -166,6 +177,9 @@ static const EventTypeSpec eventList[] =
     { kEventClassControl , kEventControlVisibilityChanged } ,
     { kEventClassControl , kEventControlEnabledStateChanged } ,
     { kEventClassControl , kEventControlHiliteChanged } ,
+
+    { kEventClassControl , kEventControlActivate } ,
+    { kEventClassControl , kEventControlDeactivate } ,
 #endif
     { kEventClassControl , kEventControlSetFocusPart } ,
 
@@ -251,10 +265,6 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
 
                     {
                         wxMacCGContextStateSaver sg( cgContext ) ;
-                        // make sure the context is having its origin at the wx-window coordinates of the 
-                        // view (read at the top of this file about the differences)
-                                               if ( thisWindow->MacGetLeftBorderSize() != 0 || thisWindow->MacGetTopBorderSize() != 0 )
-                                                       CGContextTranslateCTM( cgContext , -thisWindow->MacGetLeftBorderSize() , -thisWindow->MacGetTopBorderSize() );
                         float alpha = 1.0 ;
                         {
                             wxWindow* iter = thisWindow ;
@@ -297,7 +307,20 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
         case kEventControlHiliteChanged :
             thisWindow->MacHiliteChanged() ;
             break ;
+            
+        case kEventControlActivate :
+        case kEventControlDeactivate :
+            // FIXME: we should have a virtual function for this!
+#if wxUSE_TREECTRL
+            if ( thisWindow->IsKindOf( CLASSINFO( wxTreeCtrl ) ) )
+                thisWindow->Refresh();
+#endif
+#if wxUSE_LISTCTRL
+            if ( thisWindow->IsKindOf( CLASSINFO( wxListCtrl ) ) )
+                thisWindow->Refresh();
 #endif
+            break ;
+#endif // TARGET_API_MAC_OSX
 
         // we emulate this event under Carbon CFM
         case kEventControlSetFocusPart :
@@ -354,6 +377,18 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
             result = thisWindow->MacControlHit( handler , event ) ;
             break ;
 
+        case kEventControlGetClickActivation :
+            {
+               // fix to always have a proper activation for DataBrowser controls (stay in bkgnd otherwise)
+                WindowRef owner = cEvent.GetParameter<WindowRef>(kEventParamWindowRef);
+                if ( !IsWindowActive(owner) )
+                {
+                    cEvent.SetParameter(kEventParamClickActivation,(UInt32) kActivateAndIgnoreClick) ;
+                    result = noErr ;
+                }
+            }
+            break ;
+
         default :
             break ;
     }
@@ -902,10 +937,6 @@ void wxWindowMac::Init()
     m_frozenness = 0 ;
     m_macAlpha = 255 ;
 
-#if WXWIN_COMPATIBILITY_2_4
-    m_backgroundTransparent = false;
-#endif
-
 #if wxMAC_USE_CORE_GRAPHICS
     m_cgContextRef = NULL ;
 #endif
@@ -1099,7 +1130,7 @@ void wxWindowMac::MacPostControlCreate(const wxPoint& pos, const wxSize& size)
     m_peer->SetLabel( wxStripMenuCodes(m_label, wxStrip_Mnemonics) ) ;
 
     if (!m_macIsUserPane)
-        SetInitialBestSize(size);
+        SetInitialSize(size);
 
     SetCursor( *wxSTANDARD_CURSOR ) ;
 }
@@ -1665,10 +1696,10 @@ void wxWindowMac::DoGetClientSize( int *x, int *y ) const
 
 bool wxWindowMac::SetCursor(const wxCursor& cursor)
 {
-    if (m_cursor == cursor)
+    if (m_cursor.IsSameAs(cursor))
         return false;
 
-    if (wxNullCursor == cursor)
+    if (!cursor.IsOk())
     {
         if ( ! wxWindowBase::SetCursor( *wxSTANDARD_CURSOR ) )
             return false ;
@@ -2696,7 +2727,7 @@ void wxWindowMac::OnSetFocus( wxFocusEvent& event )
         Rect rect ;
 
         m_peer->GetRect( &rect ) ;
-        // auf den umgebenden Rahmen zur\9fck
+        // auf den umgebenden Rahmen zurÂ\9fck
         InsetRect( &rect, -1 , -1 ) ;
 
         wxTopLevelWindowMac* top = MacGetTopLevelWindow();