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

#ifndef _CODELITE_LITEEDITOR_EDITOR_OPTIONS_GUIDES_BASE_CLASSES_H
#define _CODELITE_LITEEDITOR_EDITOR_OPTIONS_GUIDES_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/gbsizer.h>
#include <wx/statbox.h>
#include <wx/checkbox.h>
#include <wx/stattext.h>
#include <wx/clrpicker.h>
#include <wx/spinctrl.h>
#include <wx/choice.h>
#include <wx/arrstr.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 EditorOptionsGeneralGuidesPanelBase : public wxPanel
{
protected:
    wxCheckBox* m_checkBoxLineNumbersShow;
    wxCheckBox* m_checkBoxLineNumbersHighlightCurrent;
    wxCheckBox* m_checkBoxLineNumbersRelative;
    wxCheckBox* m_checkBoxHighlightIndentLines;
    wxCheckBox* m_checkBoxHighlightModifiedLines;
    wxCheckBox* m_checkBoxHighlightBraces;
    wxCheckBox* m_checkBoxCaretLineEnabeldHighlight;
    wxStaticText* m_staticText95;
    wxColourPickerCtrl* m_colourPickerCaretLineColour;
    wxStaticText* m_staticText97;
    wxSpinCtrl* m_spinCtrlCaretLineAlpha;
    wxCheckBox* m_checkBoxDebuggerLineEnabled;
    wxStaticText* m_staticText102;
    wxColourPickerCtrl* m_colourPickerDebuggerLineColour;
    wxStaticText* m_staticText83;
    wxChoice* m_choiceWhitespaceVisibility;
    wxStaticText* m_staticText85;
    wxChoice* m_choiceWhitespaceEOLMode;
    wxStaticText* m_staticText87;
    wxSpinCtrl* m_spinCtrlWhitespaceLineSpacing;

protected:
    virtual void OnDisplayLineNumbersUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnUseRelativeLineNumbersUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnHighlightCaretLineUI(wxUpdateUIEvent& event) { event.Skip(); }
    virtual void OnHighlightDebuggerLineUI(wxUpdateUIEvent& event) { event.Skip(); }

public:
    wxCheckBox* GetCheckBoxLineNumbersShow() { return m_checkBoxLineNumbersShow; }
    wxCheckBox* GetCheckBoxLineNumbersHighlightCurrent() { return m_checkBoxLineNumbersHighlightCurrent; }
    wxCheckBox* GetCheckBoxLineNumbersRelative() { return m_checkBoxLineNumbersRelative; }
    wxCheckBox* GetCheckBoxHighlightIndentLines() { return m_checkBoxHighlightIndentLines; }
    wxCheckBox* GetCheckBoxHighlightModifiedLines() { return m_checkBoxHighlightModifiedLines; }
    wxCheckBox* GetCheckBoxHighlightBraces() { return m_checkBoxHighlightBraces; }
    wxCheckBox* GetCheckBoxCaretLineEnabeldHighlight() { return m_checkBoxCaretLineEnabeldHighlight; }
    wxStaticText* GetStaticText95() { return m_staticText95; }
    wxColourPickerCtrl* GetColourPickerCaretLineColour() { return m_colourPickerCaretLineColour; }
    wxStaticText* GetStaticText97() { return m_staticText97; }
    wxSpinCtrl* GetSpinCtrlCaretLineAlpha() { return m_spinCtrlCaretLineAlpha; }
    wxCheckBox* GetCheckBoxDebuggerLineEnabled() { return m_checkBoxDebuggerLineEnabled; }
    wxStaticText* GetStaticText102() { return m_staticText102; }
    wxColourPickerCtrl* GetColourPickerDebuggerLineColour() { return m_colourPickerDebuggerLineColour; }
    wxStaticText* GetStaticText83() { return m_staticText83; }
    wxChoice* GetChoiceWhitespaceVisibility() { return m_choiceWhitespaceVisibility; }
    wxStaticText* GetStaticText85() { return m_staticText85; }
    wxChoice* GetChoiceWhitespaceEOLMode() { return m_choiceWhitespaceEOLMode; }
    wxStaticText* GetStaticText87() { return m_staticText87; }
    wxSpinCtrl* GetSpinCtrlWhitespaceLineSpacing() { return m_spinCtrlWhitespaceLineSpacing; }
    EditorOptionsGeneralGuidesPanelBase(wxWindow* parent, wxWindowID id = wxID_ANY,
                                        const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1, -1),
                                        long style = wxTAB_TRAVERSAL);
    virtual ~EditorOptionsGeneralGuidesPanelBase();
};

class EditorOptionsGeneralEditBase : public wxPanel
{
protected:
    wxCheckBox* m_checkBoxEditSmartCurlyBrackets;
    wxCheckBox* m_checkBoxEditSmartParenthesis;
    wxCheckBox* m_checkBoxAutoCompleteParen;
    wxCheckBox* m_checkBoxSmartQuotes;
    wxCheckBox* m_checkBoxCopyEntireLine;
    wxCheckBox* m_checkBoxDisableSemicolonShift;
    wxCheckBox* m_checkBoxWrapWithQuotes;
    wxCheckBox* m_checkBoxWrapWithBrackets;
    wxCheckBox* m_checkBoxEnableMouseZoom;
    wxCheckBox* m_checkBoxIdentLineComments;

protected:
public:
    wxCheckBox* GetCheckBoxEditSmartCurlyBrackets() { return m_checkBoxEditSmartCurlyBrackets; }
    wxCheckBox* GetCheckBoxEditSmartParenthesis() { return m_checkBoxEditSmartParenthesis; }
    wxCheckBox* GetCheckBoxAutoCompleteParen() { return m_checkBoxAutoCompleteParen; }
    wxCheckBox* GetCheckBoxSmartQuotes() { return m_checkBoxSmartQuotes; }
    wxCheckBox* GetCheckBoxCopyEntireLine() { return m_checkBoxCopyEntireLine; }
    wxCheckBox* GetCheckBoxDisableSemicolonShift() { return m_checkBoxDisableSemicolonShift; }
    wxCheckBox* GetCheckBoxWrapWithQuotes() { return m_checkBoxWrapWithQuotes; }
    wxCheckBox* GetCheckBoxWrapWithBrackets() { return m_checkBoxWrapWithBrackets; }
    wxCheckBox* GetCheckBoxEnableMouseZoom() { return m_checkBoxEnableMouseZoom; }
    wxCheckBox* GetCheckBoxIdentLineComments() { return m_checkBoxIdentLineComments; }
    EditorOptionsGeneralEditBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
                                 const wxSize& size = wxSize(-1, -1), long style = wxTAB_TRAVERSAL);
    virtual ~EditorOptionsGeneralEditBase();
};

#endif
