]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/notebmac.cpp
suppressed wrong debug error messages from SetFocus
[wxWidgets.git] / src / mac / notebmac.cpp
index 6e94d2804988ed1136ee5d3d74c32aaa967703f4..9edaae276402b09fd9a1135aa026d3c7574fca65 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 #ifdef __GNUG__
-#pragma implementation "notebook.h"
+  #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 __WXMAC_X__
-  // 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 __WXMAC_X__
-    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( parent->MacGetRootWindow() , &bounds , title , false , 0 , 0 , 1, 
                kControlTabSmallProc , (long) this ) ;
        
        MacPostControlCreate() ;
@@ -134,19 +149,23 @@ wxNotebook::~wxNotebook()
 
 void wxNotebook::SetPadding(const wxSize& padding)
 {
+   wxFAIL_MSG( wxT("wxNotebook::SetPadding not implemented") );
 }
 
 void wxNotebook::SetTabSize(const wxSize& sz)
 {
+    wxFAIL_MSG( wxT("wxNotebook::SetTabSize not implemented") );
 }
 
 void wxNotebook::SetPageSize(const wxSize& size)
 {
+    wxFAIL_MSG( wxT("wxNotebook::SetPageSize not implemented") );
 }
 
 int wxNotebook::SetSelection(int nPage)
 {
-    wxASSERT( IS_VALID_PAGE(nPage) );
+  if( !IS_VALID_PAGE(nPage) ) 
+    return m_nSelection ;
 
     ChangePage(m_nSelection, nPage);
        SetControlValue( m_macControl , m_nSelection + 1 ) ;
@@ -175,17 +194,18 @@ wxString wxNotebook::GetPageText(int nPage) const
 
 int wxNotebook::GetPageImage(int nPage) const
 {
-    wxASSERT( IS_VALID_PAGE(nPage) );
+    wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, _T("invalid notebook page") );
 
-    // TODO
-    return 0;
+    return 0 ;
 }
 
 bool wxNotebook::SetPageImage(int nPage, int nImage)
 {
-    wxASSERT( IS_VALID_PAGE(nPage) );
+    wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, _T("invalid notebook page") );
+
+    wxCHECK_MSG( m_imageList && nImage < m_imageList->GetImageCount(), FALSE,
+                 _T("invalid image index in SetPageImage()") );
 
-    // TODO
     return FALSE;
 }
 
@@ -198,7 +218,7 @@ wxNotebookPage* wxNotebook::DoRemovePage(int nPage)
 {
     wxCHECK( IS_VALID_PAGE(nPage), NULL );
     wxNotebookPage* page = m_pages[nPage] ;
-    m_pages.Remove(nPage);
+    m_pages.RemoveAt(nPage);
 
     MacSetupTabs();
 
@@ -294,7 +314,7 @@ void wxNotebook::MacSetupTabs()
     }
     Rect bounds;
     GetControlBounds(m_macControl, &bounds);
-    InvalWindowRect(GetMacRootWindow(), &bounds);
+    InvalWindowRect(MacGetRootWindow(), &bounds);
 }
 
 // ----------------------------------------------------------------------------
@@ -305,14 +325,6 @@ void wxNotebook::MacSetupTabs()
 //     time because doing it in ::Create() doesn't work (for unknown reasons)
 void wxNotebook::OnSize(wxSizeEvent& event)
 {
-    static bool s_bFirstTime = TRUE;
-    if ( s_bFirstTime ) {
-        // TODO: any first-time-size processing.
-        s_bFirstTime = FALSE;
-    }
-
-    // TODO: all this may or may not be necessary for your platform
-
     // emulate page change (it's esp. important to do it first time because
     // otherwise our page would stay invisible)
     int nSel = m_nSelection;