//////////////////////////////////////////////////////////////////////
// This file was auto-generated by codelite's wxCrafter Plugin
// wxCrafter project file: memcheckui.wxcp
// Do not modify this file by hand!
//////////////////////////////////////////////////////////////////////

#include "memcheckui.h"


// Declare the bitmap loading function
extern void wxCrafterpca4kKInitBitmapResources();

static bool bBitmapLoaded = false;


MemCheckIcons16::MemCheckIcons16()
    : wxImageList(16, 16, true)
{
    if ( !bBitmapLoaded ) {
        // We need to initialise the default bitmap handler
        wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
        wxCrafterpca4kKInitBitmapResources();
        bBitmapLoaded = true;
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_check"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_check"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_import"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_import"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_settings"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_settings"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_error"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_error"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_location"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_location"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_auxiliary"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_auxiliary"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_transparent"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_transparent"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_current"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_current"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_stop"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_stop"), bmp ) );
    }
    
}

MemCheckIcons16::~MemCheckIcons16()
{
}

MemCheckIcons24::MemCheckIcons24()
    : wxImageList(24, 24, true)
{
    if ( !bBitmapLoaded ) {
        // We need to initialise the default bitmap handler
        wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
        wxCrafterpca4kKInitBitmapResources();
        bBitmapLoaded = true;
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_check_24"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_check_24"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_import_24"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_import_24"), bmp ) );
    }
    
    {
        wxBitmap bmp;
        wxIcon icn;
        bmp = wxXmlResource::Get()->LoadBitmap(wxT("memcheck_stop_24"));
        icn.CopyFromBitmap( bmp );
        this->Add( icn );
        m_bitmaps.insert( std::make_pair(wxT("memcheck_stop_24"), bmp ) );
    }
    
}

MemCheckIcons24::~MemCheckIcons24()
{
}

