Refactor: use wxBookCtrlBase::m_selection in all derived classes.
All book control classes with the exception of wxGTK wxNotebook stored the currently selected page in m_selection or m_nSelection (or, in wxUniv wxNotebook case, m_sel) variable. Remove all of them and add m_selection directly to the base class itself so that it can be reused everywhere. Closes #12622. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -61,10 +61,11 @@ static void event_after(GtkNotebook*, GdkEvent*, wxNotebook*);
|
||||
|
||||
extern "C" {
|
||||
static void
|
||||
switch_page_after(GtkWidget* widget, GtkNotebookPage*, guint, wxNotebook* win)
|
||||
switch_page_after(GtkNotebook* widget, GtkNotebookPage*, guint, wxNotebook* win)
|
||||
{
|
||||
g_signal_handlers_block_by_func(widget, (void*)switch_page_after, win);
|
||||
win->SendPageChangedEvent(win->m_oldSelection);
|
||||
|
||||
win->GTKOnPageChanged();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,6 +246,8 @@ int wxNotebook::DoSetSelection( size_t page, int flags )
|
||||
g_signal_handlers_unblock_by_func(m_widget, (void*)switch_page, this);
|
||||
}
|
||||
|
||||
m_selection = page;
|
||||
|
||||
wxNotebookPage *client = GetPage(page);
|
||||
if ( client )
|
||||
client->SetFocus();
|
||||
@@ -252,6 +255,13 @@ int wxNotebook::DoSetSelection( size_t page, int flags )
|
||||
return selOld;
|
||||
}
|
||||
|
||||
void wxNotebook::GTKOnPageChanged()
|
||||
{
|
||||
m_selection = gtk_notebook_get_current_page(GTK_NOTEBOOK(m_widget));
|
||||
|
||||
SendPageChangedEvent(m_oldSelection);
|
||||
}
|
||||
|
||||
bool wxNotebook::SetPageText( size_t page, const wxString &text )
|
||||
{
|
||||
wxCHECK_MSG(page < GetPageCount(), false, "invalid notebook index");
|
||||
|
||||
Reference in New Issue
Block a user