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

#include "GotoAnythingBaseUI.h"

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

static bool bBitmapLoaded = false;

GotoAnythingBaseDlg::GotoAnythingBaseDlg(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);
        wxCrafterp2zZ39InitBitmapResources();
        bBitmapLoaded = true;
    }

    wxBoxSizer* boxSizer2 = new wxBoxSizer(wxVERTICAL);
    this->SetSizer(boxSizer2);

    m_textCtrlSearch = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)),
                                      wxTE_PROCESS_ENTER);
    m_textCtrlSearch->SetFocus();
#if wxVERSION_NUMBER >= 3000
    m_textCtrlSearch->SetHint(_("Search..."));
#endif

    boxSizer2->Add(m_textCtrlSearch, 0, wxEXPAND, WXC_FROM_DIP(5));

    m_dvListCtrl = new clThemedListCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(400, 100)),
                                        wxDV_NO_HEADER | wxDV_ROW_LINES | wxDV_SINGLE);

    boxSizer2->Add(m_dvListCtrl, 1, wxEXPAND, WXC_FROM_DIP(5));

    m_dvListCtrl->AppendIconTextColumn(_("Matches"), wxDATAVIEW_CELL_INERT, WXC_FROM_DIP(-2), wxALIGN_LEFT,
                                       wxDATAVIEW_COL_RESIZABLE);
    m_dvListCtrl->AppendTextColumn(_("Shortcut"), wxDATAVIEW_CELL_INERT, WXC_FROM_DIP(-2), wxALIGN_LEFT,
                                   wxDATAVIEW_COL_RESIZABLE);

    SetName(wxT("GotoAnythingBaseDlg"));
    SetSize(wxDLG_UNIT(this, wxSize(-1, -1)));
    if(GetSizer()) {
        GetSizer()->Fit(this);
    }
    if(GetParent()) {
        CentreOnParent(wxBOTH);
    } else {
        CentreOnScreen(wxBOTH);
    }
#if wxVERSION_NUMBER >= 2900
    if(!wxPersistenceManager::Get().Find(this)) {
        wxPersistenceManager::Get().RegisterAndRestore(this);
    } else {
        wxPersistenceManager::Get().Restore(this);
    }
#endif
    // Connect events
    this->Connect(wxEVT_IDLE, wxIdleEventHandler(GotoAnythingBaseDlg::OnIdle), NULL, this);
    m_textCtrlSearch->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(GotoAnythingBaseDlg::OnKeyDown), NULL, this);
    m_textCtrlSearch->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(GotoAnythingBaseDlg::OnEnter), NULL,
                              this);
    m_dvListCtrl->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(GotoAnythingBaseDlg::OnKeyDown), NULL, this);
    m_dvListCtrl->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED,
                          wxDataViewEventHandler(GotoAnythingBaseDlg::OnItemActivated), NULL, this);
}

GotoAnythingBaseDlg::~GotoAnythingBaseDlg()
{
    this->Disconnect(wxEVT_IDLE, wxIdleEventHandler(GotoAnythingBaseDlg::OnIdle), NULL, this);
    m_textCtrlSearch->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(GotoAnythingBaseDlg::OnKeyDown), NULL, this);
    m_textCtrlSearch->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(GotoAnythingBaseDlg::OnEnter), NULL,
                                 this);
    m_dvListCtrl->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(GotoAnythingBaseDlg::OnKeyDown), NULL, this);
    m_dvListCtrl->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED,
                             wxDataViewEventHandler(GotoAnythingBaseDlg::OnItemActivated), NULL, this);
}
