#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
// 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;
}
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() ;
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 ) ;
+ SetControlValue( (ControlHandle) m_macControl , m_nSelection + 1 ) ;
return m_nSelection;
}
*/
void wxNotebook::MacSetupTabs()
{
- SetControlMaximum( m_macControl , GetPageCount() ) ;
+ SetControlMaximum( (ControlHandle) m_macControl , GetPageCount() ) ;
wxNotebookPage *page;
ControlTabInfoRec info;
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);
}
// ----------------------------------------------------------------------------
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);