X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/22a35096a0a9c3fe4d3d32b8d68a361126ef9677..b99891b0c8153704a9772ec8a60d548de86c531d:/src/generic/toolbkg.cpp?ds=inline diff --git a/src/generic/toolbkg.cpp b/src/generic/toolbkg.cpp index f85a27462b..0b87be4bc7 100644 --- a/src/generic/toolbkg.cpp +++ b/src/generic/toolbkg.cpp @@ -50,7 +50,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolbookEvent, wxNotifyEvent) const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING = wxNewEventType(); const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED = wxNewEventType(); #endif -const int wxID_TOOLBOOKTOOLBAR = wxNewId(); BEGIN_EVENT_TABLE(wxToolbook, wxBookCtrlBase) EVT_SIZE(wxToolbook::OnSize) @@ -102,7 +101,7 @@ bool wxToolbook::Create(wxWindow *parent, m_bookctrl = new wxButtonToolBar ( this, - wxID_TOOLBOOKTOOLBAR, + wxID_ANY, wxDefaultPosition, wxDefaultSize, orient|wxTB_TEXT|wxTB_FLAT|wxNO_BORDER @@ -114,7 +113,7 @@ bool wxToolbook::Create(wxWindow *parent, m_bookctrl = new wxToolBar ( this, - wxID_TOOLBOOKTOOLBAR, + wxID_ANY, wxDefaultPosition, wxDefaultSize, orient|wxTB_TEXT|wxTB_FLAT|wxTB_NODIVIDER|wxNO_BORDER @@ -245,39 +244,20 @@ int wxToolbook::GetSelection() const return m_selection; } -int wxToolbook::SetSelection(size_t n) +wxBookCtrlBaseEvent* wxToolbook::CreatePageChangingEvent() const { - wxCHECK_MSG( IS_VALID_PAGE(n), wxNOT_FOUND, - wxT("invalid page index in wxToolbook::SetSelection()") ); - - const int oldSel = m_selection; - - if ( int(n) != m_selection ) - { - wxToolbookEvent event(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING, m_windowId); - event.SetSelection(n); - event.SetOldSelection(m_selection); - event.SetEventObject(this); - if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() ) - { - if ( m_selection != wxNOT_FOUND ) - m_pages[m_selection]->Hide(); - - wxWindow *page = m_pages[n]; - page->SetSize(GetPageRect()); - page->Show(); - - // change m_selection now to ignore the selection change event - m_selection = n; - GetToolBar()->ToggleTool(n + 1, true); + return new wxToolbookEvent(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING, m_windowId); +} - // program allows the page change - event.SetEventType(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED); - (void)GetEventHandler()->ProcessEvent(event); - } - } +void wxToolbook::MakeChangedEvent(wxBookCtrlBaseEvent &event) +{ + event.SetEventType(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED); +} - return oldSel; +void wxToolbook::UpdateSelectedPage(size_t newsel) +{ + m_selection = newsel; + GetToolBar()->ToggleTool(newsel + 1, true); } // Not part of the wxBookctrl API, but must be called in OnIdle or