MemCheckOutputViewBase::MemCheckOutputViewBase(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
    : wxPanel(parent, id, pos, size, style)
{
    if ( !bBitmapLoaded ) {
        // We need to initialise the default bitmap handler
        wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
        wxCrafterpca4kKInitBitmapResources();
        bBitmapLoaded = true;
    }
    
    wxBoxSizer* boxSizer221 = new wxBoxSizer(wxVERTICAL);
    this->SetSizer(boxSizer221);
    
    m_auibar223 = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxAUI_TB_PLAIN_BACKGROUND|wxAUI_TB_DEFAULT_STYLE);
    m_auibar223->SetToolBitmapSize(wxSize(16,16));
    
    boxSizer221->Add(m_auibar223, 0, wxALL|wxEXPAND, 0);
    
    m_auibar223->AddTool(XRCID("memcheck_check_active_project"), _("Run check"), wxXmlResource::Get()->LoadBitmap(wxT("check")), wxNullBitmap, wxITEM_NORMAL, _("Run check"), wxT(""), NULL);
    
    m_auibar223->AddTool(XRCID("memcheck_import"), _("Load MemCheck log from file."), wxXmlResource::Get()->LoadBitmap(wxT("document_import")), wxNullBitmap, wxITEM_NORMAL, _("Load MemCheck log from file."), wxT(""), NULL);
    
    m_auibar223->AddTool(ID_TOOL_STOP_PROCESS, _("Stop Process"), wxXmlResource::Get()->LoadBitmap(wxT("stop")), wxNullBitmap, wxITEM_NORMAL, _("Stop Process"), _("Stop Process"), NULL);
    
    m_auibar223->AddSeparator();
    
    m_auibar223->AddTool(XRCID("memcheck_expand_all"), _("Expand all"), wxXmlResource::Get()->LoadBitmap(wxT("expand")), wxNullBitmap, wxITEM_NORMAL, _("Expand all"), wxT(""), NULL);
    
    m_auibar223->AddTool(XRCID("memcheck_next"), _("Jump to next error"), wxXmlResource::Get()->LoadBitmap(wxT("arrow_down")), wxNullBitmap, wxITEM_NORMAL, _("Jump to next error"), wxT(""), NULL);
    
    m_auibar223->AddTool(XRCID("memcheck_prev"), _("Jump to previous error"), wxXmlResource::Get()->LoadBitmap(wxT("arrow_up")), wxNullBitmap, wxITEM_NORMAL, _("Jump to previous error"), wxT(""), NULL);
    
    m_auibar223->AddSeparator();
    
    m_auibar223->AddTool(XRCID("memcheck_settings"), _("Settings"), wxXmlResource::Get()->LoadBitmap(wxT("setting_tools")), wxNullBitmap, wxITEM_NORMAL, _("Settings"), wxT(""), NULL);
    
    m_auibar223->AddSeparator();
    
    m_auibar223->AddTool(XRCID("memcheck_open_plain"), _("Open plain output in editor window."), wxXmlResource::Get()->LoadBitmap(wxT("plain")), wxNullBitmap, wxITEM_NORMAL, _("Open plain output in editor window."), wxT(""), NULL);
    m_auibar223->Realize();
    
    m_notebookOutputView = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0);
    m_notebookOutputView->SetName(wxT("m_notebookOutputView"));
    wxImageList* m_notebookOutputView_il = new wxImageList(16, 16);
    m_notebookOutputView->AssignImageList(m_notebookOutputView_il);
    
    boxSizer221->Add(m_notebookOutputView, 1, wxALL|wxEXPAND, 2);
    
    m_panelErrors = new wxPanel(m_notebookOutputView, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    int m_panelErrorsImgIndex;
    m_panelErrorsImgIndex = m_notebookOutputView_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("node-tree")));
    m_notebookOutputView->AddPage(m_panelErrors, _("Errors"), true, m_panelErrorsImgIndex);
    
    wxBoxSizer* boxSizer534 = new wxBoxSizer(wxHORIZONTAL);
    m_panelErrors->SetSizer(boxSizer534);
    
    m_dataViewCtrlErrors = new wxDataViewCtrl(m_panelErrors, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBORDER_THEME);
    
    m_dataViewCtrlErrorsModel = new MemCheckDVCErrorsModel;
    m_dataViewCtrlErrorsModel->SetColCount( 6 );
    m_dataViewCtrlErrors->AssociateModel(m_dataViewCtrlErrorsModel.get() );
    
    boxSizer534->Add(m_dataViewCtrlErrors, 1, wxALL|wxEXPAND, 0);
    
    m_dataViewCtrlErrors->AppendBitmapColumn(_("Current"), m_dataViewCtrlErrors->GetColumnCount(), wxDATAVIEW_CELL_INERT, -2, wxALIGN_CENTER);
    m_dataViewCtrlErrors->AppendToggleColumn(_("Suppress"), m_dataViewCtrlErrors->GetColumnCount(), wxDATAVIEW_CELL_ACTIVATABLE, -2, wxALIGN_CENTER);
    m_dataViewCtrlErrors->AppendIconTextColumn(_("Label"), m_dataViewCtrlErrors->GetColumnCount(), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT);
    m_dataViewCtrlErrors->AppendTextColumn(_("File"), m_dataViewCtrlErrors->GetColumnCount(), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT);
    m_dataViewCtrlErrors->AppendTextColumn(_("Line"), m_dataViewCtrlErrors->GetColumnCount(), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT);
    m_dataViewCtrlErrors->AppendTextColumn(_("Object"), m_dataViewCtrlErrors->GetColumnCount(), wxDATAVIEW_CELL_INERT, -2, wxALIGN_LEFT);
    wxBoxSizer* boxSizer610 = new wxBoxSizer(wxVERTICAL);
    
    boxSizer534->Add(boxSizer610, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0);
    
    m_bmpButtonPageFirst = new wxBitmapButton(m_panelErrors, XRCID("memcheck_page_first"), wxXmlResource::Get()->LoadBitmap(wxT("page_first")), wxDefaultPosition, wxSize(-1,-1), wxBU_AUTODRAW);
    m_bmpButtonPageFirst->SetToolTip(_("First result page."));
    
    boxSizer610->Add(m_bmpButtonPageFirst, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_bmpButtonPagePrev = new wxBitmapButton(m_panelErrors, XRCID("memcheck_page_prev"), wxXmlResource::Get()->LoadBitmap(wxT("page_previous")), wxDefaultPosition, wxSize(-1,-1), wxBU_AUTODRAW);
    
    boxSizer610->Add(m_bmpButtonPagePrev, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_textCtrlPageNumber = new wxTextCtrl(m_panelErrors, XRCID("memcheck_page_number"), wxT(""), wxDefaultPosition, wxSize(30,-1), wxTE_PROCESS_ENTER|wxTE_CENTRE);
    #if wxVERSION_NUMBER >= 3000
    m_textCtrlPageNumber->SetHint(wxT(""));
    #endif
    
    boxSizer610->Add(m_textCtrlPageNumber, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_staticText622 = new wxStaticText(m_panelErrors, wxID_ANY, _("of"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer610->Add(m_staticText622, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_staticTextPageMax = new wxStaticText(m_panelErrors, wxID_ANY, _("0"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer610->Add(m_staticTextPageMax, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_bmpButtonPageNext = new wxBitmapButton(m_panelErrors, XRCID("memcheck_page_next"), wxXmlResource::Get()->LoadBitmap(wxT("page_next")), wxDefaultPosition, wxSize(-1,-1), wxBU_AUTODRAW);
    
    boxSizer610->Add(m_bmpButtonPageNext, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_bmpButtonPageLast = new wxBitmapButton(m_panelErrors, XRCID("memcheck_page_last"), wxXmlResource::Get()->LoadBitmap(wxT("page_last")), wxDefaultPosition, wxSize(-1,-1), wxBU_AUTODRAW);
    
    boxSizer610->Add(m_bmpButtonPageLast, 0, wxTOP|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_panelSupp = new wxPanel(m_notebookOutputView, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    int m_panelSuppImgIndex;
    m_panelSuppImgIndex = m_notebookOutputView_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("list")));
    m_notebookOutputView->AddPage(m_panelSupp, _(".supp"), false, m_panelSuppImgIndex);
    
    wxBoxSizer* boxSizer536 = new wxBoxSizer(wxHORIZONTAL);
    m_panelSupp->SetSizer(boxSizer536);
    
    m_splitter542 = new wxSplitterWindow(m_panelSupp, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE|wxSP_NO_XP_THEME|wxSP_3DSASH);
    m_splitter542->SetSashGravity(0.5);
    m_splitter542->SetMinimumPaneSize(50);
    
    boxSizer536->Add(m_splitter542, 1, wxALL|wxEXPAND, 0);
    
    m_splitterPageFilter = new wxPanel(m_splitter542, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    
    wxBoxSizer* boxSizer548 = new wxBoxSizer(wxVERTICAL);
    m_splitterPageFilter->SetSizer(boxSizer548);
    
    wxBoxSizer* boxSizer655 = new wxBoxSizer(wxHORIZONTAL);
    
    boxSizer548->Add(boxSizer655, 0, wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5);
    
    m_staticText657 = new wxStaticText(m_splitterPageFilter, wxID_ANY, _(".supp:"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer655->Add(m_staticText657, 0, wxLEFT|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5);
    
    wxArrayString m_choiceSuppFileArr;
    m_choiceSuppFile = new wxChoice(m_splitterPageFilter, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_choiceSuppFileArr, 0);
    m_choiceSuppFile->SetToolTip(_("Choose suppression file to use."));
    
    boxSizer655->Add(m_choiceSuppFile, 1, wxLEFT|wxRIGHT|wxEXPAND, 0);
    
    m_buttonSuppOpen = new wxButton(m_splitterPageFilter, XRCID("memcheck_supp_open"), _("Open"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer655->Add(m_buttonSuppOpen, 0, 0, 5);
    
    wxBoxSizer* boxSizer485 = new wxBoxSizer(wxHORIZONTAL);
    
    boxSizer548->Add(boxSizer485, 0, wxALL|wxEXPAND, 0);
    
    m_searchCtrlFilter = new wxSearchCtrl(m_splitterPageFilter, XRCID("memcheck_filter_supp"), wxT(""), wxDefaultPosition, wxSize(-1,-1), wxTE_PROCESS_ENTER);
    m_searchCtrlFilter->ShowSearchButton(true);
    m_searchCtrlFilter->ShowCancelButton(false);
    
    boxSizer485->Add(m_searchCtrlFilter, 1, wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5);
    
    m_buttonClearFilter = new wxBitmapButton(m_splitterPageFilter, XRCID("memcheck_clear_filter"), wxXmlResource::Get()->LoadBitmap(wxT("broom")), wxDefaultPosition, wxSize(-1,-1), wxBU_AUTODRAW);
    m_buttonClearFilter->SetToolTip(_("Clear filter"));
    
    boxSizer485->Add(m_buttonClearFilter, 0, wxRIGHT|wxTOP|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    
    wxBoxSizer* boxSizer489 = new wxBoxSizer(wxHORIZONTAL);
    
    boxSizer548->Add(boxSizer489, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 0);
    
    m_checkBoxInvert = new wxCheckBox(m_splitterPageFilter, wxID_ANY, _("Invert"), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxInvert->SetValue(false);
    
    boxSizer489->Add(m_checkBoxInvert, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
    
    m_checkBoxCase = new wxCheckBox(m_splitterPageFilter, wxID_ANY, _("Case"), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxCase->SetValue(false);
    
    boxSizer489->Add(m_checkBoxCase, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
    
    m_checkBoxWord = new wxCheckBox(m_splitterPageFilter, wxID_ANY, _("Word"), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxWord->SetValue(false);
    
    boxSizer489->Add(m_checkBoxWord, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
    
    m_checkBoxRegexp = new wxCheckBox(m_splitterPageFilter, wxID_ANY, _("RegExp"), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxRegexp->SetValue(false);
    
    boxSizer489->Add(m_checkBoxRegexp, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
    
    boxSizer548->Add(0, 0, 1, wxALL, 5);
    
    m_staticTextSuppStatus = new wxStaticText(m_splitterPageFilter, wxID_ANY, _("Total: 0  Filtered: 0  Selected: 0"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer548->Add(m_staticTextSuppStatus, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
    
    m_splitterPageList = new wxPanel(m_splitter542, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    m_splitter542->SplitVertically(m_splitterPageFilter, m_splitterPageList, 0);
    
    wxBoxSizer* boxSizer554 = new wxBoxSizer(wxVERTICAL);
    m_splitterPageList->SetSizer(boxSizer554);
    
    wxBoxSizer* boxSizer678 = new wxBoxSizer(wxHORIZONTAL);
    
    boxSizer554->Add(boxSizer678, 1, wxALL|wxEXPAND, 0);
    
    m_listCtrlErrors = new MemCheckListCtrlErrors(m_splitterPageList, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxLC_NO_HEADER|wxLC_VIRTUAL|wxLC_REPORT);
    
    boxSizer678->Add(m_listCtrlErrors, 1, wxALL|wxEXPAND, 5);
    
    m_listCtrlErrors->InsertColumn(m_listCtrlErrors->GetColumnCount(), _("Label"), wxLIST_FORMAT_LEFT, -1);
    wxBoxSizer* boxSizer680 = new wxBoxSizer(wxVERTICAL);
    
    boxSizer678->Add(boxSizer680, 0, wxALL, 5);
    
    m_buttonSuppressAll = new wxButton(m_splitterPageList, XRCID("memcheck_suppress_all"), _("Suppress all"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer680->Add(m_buttonSuppressAll, 0, wxBOTTOM|wxEXPAND, 5);
    
    m_buttonSuppressSelected = new wxButton(m_splitterPageList, XRCID("memcheck_suppress_selected"), _("Suppress selected"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer680->Add(m_buttonSuppressSelected, 0, wxBOTTOM, 5);
    
    SetName(wxT("MemCheckOutputViewBase"));
    SetSizeHints(-1,-1);
    if ( GetSizer() ) {
         GetSizer()->Fit(this);
    }
    CentreOnParent(wxBOTH);
    // Connect events
    this->Connect(ID_TOOL_STOP_PROCESS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnStop), NULL, this);
    this->Connect(ID_TOOL_STOP_PROCESS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnStopUI), NULL, this);
    this->Connect(XRCID("memcheck_expand_all"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnExpandAll), NULL, this);
    this->Connect(XRCID("memcheck_expand_all"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Connect(XRCID("memcheck_next"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnJumpToNext), NULL, this);
    this->Connect(XRCID("memcheck_next"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Connect(XRCID("memcheck_prev"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnJumpToPrev), NULL, this);
    this->Connect(XRCID("memcheck_prev"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Connect(XRCID("memcheck_open_plain"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Connect(XRCID("memcheck_open_plain"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnOpenPlain), NULL, this);
    m_notebookOutputView->Connect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(MemCheckOutputViewBase::OutputViewPageChanged), NULL, this);
    m_dataViewCtrlErrors->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(MemCheckOutputViewBase::OnActivated), NULL, this);
    m_dataViewCtrlErrors->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(MemCheckOutputViewBase::OnValueChanged), NULL, this);
    m_dataViewCtrlErrors->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler(MemCheckOutputViewBase::OnContextMenu), NULL, this);
    m_dataViewCtrlErrors->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(MemCheckOutputViewBase::OnSelectionChanged), NULL, this);
    m_bmpButtonPageFirst->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPageFirst), NULL, this);
    m_bmpButtonPageFirst->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_bmpButtonPagePrev->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPagePrev), NULL, this);
    m_bmpButtonPagePrev->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_textCtrlPageNumber->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_textCtrlPageNumber->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MemCheckOutputViewBase::OnPageSelect), NULL, this);
    m_bmpButtonPageNext->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPageNext), NULL, this);
    m_bmpButtonPageNext->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_bmpButtonPageLast->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPageLast), NULL, this);
    m_bmpButtonPageLast->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_choiceSuppFile->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppFileSelected), NULL, this);
    m_choiceSuppFile->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_buttonSuppOpen->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppFileOpen), NULL, this);
    m_buttonSuppOpen->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_searchCtrlFilter->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MemCheckOutputViewBase::OnFilterErrors), NULL, this);
    m_searchCtrlFilter->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_buttonClearFilter->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnClearFilter), NULL, this);
    m_buttonClearFilter->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_SIZE, wxSizeEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsResize), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_MOTION, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsMouseMotion), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsActivated), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsSelected), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsDeselected), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsKeyDown), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_KEY_UP, wxKeyEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsKeyUp), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_CHAR, wxKeyEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsChar), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsLeftDown), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsLeftUp), NULL, this);
    m_listCtrlErrors->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsMouseLeave), NULL, this);
    m_buttonSuppressAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppressAll), NULL, this);
    m_buttonSuppressAll->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_buttonSuppressSelected->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppressSelected), NULL, this);
    m_buttonSuppressSelected->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    
}

