X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1d6fcbcc7088e9c104b3dc5b4704a07f728d55ae..9d55bfef2cb35ac07972e76c786d265c9b35d230:/src/generic/listbkg.cpp?ds=sidebyside diff --git a/src/generic/listbkg.cpp b/src/generic/listbkg.cpp index 9f725353c0..90edce65e6 100644 --- a/src/generic/listbkg.cpp +++ b/src/generic/listbkg.cpp @@ -54,11 +54,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxListbookEvent, wxNotifyEvent) const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING = wxNewEventType(); const wxEventType wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED = wxNewEventType(); #endif -const int wxID_LISTBOOKLISTVIEW = wxNewId(); BEGIN_EVENT_TABLE(wxListbook, wxBookCtrlBase) EVT_SIZE(wxListbook::OnSize) - EVT_LIST_ITEM_SELECTED(wxID_LISTBOOKLISTVIEW, wxListbook::OnListSelected) + EVT_LIST_ITEM_SELECTED(wxID_ANY, wxListbook::OnListSelected) END_EVENT_TABLE() // ============================================================================ @@ -103,7 +102,7 @@ wxListbook::Create(wxWindow *parent, m_bookctrl = new wxListView ( this, - wxID_LISTBOOKLISTVIEW, + wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON | wxLC_SINGLE_SEL | @@ -274,12 +273,17 @@ int wxListbook::GetSelection() const return m_selection; } -int wxListbook::DoSetSelection(size_t n, int flags) +wxBookCtrlBaseEvent* wxListbook::CreatePageChangingEvent() const { - wxListbookEvent event(wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, m_windowId); - return wxBookCtrlBase::DoSetSelection(n, flags, event); + return new wxListbookEvent(wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, m_windowId); } +void wxListbook::MakeChangedEvent(wxBookCtrlBaseEvent &event) +{ + event.SetEventType(wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED); +} + + // ---------------------------------------------------------------------------- // adding/removing the pages // ---------------------------------------------------------------------------- @@ -320,15 +324,9 @@ wxListbook::InsertPage(size_t n, if ( selNew != -1 ) SetSelection(selNew); - InvalidateBestSize(); - // GetListView()->InvalidateBestSize(); - GetListView()->Arrange(); - - if (GetPageCount() == 1) - { - wxSizeEvent sz(GetSize(), GetId()); - ProcessEvent(sz); - } + wxSizeEvent sz(GetSize(), GetId()); + GetEventHandler()->ProcessEvent(sz); + return true; } @@ -361,7 +359,7 @@ wxWindow *wxListbook::DoRemovePage(size_t page) if (GetPageCount() == 0) { wxSizeEvent sz(GetSize(), GetId()); - ProcessEvent(sz); + GetEventHandler()->ProcessEvent(sz); } } @@ -378,7 +376,7 @@ bool wxListbook::DeleteAllPages() m_selection = -1; wxSizeEvent sz(GetSize(), GetId()); - ProcessEvent(sz); + GetEventHandler()->ProcessEvent(sz); return true; } @@ -389,6 +387,12 @@ bool wxListbook::DeleteAllPages() void wxListbook::OnListSelected(wxListEvent& eventList) { + if ( eventList.GetEventObject() != m_bookctrl ) + { + eventList.Skip(); + return; + } + const int selNew = eventList.GetIndex(); if ( selNew == m_selection )