示例#1
0
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);
    }
}
示例#2
0
void wxSTEditorTreeCtrl::OnSTEState(wxSTEditorEvent &event)
{
    event.Skip();

    if ( event.HasStateChange(STE_FILENAME | STE_MODIFIED | STE_EDITABLE) )
        UpdateFromNotebook();
}
示例#3
0
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();
}
示例#4
0
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();
}
示例#5
0
void wxSTEditorTreeCtrl::OnNotebookPageChanged(wxNotebookEvent &event)
{
    event.Skip();
    UpdateFromNotebook();
}