]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/notebook.cpp
Added wxFrameBase::OnMenuOpen, and wxUSE_IDLEMENUUPDATES in platform.h
[wxWidgets.git] / src / msw / notebook.cpp
index 25ff1ce8a66998d9ef5a8bffdd3d350dc9c52b4c..1b82f24ba1d9b6d2fa476a2a136d3e94c323e3cc 100644 (file)
@@ -32,6 +32,7 @@
 #include  "wx/event.h"
 #include  "wx/control.h"
 #include  "wx/notebook.h"
+#include  "wx/app.h"
 
 #include  "wx/msw/private.h"
 
@@ -156,7 +157,20 @@ bool wxNotebook::Create(wxWindow *parent,
                         long style,
                         const wxString& name)
 {
-    // base init
+    // Does ComCtl32 support non-top tabs?
+    int verComCtl32 = wxApp::GetComCtl32Version();
+    if ( verComCtl32 < 470 || verComCtl32 >= 600 )
+    {
+        if (style & wxNB_BOTTOM)
+            style &= ~wxNB_BOTTOM;
+        
+        if (style & wxNB_LEFT)
+            style &= ~wxNB_LEFT;
+        
+        if (style & wxNB_RIGHT)
+            style &= ~wxNB_RIGHT;
+    }
+    
     if ( !CreateControl(parent, id, pos, size, style | wxTAB_TRAVERSAL,
                         wxDefaultValidator, name) )
         return FALSE;
@@ -547,25 +561,31 @@ bool wxNotebook::InsertPage(int nPage,
     return TRUE;
 }
 
-// Hit test
-int wxNotebook::HitTest(const wxPoint& pt, long& flags)
+int wxNotebook::HitTest(const wxPoint& pt, long *flags) const
 {
     TC_HITTESTINFO hitTestInfo;
     hitTestInfo.pt.x = pt.x;
     hitTestInfo.pt.y = pt.y;
-    int item = TabCtrl_HitTest( (HWND) GetHWND(), & hitTestInfo ) ;
-    flags = 0;
+    int item = TabCtrl_HitTest(GetHwnd(), &hitTestInfo);
 
-    if ((hitTestInfo.flags & TCHT_NOWHERE) == TCHT_NOWHERE)
-        flags |= wxNB_HITTEST_NOWHERE;
-    if ((hitTestInfo.flags & TCHT_ONITEMICON) == TCHT_ONITEMICON)
-        flags |= wxNB_HITTEST_ONICON;
-    if ((hitTestInfo.flags & TCHT_ONITEMLABEL) == TCHT_ONITEMLABEL)
-        flags |= wxNB_HITTEST_ONLABEL;
+    if ( flags )
+    {
+        *flags = 0;
+
+        if ((hitTestInfo.flags & TCHT_NOWHERE) == TCHT_NOWHERE)
+            *flags |= wxNB_HITTEST_NOWHERE;
+        if ((hitTestInfo.flags & TCHT_ONITEM) == TCHT_ONITEM)
+            *flags |= wxNB_HITTEST_ONITEM;
+        if ((hitTestInfo.flags & TCHT_ONITEMICON) == TCHT_ONITEMICON)
+            *flags |= wxNB_HITTEST_ONICON;
+        if ((hitTestInfo.flags & TCHT_ONITEMLABEL) == TCHT_ONITEMLABEL)
+            *flags |= wxNB_HITTEST_ONLABEL;
+    }
 
     return item;
 }
 
+
 // ----------------------------------------------------------------------------
 // wxNotebook callbacks
 // ----------------------------------------------------------------------------