void wxSTEditorTreeCtrl::SetSTENotebook(wxSTEditorNotebook* notebook) { if (m_steNotebook != NULL) { m_steNotebook->Disconnect(wxID_ANY, wxEVT_DESTROY, wxWindowDestroyEventHandler(wxSTEditorTreeCtrl::OnWindowDestroy), NULL, this); m_steNotebook->Disconnect(wxID_ANY, wxEVT_STNOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(wxSTEditorTreeCtrl::OnNotebookPageChanged), NULL, this); m_steNotebook->Disconnect(wxID_ANY, wxEVT_STEDITOR_STATE_CHANGED, wxSTEditorEventHandler(wxSTEditorTreeCtrl::OnSTEState), NULL, this); } m_steNotebook = notebook; DeleteAllItems(); m_windowToSTETreeItemDataMap.clear(); if (m_steNotebook != NULL) { UpdateFromNotebook(); m_steNotebook->Connect(wxID_ANY, wxEVT_DESTROY, wxWindowDestroyEventHandler(wxSTEditorTreeCtrl::OnWindowDestroy), NULL, this); m_steNotebook->Connect(wxID_ANY, wxEVT_STNOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(wxSTEditorTreeCtrl::OnNotebookPageChanged), NULL, this); m_steNotebook->Connect(wxID_ANY, wxEVT_STEDITOR_STATE_CHANGED, wxSTEditorEventHandler(wxSTEditorTreeCtrl::OnSTEState), NULL, this); } }
void wxSTEditorTreeCtrl::OnSTEState(wxSTEditorEvent &event) { event.Skip(); if ( event.HasStateChange(STE_FILENAME | STE_MODIFIED | STE_EDITABLE) ) UpdateFromNotebook(); }
void wxSTEditorTreeCtrl::OnSTEState(wxSTEditorEvent &event) { event.Skip(); if ( event.HasStateChange(STE_MODIFIED) && (event.GetEditor() != NULL) && (event.GetEditor()->GetTreeItemData() != NULL) && (event.GetEditor()->GetTreeItemData()->m_id)) { SetItemTextColour(event.GetEditor()->GetTreeItemData()->m_id, event.GetEditor()->IsModified() ? *wxRED : *wxBLACK); } else if ( event.HasStateChange(STE_FILENAME | STE_MODIFIED | STE_EDITABLE) ) UpdateFromNotebook(); }
void wxSTEditorTreeCtrl::OnNotebookPageChanged(wxNotebookEvent &event) { event.Skip(); if (m_notePageId) SetItemBold(m_notePageId, false); wxNotebook* notebook = wxDynamicCast(event.GetEventObject(), wxNotebook); int selection = event.GetSelection(); wxWindow* page = NULL; if (notebook && (selection >= 0) && (selection < (int)notebook->GetPageCount())) page = notebook->GetPage(selection); wxLongToLongHashMap::iterator it = m_windowToSTETreeItemDataMap.find((long)page); if (it != m_windowToSTETreeItemDataMap.end()) { wxSTETreeItemData* treeData = (wxSTETreeItemData*)it->second; m_notePageId = treeData->m_id; if (m_notePageId) SetItemBold(m_notePageId, true); } else UpdateFromNotebook(); }
void wxSTEditorTreeCtrl::OnNotebookPageChanged(wxNotebookEvent &event) { event.Skip(); UpdateFromNotebook(); }