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

#ifndef _CODELITE_SFTP_UI_BASE_CLASSES_H
#define _CODELITE_SFTP_UI_BASE_CLASSES_H

// clang-format off
#include <wx/settings.h>
#include <wx/xrc/xmlres.h>
#include <wx/xrc/xh_bmp.h>
#include <wx/panel.h>
#include <wx/artprov.h>
#include <wx/sizer.h>
#include <wx/notebook.h>
#include "clGenericNotebook.hpp"
#include <wx/imaglist.h>
#include <wx/stc/stc.h>
#include <wx/bitmap.h>
#include <map>
#include <wx/icon.h>
#include <wx/toolbar.h>
#include "clToolBar.h"
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/dialog.h>
#include <wx/iconbndl.h>
#include <wx/listbox.h>
#include <wx/button.h>
#include <wx/filepicker.h>
#include <wx/checkbox.h>
#include <wx/choice.h>
#include <wx/arrstr.h>
#include <wx/statline.h>
#if wxVERSION_NUMBER >= 2900
#include <wx/persist.h>
#include <wx/persist/toplevel.h>
#include <wx/persist/bookctrl.h>
#include <wx/persist/treebook.h>
#endif

#ifdef WXC_FROM_DIP
#undef WXC_FROM_DIP
#endif
#if wxVERSION_NUMBER >= 3100
#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL)
#else
#define WXC_FROM_DIP(x) x
#endif

// clang-format on

class SFTPStatusPageBase : public wxControl
{
protected:
    clGenericNotebook* m_notebook;
    wxPanel* m_panelLog;
    wxStyledTextCtrl* m_stcOutput;
    wxPanel* m_panelSearch;
    wxStyledTextCtrl* m_stcSearch;

protected:
    virtual void OnContentMenu(wxContextMenuEvent& event) { event.Skip(); }

public:
    wxStyledTextCtrl* GetStcOutput() { return m_stcOutput; }
    wxPanel* GetPanelLog() { return m_panelLog; }
    wxStyledTextCtrl* GetStcSearch() { return m_stcSearch; }
    wxPanel* GetPanelSearch() { return m_panelSearch; }
    clGenericNotebook* GetNotebook() { return m_notebook; }
    SFTPStatusPageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                       const wxSize& size = wxSize(-1, -1), long style = wxTAB_TRAVERSAL | wxBORDER_NONE);
    virtual ~SFTPStatusPageBase();
};

class SFTPImages : public wxImageList
{
protected:
    // Maintain a map of all bitmaps representd by their name
    std::map<wxString, wxBitmap> m_bitmaps;
    // The requested image resolution (can be one of @2x, @1.5x, @1.25x or an empty string (the default)
    wxString m_resolution;
    int m_imagesWidth;
    int m_imagesHeight;

protected:
public:
    SFTPImages();
    const wxBitmap& Bitmap(const wxString& name) const
    {
        if (!m_bitmaps.count(name + m_resolution))
            return wxNullBitmap;
        return m_bitmaps.find(name + m_resolution)->second;
    }

    void SetBitmapResolution(const wxString& res = wxEmptyString) { m_resolution = res; }

    virtual ~SFTPImages();
};

class SFTPTreeViewBase : public wxControl
{
protected:
    clToolBar* m_toolbar;
    wxStaticText* m_staticText49;
    wxTextCtrl* m_textCtrlQuickJump;

protected:
    virtual void OnGotoLocationUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnGotoLocation(wxCommandEvent& event) { event.Skip(); }

public:
    clToolBar* GetToolbar() { return m_toolbar; }
    wxStaticText* GetStaticText49() { return m_staticText49; }
    wxTextCtrl* GetTextCtrlQuickJump() { return m_textCtrlQuickJump; }
    SFTPTreeViewBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxSize(-1, -1), long style = wxTAB_TRAVERSAL | wxBORDER_NONE);
    virtual ~SFTPTreeViewBase();
};

class SFTPManageBookmarkDlgBase : public wxDialog
{
protected:
    wxListBox* m_listBoxBookmarks;
    wxButton* m_button70;
    wxStdDialogButtonSizer* m_stdBtnSizer58;
    wxButton* m_buttonOk;
    wxButton* m_buttonCancel;

protected:
    virtual void OnDelete(wxCommandEvent& event) { event.Skip(); }
    virtual void OnDeleteUI(wxUpdateUIEvent& event) { event.Skip(); }

public:
    wxListBox* GetListBoxBookmarks() { return m_listBoxBookmarks; }
    wxButton* GetButton70() { return m_button70; }
    SFTPManageBookmarkDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Manage Bookmarks"),
                              const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                              long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~SFTPManageBookmarkDlgBase();
};