MemCheckOutputViewBase::~MemCheckOutputViewBase()
{
    this->Disconnect(ID_TOOL_STOP_PROCESS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnStop), NULL, this);
    this->Disconnect(ID_TOOL_STOP_PROCESS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnStopUI), NULL, this);
    this->Disconnect(XRCID("memcheck_expand_all"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnExpandAll), NULL, this);
    this->Disconnect(XRCID("memcheck_expand_all"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Disconnect(XRCID("memcheck_next"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnJumpToNext), NULL, this);
    this->Disconnect(XRCID("memcheck_next"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Disconnect(XRCID("memcheck_prev"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnJumpToPrev), NULL, this);
    this->Disconnect(XRCID("memcheck_prev"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Disconnect(XRCID("memcheck_open_plain"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnMemCheckUI), NULL, this);
    this->Disconnect(XRCID("memcheck_open_plain"), wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnOpenPlain), NULL, this);
    m_notebookOutputView->Disconnect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(MemCheckOutputViewBase::OutputViewPageChanged), NULL, this);
    m_dataViewCtrlErrors->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(MemCheckOutputViewBase::OnActivated), NULL, this);
    m_dataViewCtrlErrors->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEventHandler(MemCheckOutputViewBase::OnValueChanged), NULL, this);
    m_dataViewCtrlErrors->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler(MemCheckOutputViewBase::OnContextMenu), NULL, this);
    m_dataViewCtrlErrors->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(MemCheckOutputViewBase::OnSelectionChanged), NULL, this);
    m_bmpButtonPageFirst->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPageFirst), NULL, this);
    m_bmpButtonPageFirst->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_bmpButtonPagePrev->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPagePrev), NULL, this);
    m_bmpButtonPagePrev->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_textCtrlPageNumber->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_textCtrlPageNumber->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MemCheckOutputViewBase::OnPageSelect), NULL, this);
    m_bmpButtonPageNext->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPageNext), NULL, this);
    m_bmpButtonPageNext->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_bmpButtonPageLast->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnPageLast), NULL, this);
    m_bmpButtonPageLast->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnErrorsPanelUI), NULL, this);
    m_choiceSuppFile->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppFileSelected), NULL, this);
    m_choiceSuppFile->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_buttonSuppOpen->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppFileOpen), NULL, this);
    m_buttonSuppOpen->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_searchCtrlFilter->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MemCheckOutputViewBase::OnFilterErrors), NULL, this);
    m_searchCtrlFilter->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_buttonClearFilter->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnClearFilter), NULL, this);
    m_buttonClearFilter->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_SIZE, wxSizeEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsResize), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_MOTION, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsMouseMotion), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsActivated), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsSelected), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsDeselected), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsKeyDown), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_KEY_UP, wxKeyEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsKeyUp), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_CHAR, wxKeyEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsChar), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsLeftDown), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsLeftUp), NULL, this);
    m_listCtrlErrors->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(MemCheckOutputViewBase::OnListCtrlErrorsMouseLeave), NULL, this);
    m_buttonSuppressAll->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppressAll), NULL, this);
    m_buttonSuppressAll->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    m_buttonSuppressSelected->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckOutputViewBase::OnSuppressSelected), NULL, this);
    m_buttonSuppressSelected->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckOutputViewBase::OnSuppPanelUI), NULL, this);
    
}

