]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/notebmac.cpp
update from gtk/changes.txt to changes.txt (sic...)
[wxWidgets.git] / src / mac / notebmac.cpp
index 9edaae276402b09fd9a1135aa026d3c7574fca65..f9bf5dc99949e4db3b4750f9917789d196542b7b 100644 (file)
@@ -130,7 +130,7 @@ bool wxNotebook::Create(wxWindow *parent,
        
        MacPreControlCreate( parent , id ,  "" , pos , size ,style, wxDefaultValidator , name , &bounds , title ) ;
 
-       m_macControl = ::NewControl( parent->MacGetRootWindow() , &bounds , title , false , 0 , 0 , 1, 
+       m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, 
                kControlTabSmallProc , (long) this ) ;
        
        MacPostControlCreate() ;
@@ -143,6 +143,41 @@ wxNotebook::~wxNotebook()
        m_macControl = NULL ;
 }
 
+wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage)
+{
+    wxSize sizeTotal = sizePage;
+    
+    int major,minor;
+    wxGetOsVersion( &major, &minor );
+    
+    // Mac has large notebook borders. Aqua even more so.
+
+    if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) )
+    {
+        sizeTotal.x += 90;
+        
+        if (major >= 10)
+            sizeTotal.y += 28;
+        else
+            sizeTotal.y += 20;
+    }
+    else
+    {
+        if (major >= 10)
+        {
+            sizeTotal.x += 34;
+            sizeTotal.y += 46;
+        }
+        else
+        {
+            sizeTotal.x += 22;
+            sizeTotal.y += 44;
+        }
+    }
+
+    return sizeTotal;
+}
+
 // ----------------------------------------------------------------------------
 // wxNotebook accessors
 // ----------------------------------------------------------------------------
@@ -168,7 +203,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;
 }
@@ -291,7 +326,7 @@ bool wxNotebook::InsertPage(int nPage,
  */
 void wxNotebook::MacSetupTabs()
 {
-    SetControlMaximum( m_macControl , GetPageCount() ) ;
+    SetControlMaximum( (ControlHandle) m_macControl , GetPageCount() ) ;
 
     wxNotebookPage *page;
     ControlTabInfoRec info;
@@ -307,14 +342,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(MacGetRootWindow(), &bounds);
+    GetControlBounds((ControlHandle)m_macControl, &bounds);
+    InvalWindowRect((WindowRef)MacGetRootWindow(), &bounds);
 }
 
 // ----------------------------------------------------------------------------
@@ -436,9 +471,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);