class SFTPSettingsDialogBase : public wxDialog
{
protected:
    wxStaticText* m_staticSSHClient;
    wxFilePickerCtrl* m_sshClientPath;
    wxStdDialogButtonSizer* m_stdBtnSizer85;
    wxButton* m_button87;
    wxButton* m_button89;

protected:
    virtual void OnOK(wxCommandEvent& event) { event.Skip(); }

public:
    wxStaticText* GetStaticSSHClient() { return m_staticSSHClient; }
    wxFilePickerCtrl* GetSshClientPath() { return m_sshClientPath; }
    SFTPSettingsDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SFTP / SSH Settings"),
                           const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                           long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~SFTPSettingsDialogBase();
};

class SFTPUploadDialogBase : public wxDialog
{
protected:
    wxStaticText* m_staticText110;
    wxTextCtrl* m_textCtrlRemoteFolder;
    wxStdDialogButtonSizer* m_stdBtnSizer104;
    wxButton* m_buttonOK;
    wxButton* m_button108;

protected:
    virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); }

public:
    wxStaticText* GetStaticText110() { return m_staticText110; }
    wxTextCtrl* GetTextCtrlRemoteFolder() { return m_textCtrlRemoteFolder; }
    SFTPUploadDialogBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SFTP Upload Files"),
                         const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                         long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~SFTPUploadDialogBase();
};

class SFTPQuickConnectBaseDlg : public wxDialog
{
protected:
    wxCheckBox* m_checkBoxChooseAccount;
    wxChoice* m_choiceAccount;
    wxStaticLine* m_staticLine135;
    wxCheckBox* m_checkBoxQuickConnect;
    wxStaticText* m_staticText143;
    wxTextCtrl* m_textCtrlHost;
    wxStaticText* m_staticText147;
    wxTextCtrl* m_textCtrlPort;
    wxStaticText* m_staticText151;
    wxTextCtrl* m_textCtrlUsername;
    wxStaticText* m_staticText155;
    wxTextCtrl* m_textCtrlPassword;
    wxStdDialogButtonSizer* m_stdBtnSizer123;
    wxButton* m_button125;
    wxButton* m_button127;

protected:
    virtual void OnCheckboxChooseAccount(wxCommandEvent& event) { event.Skip(); }
    virtual void OnChooseAccountUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnQuickConnect(wxCommandEvent& event) { event.Skip(); }
    virtual void OnQuickConnectUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); }

public:
    wxCheckBox* GetCheckBoxChooseAccount() { return m_checkBoxChooseAccount; }
    wxChoice* GetChoiceAccount() { return m_choiceAccount; }
    wxStaticLine* GetStaticLine135() { return m_staticLine135; }
    wxCheckBox* GetCheckBoxQuickConnect() { return m_checkBoxQuickConnect; }
    wxStaticText* GetStaticText143() { return m_staticText143; }
    wxTextCtrl* GetTextCtrlHost() { return m_textCtrlHost; }
    wxStaticText* GetStaticText147() { return m_staticText147; }
    wxTextCtrl* GetTextCtrlPort() { return m_textCtrlPort; }
    wxStaticText* GetStaticText151() { return m_staticText151; }
    wxTextCtrl* GetTextCtrlUsername() { return m_textCtrlUsername; }
    wxStaticText* GetStaticText155() { return m_staticText155; }
    wxTextCtrl* GetTextCtrlPassword() { return m_textCtrlPassword; }
    SFTPQuickConnectBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SFTP Connect"),
                            const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                            long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~SFTPQuickConnectBaseDlg();
};

class SFTPGrepBase : public wxDialog
{
protected:
    wxStaticText* m_staticText175;
    wxTextCtrl* m_textCtrlFindWhat;
    wxStaticText* m_staticText179;
    wxTextCtrl* m_textCtrlSeachIn;
    wxCheckBox* m_checkBoxWholeWord;
    wxCheckBox* m_checkBoxIgnoreCase;
    wxStdDialogButtonSizer* m_stdBtnSizer167;
    wxButton* m_buttonOK;
    wxButton* m_buttonCancel;

protected:
    virtual void OnOkUI(wxUpdateUIEvent& event) { event.Skip(); }

public:
    wxStaticText* GetStaticText175() { return m_staticText175; }
    wxTextCtrl* GetTextCtrlFindWhat() { return m_textCtrlFindWhat; }
    wxStaticText* GetStaticText179() { return m_staticText179; }
    wxTextCtrl* GetTextCtrlSeachIn() { return m_textCtrlSeachIn; }
    wxCheckBox* GetCheckBoxWholeWord() { return m_checkBoxWholeWord; }
    wxCheckBox* GetCheckBoxIgnoreCase() { return m_checkBoxIgnoreCase; }
    SFTPGrepBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Remote Grep"),
                 const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                 long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~SFTPGrepBase();
};

#endif
