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

#ifndef _CODELITE_LITEEDITOR_WXCRAFTER_BASE_CLASSES_H
#define _CODELITE_LITEEDITOR_WXCRAFTER_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/splitter.h>
#include <wx/choice.h>
#include <wx/arrstr.h>
#include <wx/imaglist.h>
#include <wx/bitmap.h>
#include <map>
#include <wx/icon.h>
#include <wx/dialog.h>
#include <wx/iconbndl.h>
#include <wx/dataview.h>
#include "clThemedListCtrl.h"
#include <wx/button.h>
#include <wx/filepicker.h>
#include "clThemedSplitterWindow.h"
#include <wx/treectrl.h>
#include "clThemedTreeCtrl.h"
#include <wx/simplebook.h>
#include <wx/toolbar.h>
#include "clToolBar.h"
#include "clConfigurationSelectionCtrl.h"
#include "fileview.h"
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/statbmp.h>
#include <wx/bannerwindow.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 NavBarControlBaseClass : public wxPanel
{
protected:
    wxSplitterWindow* m_splitter;
    wxPanel* m_splitterPage39;
    wxChoice* m_scope;
    wxPanel* m_splitterPage41;
    wxChoice* m_func;

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

public:
    wxChoice* GetScope() { return m_scope; }
    wxPanel* GetSplitterPage39() { return m_splitterPage39; }
    wxChoice* GetFunc() { return m_func; }
    wxPanel* GetSplitterPage41() { return m_splitterPage41; }
    wxSplitterWindow* GetSplitter() { return m_splitter; }
    NavBarControlBaseClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                           const wxSize& size = wxSize(-1, -1),
                           long style = wxWANTS_CHARS | wxTAB_TRAVERSAL | wxBORDER_NONE);
    virtual ~NavBarControlBaseClass();
};

class NewProjImgList : 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:
    NewProjImgList();
    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 ~NewProjImgList();
};

class AddFunctionsImplBaseDlg : public wxDialog
{
protected:
    clThemedListCtrl* m_dvListCtrl;
    wxButton* m_button133;
    wxButton* m_button135;
    wxFilePickerCtrl* m_filePicker;
    wxButton* m_button121;
    wxButton* m_button123;

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

public:
    clThemedListCtrl* GetDvListCtrl() { return m_dvListCtrl; }
    wxButton* GetButton133() { return m_button133; }
    wxButton* GetButton135() { return m_button135; }
    wxFilePickerCtrl* GetFilePicker() { return m_filePicker; }
    wxButton* GetButton121() { return m_button121; }
    wxButton* GetButton123() { return m_button123; }
    AddFunctionsImplBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY,
                            const wxString& title = _("Add function implementation"),
                            const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                            long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~AddFunctionsImplBaseDlg();
};

class WelcomePageBase : public wxControl
{
protected:
    clThemedSplitterWindow* m_mainPanel;
    wxPanel* m_buttonsPage;
    wxGridSizer* buttons_sizer;
    wxPanel* m_listPage;
    clThemedTreeCtrl* m_dvTreeCtrlWorkspaces;

protected:
    virtual void OnSize(wxSizeEvent& event) { event.Skip(); }
    virtual void OnWorkspaceActivated(wxTreeEvent& event) { event.Skip(); }

public:
    wxPanel* GetButtonsPage() { return m_buttonsPage; }
    clThemedTreeCtrl* GetDvTreeCtrlWorkspaces() { return m_dvTreeCtrlWorkspaces; }
    wxPanel* GetListPage() { return m_listPage; }
    clThemedSplitterWindow* GetMainPanel() { return m_mainPanel; }
    WelcomePageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                    const wxSize& size = wxSize(-1, -1), long style = wxTAB_TRAVERSAL | wxBORDER_NONE);
    virtual ~WelcomePageBase();
};

class WorkspaceTabBase : public wxPanel
{
protected:
    wxSimplebook* m_simpleBook;
    wxPanel* m_panelCxx;
    wxPanel* m_panel625;
    clToolBar* m_toolbar580;
    clConfigurationSelectionCtrl* m_configChangeCtrl;
    clThemedSplitterWindow* m_splitter;
    wxPanel* m_splitterPagePinnedProjects;
    clThemedListCtrl* m_dvListCtrlPinnedProjects;
    wxPanel* m_splitterPageTreeView;
    FileViewTree* m_fileView;

protected:
    virtual void OnPinnedCxxProjectContextMenu(wxDataViewEvent& event) { event.Skip(); }
    virtual void OnPinnedCxxProjectSelected(wxDataViewEvent& event) { event.Skip(); }

public:
    clToolBar* GetToolbar580() { return m_toolbar580; }
    clConfigurationSelectionCtrl* GetConfigChangeCtrl() { return m_configChangeCtrl; }
    wxPanel* GetPanel625() { return m_panel625; }
    clThemedListCtrl* GetDvListCtrlPinnedProjects() { return m_dvListCtrlPinnedProjects; }
    wxPanel* GetSplitterPagePinnedProjects() { return m_splitterPagePinnedProjects; }
    FileViewTree* GetFileView() { return m_fileView; }
    wxPanel* GetSplitterPageTreeView() { return m_splitterPageTreeView; }
    clThemedSplitterWindow* GetSplitter() { return m_splitter; }
    wxPanel* GetPanelCxx() { return m_panelCxx; }
    wxSimplebook* GetSimpleBook() { return m_simpleBook; }
    WorkspaceTabBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxSize(-1, -1), long style = wxTAB_TRAVERSAL);
    virtual ~WorkspaceTabBase();
};

class OpenFolderDlgBase : public wxDialog
{
protected:
    wxStaticText* m_staticText479;
    wxTextCtrl* m_textCtrlFolder;
    wxStdDialogButtonSizer* m_stdBtnSizer473;
    wxButton* m_button475;
    wxButton* m_button477;

protected:
public:
    wxStaticText* GetStaticText479() { return m_staticText479; }
    wxTextCtrl* GetTextCtrlFolder() { return m_textCtrlFolder; }
    OpenFolderDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Open Folder"),
                      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                      long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~OpenFolderDlgBase();
};

class DefaultWorkspacePageBase : public wxControl
{
protected:
    wxStaticText* m_staticText523;
    wxStaticBitmap* m_staticBitmap521;

protected:
public:
    wxStaticText* GetStaticText523() { return m_staticText523; }
    wxStaticBitmap* GetStaticBitmap521() { return m_staticBitmap521; }
    DefaultWorkspacePageBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                             const wxSize& size = wxSize(400, 300), long style = wxTAB_TRAVERSAL | wxBORDER_NONE);
    virtual ~DefaultWorkspacePageBase();
};

class SelectDropTargetBaseDlg : public wxDialog
{
protected:
    wxBannerWindow* m_banner;
    wxDataViewListCtrl* m_dvListCtrl;
    wxStdDialogButtonSizer* m_stdBtnSizer543;
    wxButton* m_button545;
    wxButton* m_button547;

protected:
    virtual void OnSelectionActivated(wxDataViewEvent& event) { event.Skip(); }
    virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnOK(wxCommandEvent& event) { event.Skip(); }

public:
    wxBannerWindow* GetBanner() { return m_banner; }
    wxDataViewListCtrl* GetDvListCtrl() { return m_dvListCtrl; }
    SelectDropTargetBaseDlg(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select View"),
                            const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(400, 400),
                            long style = wxDEFAULT_DIALOG_STYLE | wxSTAY_ON_TOP);
    virtual ~SelectDropTargetBaseDlg();
};

#endif
