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

#ifndef _CODELITE_WEBTOOLS_WEBTOOLSBASE_BASE_CLASSES_H
#define _CODELITE_WEBTOOLS_WEBTOOLSBASE_BASE_CLASSES_H

// clang-format off
#include <wx/settings.h>
#include <wx/xrc/xmlres.h>
#include <wx/xrc/xh_bmp.h>
#include <wx/dialog.h>
#include <wx/iconbndl.h>
#include <wx/artprov.h>
#include <wx/sizer.h>
#include <wx/notebook.h>
#include <wx/panel.h>
#include <wx/imaglist.h>
#include <wx/checkbox.h>
#include <wx/stattext.h>
#include <wx/filepicker.h>
#include <wx/button.h>
#include <wx/textctrl.h>
#include <wx/stc/stc.h>
#include <wx/bitmap.h>
#include <map>
#include <wx/icon.h>
#include <wx/splitter.h>
#include <wx/treectrl.h>
#include "clThemedTreeCtrl.h"
#include "Notebook.h"
#include <wx/dataview.h>
#include "clThemedListCtrl.h"
#include <wx/toolbar.h>
#include "clToolBar.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 WebToolsSettingsBase : public wxDialog
{
protected:
    wxNotebook* m_notebook10;
    wxPanel* m_panel56;
    wxCheckBox* m_checkBoxEnableXmlCC;
    wxCheckBox* m_checkBoxEnableHtmlCC;
    wxPanel* m_panel237;
    wxStaticText* m_staticText243;
    wxFilePickerCtrl* m_filePickerNodeJS;
    wxButton* m_button361;
    wxStaticText* m_staticText247;
    wxFilePickerCtrl* m_filePickerNpm;
    wxButton* m_button363;
    wxCheckBox* m_checkBoxJSLint;
    wxStdDialogButtonSizer* m_stdBtnSizer4;
    wxButton* m_buttonCancel;
    wxButton* m_buttonOK;
    wxButton* m_buttonApply;

protected:
    virtual void OnModified(wxCommandEvent& event) { event.Skip(); }
    virtual void OnNodejsPath(wxFileDirPickerEvent& event) { event.Skip(); }
    virtual void OnSuggestNodeJSPaths(wxCommandEvent& event) { event.Skip(); }
    virtual void OnNpmPath(wxFileDirPickerEvent& event) { event.Skip(); }
    virtual void OnLintOnSave(wxCommandEvent& event) { event.Skip(); }
    virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnOK(wxCommandEvent& event) { event.Skip(); }
    virtual void OnApply(wxCommandEvent& event) { event.Skip(); }

public:
    wxCheckBox* GetCheckBoxEnableXmlCC() { return m_checkBoxEnableXmlCC; }
    wxCheckBox* GetCheckBoxEnableHtmlCC() { return m_checkBoxEnableHtmlCC; }
    wxPanel* GetPanel56() { return m_panel56; }
    wxStaticText* GetStaticText243() { return m_staticText243; }
    wxFilePickerCtrl* GetFilePickerNodeJS() { return m_filePickerNodeJS; }
    wxButton* GetButton361() { return m_button361; }
    wxStaticText* GetStaticText247() { return m_staticText247; }
    wxFilePickerCtrl* GetFilePickerNpm() { return m_filePickerNpm; }
    wxButton* GetButton363() { return m_button363; }
    wxCheckBox* GetCheckBoxJSLint() { return m_checkBoxJSLint; }
    wxPanel* GetPanel237() { return m_panel237; }
    wxNotebook* GetNotebook10() { return m_notebook10; }
    WebToolsSettingsBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("WebTools Settings"),
                         const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                         long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~WebToolsSettingsBase();
};

class NodeJSDebuggerDlgBase : public wxDialog
{
protected:
    wxStaticText* m_staticText78;
    wxFilePickerCtrl* m_filePickerNodeJS;
    wxStaticText* m_staticTextScript;
    wxFilePickerCtrl* m_filePickerScript;
    wxStaticText* m_staticText257;
    wxDirPickerCtrl* m_dirPickerWorkingDirectory;
    wxStaticText* m_staticTextDebuggerPort;
    wxTextCtrl* m_textCtrlPort;
    wxStaticText* m_staticText132;
    wxStyledTextCtrl* m_stcCommandLineArguments;
    wxStdDialogButtonSizer* m_stdBtnSizer70;
    wxButton* m_buttonOK;
    wxButton* m_button74;

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

public:
    wxStaticText* GetStaticText78() { return m_staticText78; }
    wxFilePickerCtrl* GetFilePickerNodeJS() { return m_filePickerNodeJS; }
    wxStaticText* GetStaticTextScript() { return m_staticTextScript; }
    wxFilePickerCtrl* GetFilePickerScript() { return m_filePickerScript; }
    wxStaticText* GetStaticText257() { return m_staticText257; }
    wxDirPickerCtrl* GetDirPickerWorkingDirectory() { return m_dirPickerWorkingDirectory; }
    wxStaticText* GetStaticTextDebuggerPort() { return m_staticTextDebuggerPort; }
    wxTextCtrl* GetTextCtrlPort() { return m_textCtrlPort; }
    wxStaticText* GetStaticText132() { return m_staticText132; }
    wxStyledTextCtrl* GetStcCommandLineArguments() { return m_stcCommandLineArguments; }
    NodeJSDebuggerDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Node.js Debugger"),
                          const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                          long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~NodeJSDebuggerDlgBase();
};

