/// Apply the styles when a different tab is selected, so the previews are /// up to date void wxRichTextFormattingDialog::OnTabChanged(wxBookCtrlEvent& event) { if (m_ignoreUpdates) return; if (GetBookCtrl() != event.GetEventObject()) { event.Skip(); return; } int oldPageId = event.GetOldSelection(); if (oldPageId != -1) { wxWindow* page = GetBookCtrl()->GetPage(oldPageId); if (page) page->TransferDataFromWindow(); } int pageId = event.GetSelection(); if (pageId != -1) { wxWindow* page = GetBookCtrl()->GetPage(pageId); if (page) page->TransferDataToWindow(); } }
void wxNotebook::OnSelChange(wxBookCtrlEvent& event) { // is it our tab control? if ( event.GetEventObject() == this ) ChangePage(event.GetOldSelection(), event.GetSelection()); // we want to give others a chance to process this message as well event.Skip(); }
void wxNotebook::OnSelChange ( wxBookCtrlEvent& rEvent ) { // // Is it our tab control? // if (rEvent.GetEventObject() == this) { int nPageCount = GetPageCount(); int nSel; ULONG ulOS2Sel = (ULONG)rEvent.GetOldSelection(); bool bFound = false; for (nSel = 0; nSel < nPageCount; nSel++) { if (ulOS2Sel == (ULONG)m_alPageId[nSel]) { bFound = true; break; } } if (!bFound) return; m_pages[nSel]->Show(false); ulOS2Sel = (ULONG)rEvent.GetSelection(); bFound = false; for (nSel = 0; nSel < nPageCount; nSel++) { if (ulOS2Sel == (ULONG)m_alPageId[nSel]) { bFound = true; break; } } if (!bFound) return; wxNotebookPage* pPage = m_pages[nSel]; pPage->Show(true); m_nSelection = nSel; } // // We want to give others a chance to process this message as well // rEvent.Skip(); } // end of wxNotebook::OnSelChange
void clMultiBook::OnEventProxy(wxBookCtrlEvent& event) { if(event.GetEventObject() == this) { // Avoid loops event.Skip(); return; } int selection = event.GetSelection(); int oldSelection = event.GetOldSelection(); Notebook* book = dynamic_cast<Notebook*>(event.GetEventObject()); if(!book) { clWARNING() << "clMultiBook::OnEventProxy no notebook event object!"; return; } // Convert the event wxBookCtrlEvent proxyEvent(event.GetEventType()); proxyEvent.SetEventObject(this); proxyEvent.SetSelection(wxNOT_FOUND); proxyEvent.SetOldSelection(wxNOT_FOUND); if(selection != wxNOT_FOUND) { proxyEvent.SetSelection(BookIndexToGlobalIndex(book, selection)); } if(oldSelection != wxNOT_FOUND) { proxyEvent.SetOldSelection(BookIndexToGlobalIndex(book, oldSelection)); } // Process the event if((event.GetEventType() == wxEVT_BOOK_TAB_CONTEXT_MENU) || (event.GetEventType() == wxEVT_BOOK_PAGE_CHANGED)) { // Use ProcessEvent GetEventHandler()->ProcessEvent(proxyEvent); } else if((event.GetEventType() == wxEVT_BOOK_PAGE_CLOSING) || (event.GetEventType() == wxEVT_BOOK_PAGE_CHANGING)) { // Handle with ProcessEvent with Veto option GetEventHandler()->ProcessEvent(proxyEvent); if(!proxyEvent.IsAllowed()) { event.Veto(); } } else { // Handle with AddPendingEvent GetEventHandler()->AddPendingEvent(proxyEvent); if(event.GetEventType() == wxEVT_BOOK_PAGE_CLOSED) { // A page was closed CallAfter(&clMultiBook::UpdateView); } } }
void DebuggerPane::OnPageChanged(wxBookCtrlEvent& event) { if(m_initDone && DebuggerMgr::Get().GetActiveDebugger() && DebuggerMgr::Get().GetActiveDebugger()->IsRunning()) { if(event.GetEventObject() == m_book) { ManagerST::Get()->CallAfter(&Manager::UpdateDebuggerPane); } else { event.Skip(); } } else { event.Skip(); } }
void MainBook::OnTabLabelContextMenu(wxBookCtrlEvent& e) { e.Skip(); wxWindow* tabCtrl = static_cast<wxWindow*>(e.GetEventObject()); if((e.GetSelection() == m_book->GetSelection()) && (tabCtrl->GetParent() == m_book)) { // we only show context menu for the active tab e.Skip(false); wxMenu* contextMenu = wxXmlResource::Get()->LoadMenu(wxT("editor_tab_right_click")); // Notify the plugins about the tab label context menu clContextMenuEvent event(wxEVT_CONTEXT_MENU_TAB_LABEL); event.SetMenu(contextMenu); EventNotifier::Get()->ProcessEvent(event); contextMenu = event.GetMenu(); tabCtrl->PopupMenu(contextMenu); wxDELETE(contextMenu); } }