X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04eb05b01ec530d7593e5e047665b28c232f52a3..a1a816f8ccbcdd119aa17bcdcd7094d6bf1ceee0:/src/msw/notebook.cpp diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index dbca8ed2d2..a69381be92 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -175,7 +175,7 @@ bool wxNotebook::Create(wxWindow *parent, wxDefaultValidator, name) ) return FALSE; - if ( !MSWCreateControl(WC_TABCONTROL, _T(""), pos, size) ) + if ( !MSWCreateControl(WC_TABCONTROL, wxEmptyString, pos, size) ) return FALSE; SetBackgroundColour(wxColour(::GetSysColor(COLOR_BTNFACE))); @@ -265,7 +265,7 @@ bool wxNotebook::SetPageText(int nPage, const wxString& strText) wxString wxNotebook::GetPageText(int nPage) const { - wxCHECK_MSG( IS_VALID_PAGE(nPage), wxT(""), wxT("notebook page out of range") ); + wxCHECK_MSG( IS_VALID_PAGE(nPage), wxEmptyString, wxT("notebook page out of range") ); wxChar buf[256]; TC_ITEM tcItem; @@ -424,7 +424,8 @@ wxNotebookPage *wxNotebook::DoRemovePage(int nPage) // for some unknown reason if the tab control shows the up-down // control (i.e. when there are too many pages) -- otherwise after // deleting a page nothing at all is shown - m_pages[m_nSelection]->Refresh(); + if (m_nSelection >= 0) + m_pages[m_nSelection]->Refresh(); } if ( selNew != -1 ) @@ -561,25 +562,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 // ---------------------------------------------------------------------------- @@ -662,9 +669,9 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) // OnSetFocus() because we don't know which direction the focus came // from in this case and so can't choose between setting the focus to // first or last panel child - wxWindow *parent = GetParent(); - if ( event.GetEventObject() == parent ) + // the cast is here to fic a GCC ICE + if ( ((wxWindow*)event.GetEventObject()) == parent ) { // no, it doesn't come from child, case (b): forward to a page if ( m_nSelection != -1 ) @@ -816,11 +823,14 @@ void wxNotebook::ApplyThemeBackground(wxWindow* window, const wxColour& colour) window->SetBackgroundColour(colour); } - for ( wxWindowList::Node *node = window->GetChildren().GetFirst(); node; node = node->GetNext() ) + for ( wxWindowList::compatibility_iterator node = window->GetChildren().GetFirst(); node; node = node->GetNext() ) { wxWindow *child = node->GetData(); ApplyThemeBackground(child, colour); } +#else + window; + colour; #endif }