class NodeJSNewWorkspaceDlgBase : public wxDialog
{
protected:
    wxStaticText* m_staticText160;
    wxTextCtrl* m_textCtrllName;
    wxStaticText* m_staticText150;
    wxDirPickerCtrl* m_dirPickerFolder;
    wxCheckBox* m_checkBoxNewFolder;
    wxStaticText* m_staticTextPreview;
    wxStdDialogButtonSizer* m_stdBtnSizer142;
    wxButton* m_button144;
    wxButton* m_button146;

protected:
    virtual void OnTextUpdate(wxCommandEvent& event) { event.Skip(); }
    virtual void OnFolderSelected(wxFileDirPickerEvent& event) { event.Skip(); }
    virtual void OnCheckNewFolder(wxCommandEvent& event) { event.Skip(); }
    virtual void OnOKUI(wxUpdateUIEvent& event) { event.Skip(); }

public:
    wxStaticText* GetStaticText160() { return m_staticText160; }
    wxTextCtrl* GetTextCtrllName() { return m_textCtrllName; }
    wxStaticText* GetStaticText150() { return m_staticText150; }
    wxDirPickerCtrl* GetDirPickerFolder() { return m_dirPickerFolder; }
    wxCheckBox* GetCheckBoxNewFolder() { return m_checkBoxNewFolder; }
    wxStaticText* GetStaticTextPreview() { return m_staticTextPreview; }
    NodeJSNewWorkspaceDlgBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("New Workspace"),
                              const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                              long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
    virtual ~NodeJSNewWorkspaceDlgBase();
};

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

class NodeJSCliDebuggerPaneBase : public wxPanel
{
protected:
    wxSplitterWindow* m_splitter271;
    wxPanel* m_splitterPageWatches;
    clThemedTreeCtrl* m_treeCtrlLocals;
    wxPanel* m_splitterPageCallstack;
    wxSplitterWindow* m_splitter365;
    wxPanel* m_splitterPage369;
    Notebook* m_notebook;
    wxPanel* m_panelCallstack;
    clThemedListCtrl* m_dvListCtrlCallstack;
    wxPanel* m_panelBreakpoints;
    clToolBar* m_tbBreakpoints;
    clThemedListCtrl* m_dvListCtrlBreakpoints;
    wxPanel* m_panelConsole;
    wxPanel* m_splitterPage373;
    wxPanel* m_panelOutput;

protected:
    virtual void OnLocalExpanding(wxTreeEvent& event) { event.Skip(); }
    virtual void OnStackEntryActivated(wxDataViewEvent& event) { event.Skip(); }
    virtual void OnStackContextMenu(wxDataViewEvent& event) { event.Skip(); }

public:
    clThemedTreeCtrl* GetTreeCtrlLocals() { return m_treeCtrlLocals; }
    wxPanel* GetSplitterPageWatches() { return m_splitterPageWatches; }
    clThemedListCtrl* GetDvListCtrlCallstack() { return m_dvListCtrlCallstack; }
    wxPanel* GetPanelCallstack() { return m_panelCallstack; }
    clToolBar* GetTbBreakpoints() { return m_tbBreakpoints; }
    clThemedListCtrl* GetDvListCtrlBreakpoints() { return m_dvListCtrlBreakpoints; }
    wxPanel* GetPanelBreakpoints() { return m_panelBreakpoints; }
    wxPanel* GetPanelConsole() { return m_panelConsole; }
    Notebook* GetNotebook() { return m_notebook; }
    wxPanel* GetSplitterPage369() { return m_splitterPage369; }
    wxPanel* GetPanelOutput() { return m_panelOutput; }
    wxPanel* GetSplitterPage373() { return m_splitterPage373; }
    wxSplitterWindow* GetSplitter365() { return m_splitter365; }
    wxPanel* GetSplitterPageCallstack() { return m_splitterPageCallstack; }
    wxSplitterWindow* GetSplitter271() { return m_splitter271; }
    NodeJSCliDebuggerPaneBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                              const wxSize& size = wxSize(500, 300), long style = wxTAB_TRAVERSAL);
    virtual ~NodeJSCliDebuggerPaneBase();
};

#endif
