]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/control.cpp
Slider Updates
[wxWidgets.git] / src / mac / control.cpp
index e1f7d4dd474553ffc46f89ce3a29c6ce856bc49c..945441b4ea1faaf4a93f026316af07de2b18df4e 100644 (file)
@@ -60,6 +60,34 @@ pascal void wxMacLiveScrollbarActionProc( ControlHandle control , ControlPartCod
     }
 }
 
+ControlColorUPP wxMacSetupControlBackgroundUPP = NULL ;
+
+pascal OSStatus wxMacSetupControlBackground( ControlRef iControl , SInt16 iMessage , SInt16 iDepth , Boolean iIsColor )
+{
+       OSStatus status = noErr ;
+       switch( iMessage )
+       {
+               case kControlMsgSetUpBackground :
+                       {
+                       wxControl*  wx = (wxControl*) GetControlReference( iControl ) ;
+                       if ( wx != NULL && wx->IsKindOf( CLASSINFO( wxControl ) ) )
+                       {
+                               wxDC::MacSetupBackgroundForCurrentPort( wx->MacGetBackgroundBrush() ) ;
+       //                              SetThemeBackground( iDepth , iIsColor ) ;
+                               }
+                               else
+                               {
+                                       status = paramErr ;
+                               }
+                       }
+                       break ;
+               default :
+                       status = paramErr ;
+                       break ;
+       }
+       return status ;
+}
 wxControl::wxControl()
 {
     m_macControl = NULL ;
@@ -119,7 +147,7 @@ wxControl::~wxControl()
 
 void wxControl::SetLabel(const wxString& title)
 {
-    m_label = title ;
+    m_label = wxStripMenuCodes(title) ;
 
     if ( (ControlHandle) m_macControl )
     {
@@ -127,9 +155,9 @@ void wxControl::SetLabel(const wxString& title)
         wxString label ;
     
         if( wxApp::s_macDefaultEncodingIsPC )
-            label = wxMacMakeMacStringFromPC( title ) ;
+            label = wxMacMakeMacStringFromPC( m_label ) ;
         else
-            label = title ;
+            label = m_label ;
         
 #if TARGET_CARBON
         c2pstrcpy( (StringPtr) maclabel , label ) ;
@@ -315,6 +343,11 @@ void wxControl::MacPostControlCreate()
 
     wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ;
 
+       if ( wxMacSetupControlBackgroundUPP == NULL )
+       {
+               wxMacSetupControlBackgroundUPP = NewControlColorUPP( wxMacSetupControlBackground ) ;
+       }
+       SetControlColorProc( (ControlHandle) m_macControl , wxMacSetupControlBackgroundUPP ) ;
  
      // Adjust the controls size and position
      wxPoint pos(m_x, m_y);