#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() ;
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
// ----------------------------------------------------------------------------
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);