git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41797
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// common part of all ctors
void Init();
// common part of all ctors
void Init();
- // hides m_nSelection-th page, shows the newsel-th one and updates m_nSelection
- void UpdateSelection(size_t newsel);
+ // hides the currently shown page and shows the given one (if not -1) and
+ // updates m_nSelection accordingly
+ void UpdateSelection(int selNew);
// remove one page from the notebook, without deleting
virtual wxNotebookPage *DoRemovePage(size_t nPage);
// remove one page from the notebook, without deleting
virtual wxNotebookPage *DoRemovePage(size_t nPage);
void wxNotebook::Init()
{
m_imageList = NULL;
void wxNotebook::Init()
{
m_imageList = NULL;
+ m_nSelection = wxNOT_FOUND;
#if wxUSE_UXTHEME
m_hbrBackground = NULL;
#if wxUSE_UXTHEME
m_hbrBackground = NULL;
-void wxNotebook::UpdateSelection(size_t newsel)
+void wxNotebook::UpdateSelection(int selNew)
- if ( m_nSelection != -1 )
+ if ( m_nSelection != wxNOT_FOUND )
m_pages[m_nSelection]->Show(false);
m_pages[m_nSelection]->Show(false);
+ if ( selNew != wxNOT_FOUND )
- wxNotebookPage *pPage = m_pages[newsel];
+ wxNotebookPage *pPage = m_pages[selNew];
if ( ::IsWindowVisible(GetHwnd()) )
SetFocus();
if ( ::IsWindowVisible(GetHwnd()) )
SetFocus();
}
int wxNotebook::ChangeSelection(size_t nPage)
{
wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("notebook page out of range") );
}
int wxNotebook::ChangeSelection(size_t nPage)
{
wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("notebook page out of range") );
- if ( int(nPage) != m_nSelection )
+ if ( m_nSelection == wxNOT_FOUND || nPage != (size_t)m_nSelection )
{
TabCtrl_SetCurSel(GetHwnd(), nPage);
{
TabCtrl_SetCurSel(GetHwnd(), nPage);
TC_ITEM tcItem;
tcItem.mask = TCIF_IMAGE;
TC_ITEM tcItem;
tcItem.mask = TCIF_IMAGE;
- return TabCtrl_GetItem(GetHwnd(), nPage, &tcItem) ? tcItem.iImage : wxNOT_FOUND;
+ return TabCtrl_GetItem(GetHwnd(), nPage, &tcItem) ? tcItem.iImage
+ : wxNOT_FOUND;
}
bool wxNotebook::SetPageImage(size_t nPage, int nImage)
}
bool wxNotebook::SetPageImage(size_t nPage, int nImage)
- (void) TabCtrl_SetImageList(GetHwnd(), (HIMAGELIST)imageList->GetHIMAGELIST());
+ (void) TabCtrl_SetImageList(GetHwnd(), GetHimagelistOf(imageList));
if ( m_pages.IsEmpty() )
{
// no selection any more, the notebook becamse empty
if ( m_pages.IsEmpty() )
{
// no selection any more, the notebook becamse empty
+ m_nSelection = wxNOT_FOUND;
}
else // notebook still not empty
{
int selNew = TabCtrl_GetCurSel(GetHwnd());
}
else // notebook still not empty
{
int selNew = TabCtrl_GetCurSel(GetHwnd());
+ if ( selNew != wxNOT_FOUND )
{
// No selection change, just refresh the current selection.
// Because it could be that the slection index changed
{
// No selection change, just refresh the current selection.
// Because it could be that the slection index changed
// m_nSelection must be always valid so reset it before calling
// SetSelection()
// m_nSelection must be always valid so reset it before calling
// SetSelection()
+ m_nSelection = wxNOT_FOUND;
SetSelection(selNew);
}
else
SetSelection(selNew);
}
else
TabCtrl_DeleteAllItems(GetHwnd());
TabCtrl_DeleteAllItems(GetHwnd());
+ m_nSelection = wxNOT_FOUND;
InvalidateBestSize();
return true;
InvalidateBestSize();
return true;
// some page should be selected: either this one or the first one if there
// is still no selection
// some page should be selected: either this one or the first one if there
// is still no selection
+ int selNew = wxNOT_FOUND;
if ( bSelect )
selNew = nPage;
if ( bSelect )
selNew = nPage;
- else if ( m_nSelection == -1 )
+ else if ( m_nSelection == wxNOT_FOUND )
+ if ( selNew != wxNOT_FOUND )
SetSelection(selNew);
InvalidateBestSize();
SetSelection(selNew);
InvalidateBestSize();
{
// no, it doesn't come from child, case (b) or (c): forward to a
// page but only if direction is backwards (TAB) or from ourselves,
{
// no, it doesn't come from child, case (b) or (c): forward to a
// page but only if direction is backwards (TAB) or from ourselves,
- if ( m_nSelection != -1 &&
+ if ( m_nSelection != wxNOT_FOUND &&
(!event.GetDirection() || isFromSelf) )
{
// so that the page knows that the event comes from it's parent
(!event.GetDirection() || isFromSelf) )
{
// so that the page knows that the event comes from it's parent