]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 743194 ] HitTest for wxNotebook
authorJulian Smart <julian@anthemion.co.uk>
Sun, 1 Jun 2003 13:26:09 +0000 (13:26 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 1 Jun 2003 13:26:09 +0000 (13:26 +0000)
Yes, we do need implementations for other platforms,
but it's a start.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/notebook.h
src/msw/notebook.cpp

index a2e6f841837a8a0fd2b6c00865ccd518fc3a28a7..f515dada988bac85e6d54c03ff4d0afee460cdc0 100644 (file)
 // wxNotebook
 // ----------------------------------------------------------------------------
 
+/*
+ * Flags returned by HitTest
+ */
+
+#define wxNB_HITTEST_NOWHERE           1
+#define wxNB_HITTEST_ONICON            2
+#define wxNB_HITTEST_ONLABEL           4
+#define wxNB_HITTEST_ONITEM            6
+
 class WXDLLEXPORT wxNotebook : public wxNotebookBase
 {
 public:
@@ -103,6 +112,9 @@ public:
     // style.
   void SetTabSize(const wxSize& sz);
 
+
+  // Hit test
+  int HitTest(const wxPoint& pt, long& flags);
   // calculate the size of the notebook from the size of its page
   virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
 
index 7c3ceddae18d9c9a09f8be210adbb6ab5e7e79eb..7ee5b2337a2f9757976baa4371a3290012a71a17 100644 (file)
@@ -468,6 +468,25 @@ bool wxNotebook::InsertPage(int nPage,
     // finally do insert it
     if ( TabCtrl_InsertItem(m_hwnd, nPage, &tcItem) == -1 )
     {
+// Hit test
+int wxNotebook::HitTest(const wxPoint& pt, long& flags)
+{
+    TC_HITTESTINFO hitTestInfo;
+    hitTestInfo.pt.x = pt.x;
+    hitTestInfo.pt.y = pt.y;
+    int item = TabCtrl_HitTest( (HWND) GetHWND(), & hitTestInfo ) ;
+    flags = 0;
+
+    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;
+
+    return item;
+}
+
         wxLogError(wxT("Can't create the notebook page '%s'."), strText.c_str());
 
         return FALSE;