Example #1
0
void DebuggerMenuHandler::ProcessCommandEvent(wxWindow *owner, wxCommandEvent &event)
{
    LEditor *editor = dynamic_cast<LEditor*>(owner);
    if ( !editor ) {
        return;
    }

    if (event.GetId() == XRCID("add_breakpoint")) {
        editor->AddBreakpoint();
    }
    if (event.GetId() == XRCID("insert_breakpoint")) {
        editor->ToggleBreakpoint();
    }
    if ((event.GetId() == XRCID("insert_temp_breakpoint"))
        || (event.GetId() == XRCID("insert_disabled_breakpoint"))
        || (event.GetId() == XRCID("insert_cond_breakpoint"))) {
        editor->AddOtherBreakpointType(event);
    }
    if (event.GetId() == XRCID("delete_breakpoint")) {
        editor->DelBreakpoint();
    }

    if (event.GetId() == XRCID("toggle_breakpoint_enabled_status")) {
        editor->ToggleBreakpointEnablement();
    }

    if (event.GetId() == XRCID("ignore_breakpoint")) {
        editor->OnIgnoreBreakpoint();
    }

    if (event.GetId() == XRCID("edit_breakpoint")) {
        editor->OnEditBreakpoint();
    }

    if (event.GetId() == XRCID("disable_all_breakpoints")) {
        clDebugEvent event(wxEVT_DBG_UI_DISABLE_ALL_BREAKPOINTS);
        EventNotifier::Get()->ProcessEvent( event );
        ManagerST::Get()->GetBreakpointsMgr()->SetAllBreakpointsEnabledState(false);
    }

    if (event.GetId() == XRCID("enable_all_breakpoints")) {
        clDebugEvent event(wxEVT_DBG_UI_ENABLE_ALL_BREAKPOINTS );
        EventNotifier::Get()->ProcessEvent( event );
        ManagerST::Get()->GetBreakpointsMgr()->SetAllBreakpointsEnabledState(true);
    }

    if (event.GetId() == XRCID("delete_all_breakpoints")) {
        
        // First let the plugins do this thing
        clDebugEvent event(wxEVT_DBG_UI_DELTE_ALL_BREAKPOINTS);
        EventNotifier::Get()->AddPendingEvent( event );
        
        // Now clear the manager
        ManagerST::Get()->GetBreakpointsMgr()->DelAllBreakpoints();
    }
}