]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/notebmac.cpp
wxGenericDirDialog related corrections for wxMac
[wxWidgets.git] / src / mac / carbon / notebmac.cpp
index 6f555d06c9cd7e56e141d6051e344889e73ca47c..aa5351acc5feee1fec3b736217e47f897fcf6734 100644 (file)
   #pragma implementation "notebook.h"
 #endif
 
-#include  <wx/string.h>
-#include  <wx/log.h>
-#include  <wx/imaglist.h>
-#include  <wx/notebook.h>
-#include <wx/mac/uma.h>
+#include "wx/string.h"
+#include "wx/log.h"
+#include "wx/imaglist.h"
+#include "wx/notebook.h"
+#include "wx/mac/uma.h"
 // ----------------------------------------------------------------------------
 // macros
 // ----------------------------------------------------------------------------
 // check that the page index is valid
 #define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount()))
 
-#ifdef __DARWIN__
-  // I got these values for Mac OS X from the Appearance mgr docs. (Mark Newsam)
-const short kwxMacTabLeftMargin = 20 ;
-const short kwxMacTabTopMargin = 38 ;
-const short kwxMacTabRightMargin = 20 ;
-const short kwxMacTabBottomMargin = 12 ;
-#else
-const short kwxMacTabLeftMargin = 16 ;
-const short kwxMacTabTopMargin = 30 ;
-const short kwxMacTabRightMargin = 16 ;
-const short kwxMacTabBottomMargin = 16 ;
-#endif
+static bool constantsSet = false ;
+
+ short kwxMacTabLeftMargin = 0 ;
+ short kwxMacTabTopMargin = 0 ;
+ short kwxMacTabRightMargin = 0 ;
+ short kwxMacTabBottomMargin = 0 ;
 
 // ----------------------------------------------------------------------------
 // event table
@@ -76,10 +70,31 @@ IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent)
 // common part of all ctors
 void wxNotebook::Init()
 {
-#ifdef __DARWIN__
-    m_macHorizontalBorder = 7;
-    m_macVerticalBorder = 8;
-#endif
+    if ( !constantsSet )
+    {
+        if ( UMAHasAquaLayout() )
+        {
+      // I got these values for Mac OS X from the Appearance mgr docs. (Mark Newsam)
+            kwxMacTabLeftMargin = 20 ;
+            kwxMacTabTopMargin = 38 ;
+            kwxMacTabRightMargin = 20 ;
+            kwxMacTabBottomMargin = 12 ;
+        }
+        else
+        {
+            kwxMacTabLeftMargin = 16 ;
+            kwxMacTabTopMargin = 30 ;
+            kwxMacTabRightMargin = 16 ;
+            kwxMacTabBottomMargin = 16 ;
+        }
+        constantsSet = true ;
+    }
+    if ( UMAHasAquaLayout() )
+    {
+        m_macHorizontalBorder = 7;
+        m_macVerticalBorder = 8;
+    }
+
     m_nSelection = -1;
 }
 
@@ -115,7 +130,7 @@ bool wxNotebook::Create(wxWindow *parent,
        
        MacPreControlCreate( parent , id ,  "" , pos , size ,style, wxDefaultValidator , name , &bounds , title ) ;
 
-       m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , false , 0 , 0 , 1, 
+       m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, 
                kControlTabSmallProc , (long) this ) ;
        
        MacPostControlCreate() ;
@@ -153,7 +168,7 @@ int wxNotebook::SetSelection(int nPage)
     return m_nSelection ;
 
     ChangePage(m_nSelection, nPage);
-       SetControlValue( m_macControl , m_nSelection + 1 ) ;
+       SetControlValue( (ControlHandle) m_macControl , m_nSelection + 1 ) ;
 
     return m_nSelection;
 }
@@ -276,7 +291,7 @@ bool wxNotebook::InsertPage(int nPage,
  */
 void wxNotebook::MacSetupTabs()
 {
-    SetControlMaximum( m_macControl , GetPageCount() ) ;
+    SetControlMaximum( (ControlHandle) m_macControl , GetPageCount() ) ;
 
     wxNotebookPage *page;
     ControlTabInfoRec info;
@@ -292,14 +307,14 @@ void wxNotebook::MacSetupTabs()
                strcpy( (char *) info.name , page->GetLabel() ) ;
                c2pstr( (char *) info.name ) ;
 #endif
-        SetControlData( m_macControl, ii+1, kControlTabInfoTag,
+        SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabInfoTag,
                         sizeof( ControlTabInfoRec) , (char*) &info ) ;
-        SetControlData( m_macControl, ii+1, kControlTabEnabledFlagTag,
+        SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabEnabledFlagTag,
                         sizeof( Boolean ), (Ptr)&enabled );
     }
     Rect bounds;
-    GetControlBounds(m_macControl, &bounds);
-    InvalWindowRect(GetMacRootWindow(), &bounds);
+    GetControlBounds((ControlHandle)m_macControl, &bounds);
+    InvalWindowRect((WindowRef)MacGetRootWindow(), &bounds);
 }
 
 // ----------------------------------------------------------------------------
@@ -421,9 +436,9 @@ void wxNotebook::ChangePage(int nOldSel, int nSel)
     m_nSelection = nSel;
 }
 
-void wxNotebook::MacHandleControlClick( ControlHandle control , SInt16 controlpart ) 
+void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart ) 
 {
-  wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId , ::GetControlValue(m_macControl) - 1, m_nSelection);
+  wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId , ::GetControlValue((ControlHandle)m_macControl) - 1, m_nSelection);
   event.SetEventObject(this);
 
   ProcessEvent(event);