Applied patch [ 743194 ] HitTest for wxNotebook
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
This commit is contained in:
@@ -27,6 +27,15 @@
|
|||||||
// wxNotebook
|
// 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
|
class WXDLLEXPORT wxNotebook : public wxNotebookBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -103,6 +112,9 @@ public:
|
|||||||
// style.
|
// style.
|
||||||
void SetTabSize(const wxSize& sz);
|
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
|
// calculate the size of the notebook from the size of its page
|
||||||
virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
|
virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
|
||||||
|
|
||||||
|
@@ -468,6 +468,25 @@ bool wxNotebook::InsertPage(int nPage,
|
|||||||
// finally do insert it
|
// finally do insert it
|
||||||
if ( TabCtrl_InsertItem(m_hwnd, nPage, &tcItem) == -1 )
|
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());
|
wxLogError(wxT("Can't create the notebook page '%s'."), strText.c_str());
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
Reference in New Issue
Block a user