X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5a7d70fe8922a56407a5b02b95a53fb16e787f70..54638f9e668f5732427a4e0c1f073f085467058b:/src/mac/carbon/notebmac.cpp?ds=inline diff --git a/src/mac/carbon/notebmac.cpp b/src/mac/carbon/notebmac.cpp index dbea2f1022..414bc978f9 100644 --- a/src/mac/carbon/notebmac.cpp +++ b/src/mac/carbon/notebmac.cpp @@ -13,12 +13,17 @@ #if wxUSE_NOTEBOOK -#include "wx/app.h" +#include "wx/notebook.h" + +#ifndef WX_PRECOMP + #include "wx/string.h" + #include "wx/log.h" + #include "wx/app.h" + #include "wx/image.h" +#endif + #include "wx/string.h" -#include "wx/log.h" #include "wx/imaglist.h" -#include "wx/image.h" -#include "wx/notebook.h" #include "wx/mac/uma.h" @@ -75,6 +80,9 @@ bool wxNotebook::Create( wxWindow *parent, { m_macIsUserPane = false ; + if (! (style & wxBK_ALIGN_MASK)) + style |= wxBK_TOP; + if ( !wxNotebookBase::Create( parent, id, pos, size, style, name ) ) return false; @@ -96,18 +104,18 @@ bool wxNotebook::Create( wxWindow *parent, ControlTabSize tabsize; switch (GetWindowVariant()) { - case wxWINDOW_VARIANT_MINI: + case wxWINDOW_VARIANT_MINI: if ( UMAGetSystemVersion() >= 0x1030 ) tabsize = 3 ; else tabsize = kControlSizeSmall; break; - case wxWINDOW_VARIANT_SMALL: + case wxWINDOW_VARIANT_SMALL: tabsize = kControlTabSizeSmall; break; - default: + default: tabsize = kControlTabSizeLarge; break; } @@ -322,7 +330,13 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const #if TARGET_API_MAC_OSX const int countPages = GetPageCount(); - HIPoint hipoint = { pt.x , pt.y } ; + // we have to convert from Client to Window relative coordinates + wxPoint adjustedPt = pt + GetClientAreaOrigin(); + // and now to HIView native ones + adjustedPt.x -= MacGetLeftBorderSize() ; + adjustedPt.y -= MacGetTopBorderSize() ; + + HIPoint hipoint= { adjustedPt.x , adjustedPt.y } ; HIViewPartCode outPart = 0 ; OSStatus err = HIViewGetPartHit( m_peer->GetControlRef(), &hipoint, &outPart ); @@ -353,7 +367,7 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const } if ( outPart >= 1 && outPart <= countPages ) - resultV = outPart ; + resultV = outPart - 1 ; #endif // TARGET_API_MAC_OSX if (flags != NULL) @@ -361,10 +375,10 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const *flags = 0; // we cannot differentiate better - if (resultV >= 1) - *flags |= wxNB_HITTEST_ONLABEL; + if (resultV >= 0) + *flags |= wxBK_HITTEST_ONLABEL; else - *flags |= wxNB_HITTEST_NOWHERE; + *flags |= wxBK_HITTEST_NOWHERE; } return resultV;