#if wxUSE_NOTEBOOK
-// wxWidgets
+#include "wx/notebook.h"
+
#ifndef WX_PRECOMP
- #include "wx/string.h"
- #include "wx/dc.h"
+ #include "wx/string.h"
+ #include "wx/dc.h"
+ #include "wx/log.h"
+ #include "wx/event.h"
+ #include "wx/app.h"
+ #include "wx/dcclient.h"
+ #include "wx/dcmemory.h"
+ #include "wx/control.h"
#endif // WX_PRECOMP
-#include "wx/log.h"
#include "wx/imaglist.h"
-#include "wx/event.h"
-#include "wx/control.h"
-#include "wx/notebook.h"
-#include "wx/app.h"
#include "wx/sysopt.h"
-#include "wx/dcclient.h"
-#include "wx/dcmemory.h"
#include "wx/msw/private.h"
#include <windowsx.h>
-
-#include <commctrl.h>
-
#include "wx/msw/winundef.h"
+// include <commctrl.h> "properly"
+#include "wx/msw/wrapcctl.h"
+
#if wxUSE_UXTHEME
#include "wx/msw/uxtheme.h"
#endif
long style,
const wxString& name)
{
+ if ( (style & wxBK_ALIGN_MASK) == wxBK_DEFAULT )
+ {
+#if defined(__POCKETPC__)
+ style |= wxBK_BOTTOM | wxNB_FLAT;
+#else
+ style |= wxBK_TOP;
+#endif
+ }
+
#ifdef __WXWINCE__
// Not sure why, but without this style, there is no border
// around the notebook tabs.
style |= wxBORDER_SUNKEN;
#endif
-#if !wxUSE_UXTHEME
+#if !wxUSE_UXTHEME
// ComCtl32 notebook tabs simply don't work unless they're on top if we have uxtheme, we can
// work around it later (after control creation), but if we don't have uxtheme, we have to clear
// those styles
const int verComCtl32 = wxApp::GetComCtl32Version();
if ( verComCtl32 == 600 )
{
- style &= ~(wxNB_BOTTOM | wxNB_LEFT | wxNB_RIGHT);
+ style &= ~(wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT);
}
#endif //wxUSE_UXTHEME
// create backing store
UpdateBgBrush();
}
-
+
// comctl32.dll 6.0 doesn't support non-top tabs with visual styles (the
// control is simply not rendered correctly), so we disable themes
// if possible, otherwise we simply clear the styles.
// It's probably not possible to have UXTHEME without ComCtl32 6 or better, but lets
// check it anyway.
const int verComCtl32 = wxApp::GetComCtl32Version();
- if ( verComCtl32 == 600 )
+ if ( verComCtl32 == 600 )
{
// check if we use themes at all -- if we don't, we're still okay
- if ( wxUxThemeEngine::GetIfActive() && (style & (wxNB_BOTTOM|wxNB_LEFT|wxNB_RIGHT)))
+ if ( wxUxThemeEngine::GetIfActive() && (style & (wxBK_BOTTOM|wxBK_LEFT|wxBK_RIGHT)))
{
wxUxThemeEngine::GetIfActive()->SetWindowTheme((HWND)this->GetHandle(), L"", L"");
SetBackgroundColour(GetThemeBackgroundColour()); //correct the background color for the new non-themed control
*flags |= wxNB_HITTEST_ONICON;
if ((hitTestInfo.flags & TCHT_ONITEMLABEL) == TCHT_ONITEMLABEL)
*flags |= wxNB_HITTEST_ONLABEL;
+ if ( item == wxNOT_FOUND && GetPageSize().Inside(pt) )
+ *flags |= wxNB_HITTEST_ONPAGE;
}
return item;
HBRUSH hbr = (HBRUSH)m_hbrBackground;
#else
HBRUSH hbr = 0;
-#endif
+#endif
wxBrush brush;
if ( !hbr )
{