MemCheckSettingsDialogBase::MemCheckSettingsDialogBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
    : wxDialog(parent, id, title, pos, size, style)
{
    if ( !bBitmapLoaded ) {
        // We need to initialise the default bitmap handler
        wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
        wxCrafterpca4kKInitBitmapResources();
        bBitmapLoaded = true;
    }
    
    wxBoxSizer* boxSizer249 = new wxBoxSizer(wxVERTICAL);
    this->SetSizer(boxSizer249);
    
    m_treebook251 = new wxTreebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT);
    m_treebook251->SetName(wxT("m_treebook251"));
    wxImageList* m_treebook251_il = new wxImageList(16, 16);
    m_treebook251->AssignImageList(m_treebook251_il);
    
    boxSizer249->Add(m_treebook251, 1, wxALL|wxEXPAND, 5);
    
    m_panel259 = new wxPanel(m_treebook251, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    int m_panel259ImgIndex;
    m_panel259ImgIndex = m_treebook251_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("cog")));
    m_treebook251->AddPage(m_panel259, _("General"), false, m_panel259ImgIndex);
    
    wxBoxSizer* boxSizer261 = new wxBoxSizer(wxVERTICAL);
    m_panel259->SetSizer(boxSizer261);
    
    wxFlexGridSizer* flexGridSizer351 = new wxFlexGridSizer(0, 2, 0, 0);
    flexGridSizer351->SetFlexibleDirection( wxBOTH );
    flexGridSizer351->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
    flexGridSizer351->AddGrowableCol(1);
    
    boxSizer261->Add(flexGridSizer351, 0, wxALL|wxEXPAND, 5);
    
    m_staticText349 = new wxStaticText(m_panel259, wxID_ANY, _("Engine:"), wxDefaultPosition, wxSize(-1,-1), 0);
    m_staticText349->SetToolTip(_("At this time (1Q 2014) only valgrind supported - development state."));
    
    flexGridSizer351->Add(m_staticText349, 0, wxRIGHT|wxTOP|wxBOTTOM, 5);
    
    wxArrayString m_choiceEngineArr;
    m_choiceEngineArr.Add(wxT("Valgrind"));
    m_choiceEngine = new wxChoice(m_panel259, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_choiceEngineArr, 0);
    m_choiceEngine->SetSelection(0);
    
    flexGridSizer351->Add(m_choiceEngine, 0, wxLEFT|wxRIGHT|wxBOTTOM, 5);
    
    m_staticText638 = new wxStaticText(m_panel259, wxID_ANY, _("Errors on page:"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    boxSizer261->Add(m_staticText638, 0, wxLEFT|wxRIGHT|wxTOP, 5);
    
    m_sliderPageCapacity = new wxSlider(m_panel259, wxID_ANY, 100, 1, 200, wxDefaultPosition, wxSize(-1,-1), wxSL_LABELS|wxSL_HORIZONTAL);
    
    boxSizer261->Add(m_sliderPageCapacity, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, 5);
    
    m_checkBoxOmitNonWorkspace = new wxCheckBox(m_panel259, wxID_ANY, _("Show locations only from my workspace."), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxOmitNonWorkspace->SetValue(false);
    
    boxSizer261->Add(m_checkBoxOmitNonWorkspace, 0, wxALL, 5);
    
    m_checkBoxOmitDuplications = new wxCheckBox(m_panel259, wxID_ANY, _("Remove duplicate records."), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxOmitDuplications->SetValue(false);
    
    boxSizer261->Add(m_checkBoxOmitDuplications, 0, wxALL, 5);
    
    m_checkBoxOmitSuppressed = new wxCheckBox(m_panel259, wxID_ANY, _("Remove suppressed errors."), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxOmitSuppressed->SetValue(false);
    
    boxSizer261->Add(m_checkBoxOmitSuppressed, 0, wxALL, 5);
    
    wxBoxSizer* boxSizer430 = new wxBoxSizer(wxVERTICAL);
    
    boxSizer261->Add(boxSizer430, 0, wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT, 20);
    
    m_checkBoxOmitSuppressionsUnchanged = new wxCheckBox(m_panel259, wxID_ANY, _("Remove errors only if suppression rule was added without any change."), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxOmitSuppressionsUnchanged->SetValue(false);
    m_checkBoxOmitSuppressionsUnchanged->Hide();
    
    boxSizer430->Add(m_checkBoxOmitSuppressionsUnchanged, 0, wxALL, 5);
    
    m_panel263 = new wxPanel(m_treebook251, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    int m_panel263ImgIndex;
    m_panel263ImgIndex = m_treebook251_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("st-george_sm")));
    m_treebook251->AddPage(m_panel263, _("Valgrind (memcheck)"), false, m_panel263ImgIndex);
    
    m_panel669 = new wxPanel(m_treebook251, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    m_treebook251->InsertSubPage(1, m_panel669, _("Command Line"), false, wxNOT_FOUND);
    
    wxBoxSizer* boxSizer673 = new wxBoxSizer(wxVERTICAL);
    m_panel669->SetSizer(boxSizer673);
    
    wxFlexGridSizer* flexGridSizer269 = new wxFlexGridSizer(0, 2, 0, 0);
    flexGridSizer269->SetFlexibleDirection( wxBOTH );
    flexGridSizer269->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
    flexGridSizer269->AddGrowableCol(1);
    
    boxSizer673->Add(flexGridSizer269, 0, wxALL|wxEXPAND, 5);
    
    m_staticText271 = new wxStaticText(m_panel669, wxID_ANY, _("Valgrind executable:"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    flexGridSizer269->Add(m_staticText271, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
    
    m_filePickerValgrindBinary = new wxFilePickerCtrl(m_panel669, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_DEFAULT_STYLE|wxFLP_USE_TEXTCTRL);
    m_filePickerValgrindBinary->SetToolTip(_("Select valgrind executable"));
    
    flexGridSizer269->Add(m_filePickerValgrindBinary, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5);
    
    wxStaticBoxSizer* staticBoxSizer329 = new wxStaticBoxSizer( new wxStaticBox(m_panel669, wxID_ANY, _("Command line options")), wxVERTICAL);
    
    boxSizer673->Add(staticBoxSizer329, 0, wxALL|wxEXPAND, 5);
    
    wxFlexGridSizer* flexGridSizer331 = new wxFlexGridSizer(0, 3, 0, 0);
    flexGridSizer331->SetFlexibleDirection( wxBOTH );
    flexGridSizer331->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
    flexGridSizer331->AddGrowableCol(1);
    
    staticBoxSizer329->Add(flexGridSizer331, 1, wxALL|wxEXPAND, 5);
    
    m_staticText333 = new wxStaticText(m_panel669, wxID_ANY, _("Mandatory:"), wxDefaultPosition, wxSize(-1,-1), 0);
    m_staticText333->SetToolTip(_("Please do not use these options again and do not change their values!\nPlugin won't work."));
    
    flexGridSizer331->Add(m_staticText333, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
    
    m_textCtrlValgrindMandatoryOptions = new wxTextCtrl(m_panel669, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0);
    m_textCtrlValgrindMandatoryOptions->SetToolTip(_("Please do not use these options again and do not change their values!\nPlugin won't work."));
    m_textCtrlValgrindMandatoryOptions->Enable(false);
    #if wxVERSION_NUMBER >= 3000
    m_textCtrlValgrindMandatoryOptions->SetHint(wxT(""));
    #endif
    
    flexGridSizer331->Add(m_textCtrlValgrindMandatoryOptions, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5);
    
    flexGridSizer331->Add(0, 0, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
    
    m_staticText337 = new wxStaticText(m_panel669, wxID_ANY, _("Regular:"), wxDefaultPosition, wxSize(-1,-1), 0);
    
    flexGridSizer331->Add(m_staticText337, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
    
    m_textCtrlValgrindOptions = new wxTextCtrl(m_panel669, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0);
    #if wxVERSION_NUMBER >= 3000
    m_textCtrlValgrindOptions->SetHint(wxT(""));
    #endif
    
    flexGridSizer331->Add(m_textCtrlValgrindOptions, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5);
    
    m_bmpButton341 = new wxBitmapButton(m_panel669, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("reload")), wxDefaultPosition, wxSize(-1,-1), wxBU_AUTODRAW);
    m_bmpButton341->SetToolTip(_("Reload defaults"));
    
    flexGridSizer331->Add(m_bmpButton341, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
    
    wxStaticBoxSizer* staticBoxSizer432 = new wxStaticBoxSizer( new wxStaticBox(m_panel669, wxID_ANY, _("Temporary output file")), wxVERTICAL);
    
    boxSizer673->Add(staticBoxSizer432, 0, wxALL|wxEXPAND, 5);
    
    m_checkBoxOutputInPrivateFolder = new wxCheckBox(m_panel669, wxID_ANY, _("Use log file in workspace private folder."), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxOutputInPrivateFolder->SetValue(false);
    m_checkBoxOutputInPrivateFolder->SetToolTip(_("It is used intenaly by this plugin. Valgrind outputs to this file and afterwards the plugin processes this file and shows result."));
    
    staticBoxSizer432->Add(m_checkBoxOutputInPrivateFolder, 0, wxALL, 5);
    
    m_filePickerValgrindOutputFile = new wxFilePickerCtrl(m_panel669, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*"), wxDefaultPosition, wxSize(-1,-1), wxFLP_USE_TEXTCTRL|wxFLP_OPEN);
    m_filePickerValgrindOutputFile->SetToolTip(_("It is used intenally by this plugin. Valgrind outputs to this file and afterwards the plugin processes this file and shows result."));
    
    staticBoxSizer432->Add(m_filePickerValgrindOutputFile, 0, wxALL|wxEXPAND, 5);
    
    m_panel671 = new wxPanel(m_treebook251, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL);
    m_treebook251->InsertSubPage(1, m_panel671, _("Supression"), false, wxNOT_FOUND);
    
    wxBoxSizer* boxSizer675 = new wxBoxSizer(wxVERTICAL);
    m_panel671->SetSizer(boxSizer675);
    
    wxStaticBoxSizer* staticBoxSizer437 = new wxStaticBoxSizer( new wxStaticBox(m_panel671, wxID_ANY, _("Suppression files")), wxVERTICAL);
    
    boxSizer675->Add(staticBoxSizer437, 1, wxALL|wxEXPAND, 5);
    
    m_checkBoxSuppFileInPrivateFolder = new wxCheckBox(m_panel671, wxID_ANY, _("Use workspace specific supp file as default."), wxDefaultPosition, wxSize(-1,-1), 0);
    m_checkBoxSuppFileInPrivateFolder->SetValue(false);
    m_checkBoxSuppFileInPrivateFolder->SetToolTip(_("This file is located in workspace private folder.\nIf you don't like this option, you have to add at least one file to list below."));
    
    staticBoxSizer437->Add(m_checkBoxSuppFileInPrivateFolder, 0, wxALL, 5);
    
    wxArrayString m_listBoxSuppFilesArr;
    m_listBoxSuppFiles = new wxListBox(m_panel671, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_listBoxSuppFilesArr, wxLB_EXTENDED|wxLB_MULTIPLE);
    
    staticBoxSizer437->Add(m_listBoxSuppFiles, 1, wxALL|wxEXPAND, 5);
    m_listBoxSuppFiles->SetMinSize(wxSize(-1,200));
    
    m_stdBtnSizer511 = new wxStdDialogButtonSizer();
    
    boxSizer249->Add(m_stdBtnSizer511, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10);
    
    m_button513 = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0);
    m_button513->SetDefault();
    m_stdBtnSizer511->AddButton(m_button513);
    
    m_button515 = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0);
    m_stdBtnSizer511->AddButton(m_button515);
    m_stdBtnSizer511->Realize();
    
    
    #if wxVERSION_NUMBER >= 2900
    if(!wxPersistenceManager::Get().Find(m_treebook251)){
        wxPersistenceManager::Get().RegisterAndRestore(m_treebook251);
    } else {
        wxPersistenceManager::Get().Restore(m_treebook251);
    }
    #endif
    m_treebook251->ExpandNode( 0, true );
    m_treebook251->ExpandNode( 1, true );
    m_treebook251->ExpandNode( 2, true );
    m_treebook251->ExpandNode( 3, true );
    
    SetName(wxT("MemCheckSettingsDialogBase"));
    SetSizeHints(-1,-1);
    if ( GetSizer() ) {
         GetSizer()->Fit(this);
    }
    CentreOnParent(wxBOTH);
#if wxVERSION_NUMBER >= 2900
    if(!wxPersistenceManager::Get().Find(this)) {
        wxPersistenceManager::Get().RegisterAndRestore(this);
    } else {
        wxPersistenceManager::Get().Restore(this);
    }
#endif
    // Connect events
    m_bmpButton341->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckSettingsDialogBase::ValgrindResetOptions), NULL, this);
    m_filePickerValgrindOutputFile->Connect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(MemCheckSettingsDialogBase::OnValgrindOutputFileChanged), NULL, this);
    m_filePickerValgrindOutputFile->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckSettingsDialogBase::OnFilePickerValgrindOutputFileUI), NULL, this);
    m_listBoxSuppFiles->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(MemCheckSettingsDialogBase::OnSuppListRightDown), NULL, this);
    m_button513->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckSettingsDialogBase::OnOK), NULL, this);
    
}

MemCheckSettingsDialogBase::~MemCheckSettingsDialogBase()
{
    m_bmpButton341->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckSettingsDialogBase::ValgrindResetOptions), NULL, this);
    m_filePickerValgrindOutputFile->Disconnect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(MemCheckSettingsDialogBase::OnValgrindOutputFileChanged), NULL, this);
    m_filePickerValgrindOutputFile->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MemCheckSettingsDialogBase::OnFilePickerValgrindOutputFileUI), NULL, this);
    m_listBoxSuppFiles->Disconnect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(MemCheckSettingsDialogBase::OnSuppListRightDown), NULL, this);
    m_button513->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MemCheckSettingsDialogBase::OnOK), NULL, this);
    
}
