use wxID_ANY for internal controller control instead of wxID_CHOICE/LIST/TOOLBAR/TREEBOOKTREEVIEW; this fixes asserts about using negative ids after last change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -54,10 +54,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxChoicebookEvent, wxNotifyEvent)
|
|||||||
const wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING = wxNewEventType();
|
||||||
const wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED = wxNewEventType();
|
||||||
#endif
|
#endif
|
||||||
const int wxID_CHOICEBOOKCHOICE = wxWindow::NewControlId();
|
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxChoicebook, wxBookCtrlBase)
|
BEGIN_EVENT_TABLE(wxChoicebook, wxBookCtrlBase)
|
||||||
EVT_CHOICE(wxID_CHOICEBOOKCHOICE, wxChoicebook::OnChoiceSelected)
|
EVT_CHOICE(wxID_ANY, wxChoicebook::OnChoiceSelected)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -98,7 +97,7 @@ wxChoicebook::Create(wxWindow *parent,
|
|||||||
m_bookctrl = new wxChoice
|
m_bookctrl = new wxChoice
|
||||||
(
|
(
|
||||||
this,
|
this,
|
||||||
wxID_CHOICEBOOKCHOICE,
|
wxID_ANY,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
wxDefaultSize
|
wxDefaultSize
|
||||||
);
|
);
|
||||||
@@ -302,6 +301,12 @@ bool wxChoicebook::DeleteAllPages()
|
|||||||
|
|
||||||
void wxChoicebook::OnChoiceSelected(wxCommandEvent& eventChoice)
|
void wxChoicebook::OnChoiceSelected(wxCommandEvent& eventChoice)
|
||||||
{
|
{
|
||||||
|
if ( eventChoice.GetEventObject() != m_bookctrl )
|
||||||
|
{
|
||||||
|
eventChoice.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const int selNew = eventChoice.GetSelection();
|
const int selNew = eventChoice.GetSelection();
|
||||||
|
|
||||||
if ( selNew == m_selection )
|
if ( selNew == m_selection )
|
||||||
|
@@ -54,11 +54,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxListbookEvent, wxNotifyEvent)
|
|||||||
const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING = wxNewEventType();
|
||||||
const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED = wxNewEventType();
|
||||||
#endif
|
#endif
|
||||||
const int wxID_LISTBOOKLISTVIEW = wxWindow::NewControlId();
|
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxListbook, wxBookCtrlBase)
|
BEGIN_EVENT_TABLE(wxListbook, wxBookCtrlBase)
|
||||||
EVT_SIZE(wxListbook::OnSize)
|
EVT_SIZE(wxListbook::OnSize)
|
||||||
EVT_LIST_ITEM_SELECTED(wxID_LISTBOOKLISTVIEW, wxListbook::OnListSelected)
|
EVT_LIST_ITEM_SELECTED(wxID_ANY, wxListbook::OnListSelected)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -103,7 +102,7 @@ wxListbook::Create(wxWindow *parent,
|
|||||||
m_bookctrl = new wxListView
|
m_bookctrl = new wxListView
|
||||||
(
|
(
|
||||||
this,
|
this,
|
||||||
wxID_LISTBOOKLISTVIEW,
|
wxID_ANY,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
wxDefaultSize,
|
wxDefaultSize,
|
||||||
wxLC_ICON | wxLC_SINGLE_SEL |
|
wxLC_ICON | wxLC_SINGLE_SEL |
|
||||||
@@ -392,6 +391,12 @@ bool wxListbook::DeleteAllPages()
|
|||||||
|
|
||||||
void wxListbook::OnListSelected(wxListEvent& eventList)
|
void wxListbook::OnListSelected(wxListEvent& eventList)
|
||||||
{
|
{
|
||||||
|
if ( eventList.GetEventObject() != m_bookctrl )
|
||||||
|
{
|
||||||
|
eventList.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const int selNew = eventList.GetIndex();
|
const int selNew = eventList.GetIndex();
|
||||||
|
|
||||||
if ( selNew == m_selection )
|
if ( selNew == m_selection )
|
||||||
|
@@ -50,7 +50,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolbookEvent, wxNotifyEvent)
|
|||||||
const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING = wxNewEventType();
|
||||||
const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED = wxNewEventType();
|
||||||
#endif
|
#endif
|
||||||
const int wxID_TOOLBOOKTOOLBAR = wxWindow::NewControlId();
|
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxToolbook, wxBookCtrlBase)
|
BEGIN_EVENT_TABLE(wxToolbook, wxBookCtrlBase)
|
||||||
EVT_SIZE(wxToolbook::OnSize)
|
EVT_SIZE(wxToolbook::OnSize)
|
||||||
@@ -102,7 +101,7 @@ bool wxToolbook::Create(wxWindow *parent,
|
|||||||
m_bookctrl = new wxButtonToolBar
|
m_bookctrl = new wxButtonToolBar
|
||||||
(
|
(
|
||||||
this,
|
this,
|
||||||
wxID_TOOLBOOKTOOLBAR,
|
wxID_ANY,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
wxDefaultSize,
|
wxDefaultSize,
|
||||||
orient|wxTB_TEXT|wxTB_FLAT|wxNO_BORDER
|
orient|wxTB_TEXT|wxTB_FLAT|wxNO_BORDER
|
||||||
@@ -114,7 +113,7 @@ bool wxToolbook::Create(wxWindow *parent,
|
|||||||
m_bookctrl = new wxToolBar
|
m_bookctrl = new wxToolBar
|
||||||
(
|
(
|
||||||
this,
|
this,
|
||||||
wxID_TOOLBOOKTOOLBAR,
|
wxID_ANY,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
wxDefaultSize,
|
wxDefaultSize,
|
||||||
orient|wxTB_TEXT|wxTB_FLAT|wxTB_NODIVIDER|wxNO_BORDER
|
orient|wxTB_TEXT|wxTB_FLAT|wxTB_NODIVIDER|wxNO_BORDER
|
||||||
|
@@ -54,12 +54,11 @@ const wxEventType wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED = wxNewEventType();
|
|||||||
const wxEventType wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED = wxNewEventType();
|
||||||
const wxEventType wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED = wxNewEventType();
|
const wxEventType wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED = wxNewEventType();
|
||||||
#endif
|
#endif
|
||||||
const int wxID_TREEBOOKTREEVIEW = wxWindow::NewControlId();
|
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxTreebook, wxBookCtrlBase)
|
BEGIN_EVENT_TABLE(wxTreebook, wxBookCtrlBase)
|
||||||
EVT_TREE_SEL_CHANGED (wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeSelectionChange)
|
EVT_TREE_SEL_CHANGED (wxID_ANY, wxTreebook::OnTreeSelectionChange)
|
||||||
EVT_TREE_ITEM_EXPANDED (wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeNodeExpandedCollapsed)
|
EVT_TREE_ITEM_EXPANDED (wxID_ANY, wxTreebook::OnTreeNodeExpandedCollapsed)
|
||||||
EVT_TREE_ITEM_COLLAPSED(wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeNodeExpandedCollapsed)
|
EVT_TREE_ITEM_COLLAPSED(wxID_ANY, wxTreebook::OnTreeNodeExpandedCollapsed)
|
||||||
|
|
||||||
WX_EVENT_TABLE_CONTROL_CONTAINER(wxTreebook)
|
WX_EVENT_TABLE_CONTROL_CONTAINER(wxTreebook)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
@@ -108,7 +107,7 @@ wxTreebook::Create(wxWindow *parent,
|
|||||||
m_bookctrl = new wxTreeCtrl
|
m_bookctrl = new wxTreeCtrl
|
||||||
(
|
(
|
||||||
this,
|
this,
|
||||||
wxID_TREEBOOKTREEVIEW,
|
wxID_ANY,
|
||||||
wxDefaultPosition,
|
wxDefaultPosition,
|
||||||
wxDefaultSize,
|
wxDefaultSize,
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
@@ -691,6 +690,12 @@ void wxTreebook::AssignImageList(wxImageList *imageList)
|
|||||||
|
|
||||||
void wxTreebook::OnTreeSelectionChange(wxTreeEvent& event)
|
void wxTreebook::OnTreeSelectionChange(wxTreeEvent& event)
|
||||||
{
|
{
|
||||||
|
if ( event.GetEventObject() != m_bookctrl )
|
||||||
|
{
|
||||||
|
event.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
wxTreeItemId newId = event.GetItem();
|
wxTreeItemId newId = event.GetItem();
|
||||||
|
|
||||||
if ( (m_selection == wxNOT_FOUND &&
|
if ( (m_selection == wxNOT_FOUND &&
|
||||||
@@ -710,6 +715,12 @@ void wxTreebook::OnTreeSelectionChange(wxTreeEvent& event)
|
|||||||
|
|
||||||
void wxTreebook::OnTreeNodeExpandedCollapsed(wxTreeEvent & event)
|
void wxTreebook::OnTreeNodeExpandedCollapsed(wxTreeEvent & event)
|
||||||
{
|
{
|
||||||
|
if ( event.GetEventObject() != m_bookctrl )
|
||||||
|
{
|
||||||
|
event.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
wxTreeItemId nodeId = event.GetItem();
|
wxTreeItemId nodeId = event.GetItem();
|
||||||
if ( !nodeId.IsOk() || nodeId == GetTreeCtrl()->GetRootItem() )
|
if ( !nodeId.IsOk() || nodeId == GetTreeCtrl()->GetRootItem() )
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user