CodeFormatterBaseDlg::CodeFormatterBaseDlg(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); wxCrafterGgLOZbInitBitmapResources(); bBitmapLoaded = true; } wxBoxSizer* bSizerMain = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizerMain); m_splitterSettingsPreview = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxSize(400,-1), wxSP_LIVE_UPDATE|wxSP_NO_XP_THEME|wxSP_3DSASH); m_splitterSettingsPreview->SetSashGravity(0.5); m_splitterSettingsPreview->SetMinimumPaneSize(50); bSizerMain->Add(m_splitterSettingsPreview, 1, wxEXPAND, 5); m_panelSettings = new wxPanel(m_splitterSettingsPreview, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL); wxBoxSizer* bSizerSettings = new wxBoxSizer(wxVERTICAL); m_panelSettings->SetSizer(bSizerSettings); m_splitter16 = new wxSplitterWindow(m_panelSettings, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE|wxSP_NO_XP_THEME|wxSP_3DSASH); m_splitter16->SetSashGravity(1); m_splitter16->SetMinimumPaneSize(100); bSizerSettings->Add(m_splitter16, 1, wxEXPAND, 5); m_splitterPage20 = new wxPanel(m_splitter16, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); wxBoxSizer* boxSizer26 = new wxBoxSizer(wxVERTICAL); m_splitterPage20->SetSizer(boxSizer26); wxArrayString m_pgMgrArr; wxUnusedVar(m_pgMgrArr); wxArrayInt m_pgMgrIntArr; wxUnusedVar(m_pgMgrIntArr); m_pgMgr = new wxPropertyGridManager(m_splitterPage20, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxPG_DESCRIPTION|wxPG_SPLITTER_AUTO_CENTER); m_pgMgr->SetFocus(); boxSizer26->Add(m_pgMgr, 1, wxALL|wxEXPAND, 5); m_pgPropGeneral = m_pgMgr->Append( new wxPropertyCategory( _("General Options") ) ); m_pgPropGeneral->SetHelpString(_("General Options")); m_pgPropAutoSave = m_pgMgr->AppendIn( m_pgPropGeneral, new wxBoolProperty( _("Format file OnSave"), wxPG_LABEL, 0) ); m_pgPropAutoSave->SetHelpString(_("Auto format the file before saving it")); m_pgPropCXX = m_pgMgr->Append( new wxPropertyCategory( _("C++") ) ); m_pgPropCXX->SetHelpString(_("C++ Related Settings")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("AStyle")); m_pgMgrArr.Add(_("clang-format")); m_pgMgrIntArr.Add(kFormatEngineAStyle); m_pgMgrIntArr.Add(kFormatEngineClangFormat); m_pgPropEngine = m_pgMgr->AppendIn( m_pgPropCXX, new wxEnumProperty( _("C++ Formatter Tool"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropEngine->SetHelpString(_("Select the formatter tool to use for the C,C++,Java and JavaScript language")); m_pgPropAstyleOptions = m_pgMgr->AppendIn( m_pgPropCXX, new wxPropertyCategory( _("AStyle Options") ) ); m_pgPropAstyleOptions->SetHelpString(wxT("")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("GNU")); m_pgMgrArr.Add(_("Java")); m_pgMgrArr.Add(_("K&R")); m_pgMgrArr.Add(_("Linux")); m_pgMgrArr.Add(_("ANSI")); m_pgPropPreDefinedStyles = m_pgMgr->AppendIn( m_pgPropAstyleOptions, new wxEnumProperty( _("PreDefined Styles"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropPreDefinedStyles->SetHelpString(_("Choose the formatting from one of the known styles")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("Break closing")); m_pgMgrArr.Add(_("Attach")); m_pgMgrArr.Add(_("Linux")); m_pgMgrArr.Add(_("Break")); m_pgMgrArr.Add(_("None")); m_pgPropBrackets = m_pgMgr->AppendIn( m_pgPropAstyleOptions, new wxEnumProperty( _("Brackets"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropBrackets->SetHelpString(_("Bracket Style options define the bracket style to use")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("Class")); m_pgMgrArr.Add(_("Brackets")); m_pgMgrArr.Add(_("Switches")); m_pgMgrArr.Add(_("Namespaces")); m_pgMgrArr.Add(_("Case")); m_pgMgrArr.Add(_("Labels")); m_pgMgrArr.Add(_("Blocks")); m_pgMgrArr.Add(_("Preprocessors")); m_pgMgrArr.Add(_("Max Instatement Indent")); m_pgMgrArr.Add(_("Min Instatement Indent")); m_pgMgrIntArr.Add(AS_INDENT_CLASS); m_pgMgrIntArr.Add(AS_INDENT_BRACKETS); m_pgMgrIntArr.Add(AS_INDENT_SWITCHES); m_pgMgrIntArr.Add(AS_INDENT_NAMESPACES); m_pgMgrIntArr.Add(AS_INDENT_CASE); m_pgMgrIntArr.Add(AS_INDENT_LABELS); m_pgMgrIntArr.Add(AS_INDENT_BLOCKS); m_pgMgrIntArr.Add(AS_INDENT_PREPROCESSORS); m_pgMgrIntArr.Add(AS_MAX_INSTATEMENT_INDENT); m_pgMgrIntArr.Add(AS_MIN_COND_INDENT); m_pgPropIndentation = m_pgMgr->AppendIn( m_pgPropAstyleOptions, new wxFlagsProperty( _("Indentation"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropIndentation->SetHelpString(wxT("")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("Break Blocks")); m_pgMgrArr.Add(_("Pad Parenthesis")); m_pgMgrArr.Add(_("Break Blocks All")); m_pgMgrArr.Add(_("Pad Parenthesis Outside")); m_pgMgrArr.Add(_("Break else-if")); m_pgMgrArr.Add(_("Pad Parenthesis Inside")); m_pgMgrArr.Add(_("Pad Operators")); m_pgMgrArr.Add(_("UnPad Parenthesis")); m_pgMgrArr.Add(_("One Line Keep Statement")); m_pgMgrArr.Add(_("Fill Empty Lines")); m_pgMgrArr.Add(_("One Line Keep Blocks")); m_pgMgrIntArr.Add(AS_BREAK_BLOCKS); m_pgMgrIntArr.Add(AS_PAD_PARENTHESIS); m_pgMgrIntArr.Add(AS_BREAK_BLOCKS_ALL); m_pgMgrIntArr.Add(AS_PAD_PARENTHESIS_OUT); m_pgMgrIntArr.Add(AS_BREAK_ELSEIF); m_pgMgrIntArr.Add(AS_PAD_PARENTHESIS_IN); m_pgMgrIntArr.Add(AS_PAD_OPER); m_pgMgrIntArr.Add(AS_UNPAD_PARENTHESIS); m_pgMgrIntArr.Add(AS_ONE_LINE_KEEP_STATEMENT); m_pgMgrIntArr.Add(AS_FILL_EMPTY_LINES); m_pgMgrIntArr.Add(AS_ONE_LINE_KEEP_BLOCKS); m_pgPropFormatting = m_pgMgr->AppendIn( m_pgPropAstyleOptions, new wxFlagsProperty( _("Formatting"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropFormatting->SetHelpString(_("Select one or more formatting option from the list below")); m_pgPropClangFormat = m_pgMgr->AppendIn( m_pgPropCXX, new wxPropertyCategory( _("ClangFormat Options") ) ); m_pgPropClangFormat->SetHelpString(wxT("")); m_pgPropClangFormatExePath = m_pgMgr->AppendIn( m_pgPropClangFormat, new wxFileProperty( _("clang-format path"), wxPG_LABEL, wxT("")) ); m_pgMgr->SetPropertyAttribute(m_pgPropClangFormatExePath, wxPG_FILE_WILDCARD, wxT("")); m_pgPropClangFormatExePath->SetHelpString(_("Select the path to clang-format executable tool")); m_pgPropColumnLimit = m_pgMgr->AppendIn( m_pgPropClangFormat, new wxIntProperty( _("Column Limit"), wxPG_LABEL, 0) ); m_pgPropColumnLimit->SetHelpString(_("The column limit\nA column limit of 0 means that there is no column limit.\nIn this case, clang-format will respect the input's line breaking decisions within statements unless they contradict other rules")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("Linux")); m_pgMgrArr.Add(_("Attach")); m_pgMgrArr.Add(_("Stroustrup")); m_pgMgrArr.Add(_("Allman")); m_pgMgrArr.Add(_("GNU")); m_pgMgrIntArr.Add(kLinux); m_pgMgrIntArr.Add(kAttach); m_pgMgrIntArr.Add(kStroustrup); m_pgMgrIntArr.Add(kAllman); m_pgMgrIntArr.Add(kGNU); m_pgPropClangBraceBreakStyle = m_pgMgr->AppendIn( m_pgPropClangFormat, new wxEnumProperty( _("Brace breaking style"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropClangBraceBreakStyle->SetHelpString(_("The brace breaking style to use.")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("LLVM")); m_pgMgrArr.Add(_("Google")); m_pgMgrArr.Add(_("WebKit")); m_pgMgrArr.Add(_("Chromium")); m_pgMgrArr.Add(_("Mozilla")); m_pgMgrIntArr.Add(kClangFormatLLVM); m_pgMgrIntArr.Add(kClangFormatGoogle); m_pgMgrIntArr.Add(kClangFormatWebKit); m_pgMgrIntArr.Add(kClangFormatChromium); m_pgMgrIntArr.Add(kClangFormatMozilla); m_pgPropClangFormatStyle = m_pgMgr->AppendIn( m_pgPropClangFormat, new wxEnumProperty( _("Style"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropClangFormatStyle->SetHelpString(_("Coding style")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("Align Escaped Newlines Left")); m_pgMgrArr.Add(_("Align Trailing Comments")); m_pgMgrArr.Add(_("Allow All Parameters Of Declaration On Next Line")); m_pgMgrArr.Add(_("Allow Short Functions On A Single Line")); m_pgMgrArr.Add(_("Allow Short Blocks On A Single Line")); m_pgMgrArr.Add(_("Allow Short Loops On A Single Line")); m_pgMgrArr.Add(_("Allow Short If Statements On A SingleLine")); m_pgMgrArr.Add(_("Always Break Before Multiline Strings")); m_pgMgrArr.Add(_("Always Break Template Declarations")); m_pgMgrArr.Add(_("Bin Pack Parameters")); m_pgMgrArr.Add(_("Break Before Binary Operators")); m_pgMgrArr.Add(_("Break Before Ternary Operators")); m_pgMgrArr.Add(_("Break Constructor Initializers Before Comma")); m_pgMgrArr.Add(_("Indent Case Labels")); m_pgMgrArr.Add(_("Indent Function DeclarationAfterType")); m_pgMgrArr.Add(_("Space Before Assignment Operators")); m_pgMgrArr.Add(_("Space Before Parentheses")); m_pgMgrArr.Add(_("Spaces In Parentheses")); m_pgMgrArr.Add(_("Pointer And Reference Aligned to the Right")); m_pgMgrIntArr.Add(kAlignEscapedNewlinesLeft); m_pgMgrIntArr.Add(kAlignTrailingComments); m_pgMgrIntArr.Add(kAllowAllParametersOfDeclarationOnNextLine); m_pgMgrIntArr.Add(kAllowShortFunctionsOnASingleLine); m_pgMgrIntArr.Add(kAllowShortBlocksOnASingleLine); m_pgMgrIntArr.Add(kAllowShortLoopsOnASingleLine); m_pgMgrIntArr.Add(kAllowShortIfStatementsOnASingleLine); m_pgMgrIntArr.Add(kAlwaysBreakBeforeMultilineStrings); m_pgMgrIntArr.Add(kAlwaysBreakTemplateDeclarations); m_pgMgrIntArr.Add(kBinPackParameters); m_pgMgrIntArr.Add(kBreakBeforeBinaryOperators); m_pgMgrIntArr.Add(kBreakBeforeTernaryOperators); m_pgMgrIntArr.Add(kBreakConstructorInitializersBeforeComma); m_pgMgrIntArr.Add(kIndentCaseLabels); m_pgMgrIntArr.Add(kIndentFunctionDeclarationAfterType); m_pgMgrIntArr.Add(kSpaceBeforeAssignmentOperators); m_pgMgrIntArr.Add(kSpaceBeforeParens); m_pgMgrIntArr.Add(kSpacesInParentheses); m_pgMgrIntArr.Add(kPointerAlignmentRight); m_pgPropClangFormattingOptions = m_pgMgr->AppendIn( m_pgPropClangFormat, new wxFlagsProperty( _("Clang Formatting Options"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropClangFormattingOptions->SetHelpString(wxT("")); m_pgPropPhpFormatter = m_pgMgr->Append( new wxPropertyCategory( _("PHP") ) ); m_pgPropPhpFormatter->SetHelpString(_("PHP related settings")); m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); m_pgMgrArr.Add(_("Break before class")); m_pgMgrArr.Add(_("Break before function")); m_pgMgrArr.Add(_("Break before 'while'")); m_pgMgrArr.Add(_("Break before 'foreach'")); m_pgMgrArr.Add(_("'else' doesn't break")); m_pgMgrArr.Add(_("Break after 'heredoc' statement")); m_pgMgrIntArr.Add(kPFF_BreakBeforeClass); m_pgMgrIntArr.Add(kPFF_BreakBeforeFunction); m_pgMgrIntArr.Add(kPFF_BreakBeforeWhile); m_pgMgrIntArr.Add(kPFF_BreakBeforeForeach); m_pgMgrIntArr.Add(kPFF_ElseOnSameLineAsClosingCurlyBrace); m_pgMgrIntArr.Add(kPFF_BreakAfterHeredoc); m_pgPropPhpFormatterOptions = m_pgMgr->AppendIn( m_pgPropPhpFormatter, new wxFlagsProperty( _("PHPFormatter Options"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) ); m_pgPropPhpFormatterOptions->SetHelpString(wxT("")); m_splitterPage24 = new wxPanel(m_splitter16, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_splitter16->SplitHorizontally(m_splitterPage20, m_splitterPage24, 0); wxBoxSizer* boxSizer28 = new wxBoxSizer(wxVERTICAL); m_splitterPage24->SetSizer(boxSizer28); wxBoxSizer* bCustomSettingsSizer = new wxBoxSizer(wxVERTICAL); boxSizer28->Add(bCustomSettingsSizer, 1, wxEXPAND, 0); wxBoxSizer* boxSizer57 = new wxBoxSizer(wxHORIZONTAL); bCustomSettingsSizer->Add(boxSizer57, 0, wxEXPAND, 5); m_staticText59 = new wxStaticText(m_splitterPage24, wxID_ANY, _("AStyle Only:"), wxDefaultPosition, wxSize(-1,-1), 0); wxFont m_staticText59Font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); m_staticText59Font.SetWeight(wxFONTWEIGHT_BOLD); m_staticText59->SetFont(m_staticText59Font); boxSizer57->Add(m_staticText59, 0, wxALL, 5); m_staticText3 = new wxStaticText(m_splitterPage24, wxID_ANY, _("Custom user settings"), wxDefaultPosition, wxSize(-1, -1), 0); boxSizer57->Add(m_staticText3, 0, wxALL, 5); m_textCtrlUserFlags = new wxTextCtrl(m_splitterPage24, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1, -1), wxTE_RICH2|wxTE_PROCESS_TAB|wxTE_PROCESS_ENTER|wxTE_MULTILINE); wxFont m_textCtrlUserFlagsFont(10, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("Sans")); m_textCtrlUserFlags->SetFont(m_textCtrlUserFlagsFont); bCustomSettingsSizer->Add(m_textCtrlUserFlags, 1, wxALL|wxEXPAND, 5); m_panelPreview = new wxPanel(m_splitterSettingsPreview, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_splitterSettingsPreview->SplitVertically(m_panelSettings, m_panelPreview, 0); wxBoxSizer* bPreviewSizer = new wxBoxSizer(wxHORIZONTAL); m_panelPreview->SetSizer(bPreviewSizer); m_notebook65 = new wxNotebook(m_panelPreview, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); bPreviewSizer->Add(m_notebook65, 1, wxALL|wxEXPAND, 5); m_panel67 = new wxPanel(m_notebook65, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_notebook65->AddPage(m_panel67, _("C++ Preview"), false); wxBoxSizer* boxSizer71 = new wxBoxSizer(wxVERTICAL); m_panel67->SetSizer(boxSizer71); m_textCtrlPreview = new wxStyledTextCtrl(m_panel67, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); // Configure the fold margin m_textCtrlPreview->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_textCtrlPreview->SetMarginMask (4, wxSTC_MASK_FOLDERS); m_textCtrlPreview->SetMarginSensitive(4, true); m_textCtrlPreview->SetMarginWidth (4, 0); // Configure the tracker margin m_textCtrlPreview->SetMarginWidth(1, 0); // Configure the symbol margin m_textCtrlPreview->SetMarginType (2, wxSTC_MARGIN_SYMBOL); m_textCtrlPreview->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); m_textCtrlPreview->SetMarginWidth(2, 0); m_textCtrlPreview->SetMarginSensitive(2, true); // Configure the line numbers margin m_textCtrlPreview->SetMarginType(0, wxSTC_MARGIN_NUMBER); m_textCtrlPreview->SetMarginWidth(0,0); // Configure the line symbol margin m_textCtrlPreview->SetMarginType(3, wxSTC_MARGIN_FORE); m_textCtrlPreview->SetMarginMask(3, 0); m_textCtrlPreview->SetMarginWidth(3,0); // Select the lexer m_textCtrlPreview->SetLexer(wxSTC_LEX_NULL); // Set default font / styles m_textCtrlPreview->StyleClearAll(); m_textCtrlPreview->SetWrapMode(0); m_textCtrlPreview->SetIndentationGuides(0); m_textCtrlPreview->SetKeyWords(0, wxT("")); m_textCtrlPreview->SetKeyWords(1, wxT("")); m_textCtrlPreview->SetKeyWords(2, wxT("")); m_textCtrlPreview->SetKeyWords(3, wxT("")); m_textCtrlPreview->SetKeyWords(4, wxT("")); boxSizer71->Add(m_textCtrlPreview, 1, wxALL|wxEXPAND, 5); m_panel69 = new wxPanel(m_notebook65, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_notebook65->AddPage(m_panel69, _("PHP Preview"), false); wxBoxSizer* boxSizer73 = new wxBoxSizer(wxVERTICAL); m_panel69->SetSizer(boxSizer73); m_stcPhpPreview = new wxStyledTextCtrl(m_panel69, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); // Configure the fold margin m_stcPhpPreview->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_stcPhpPreview->SetMarginMask (4, wxSTC_MASK_FOLDERS); m_stcPhpPreview->SetMarginSensitive(4, true); m_stcPhpPreview->SetMarginWidth (4, 0); // Configure the tracker margin m_stcPhpPreview->SetMarginWidth(1, 0); // Configure the symbol margin m_stcPhpPreview->SetMarginType (2, wxSTC_MARGIN_SYMBOL); m_stcPhpPreview->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); m_stcPhpPreview->SetMarginWidth(2, 0); m_stcPhpPreview->SetMarginSensitive(2, true); // Configure the line numbers margin m_stcPhpPreview->SetMarginType(0, wxSTC_MARGIN_NUMBER); m_stcPhpPreview->SetMarginWidth(0,0); // Configure the line symbol margin m_stcPhpPreview->SetMarginType(3, wxSTC_MARGIN_FORE); m_stcPhpPreview->SetMarginMask(3, 0); m_stcPhpPreview->SetMarginWidth(3,0); // Select the lexer m_stcPhpPreview->SetLexer(wxSTC_LEX_HTML); // Set default font / styles m_stcPhpPreview->StyleClearAll(); m_stcPhpPreview->SetWrapMode(0); m_stcPhpPreview->SetIndentationGuides(0); m_stcPhpPreview->SetKeyWords(0, wxT("")); m_stcPhpPreview->SetKeyWords(1, wxT("")); m_stcPhpPreview->SetKeyWords(2, wxT("")); m_stcPhpPreview->SetKeyWords(3, wxT("")); m_stcPhpPreview->SetKeyWords(4, wxT("")); boxSizer73->Add(m_stcPhpPreview, 1, wxALL|wxEXPAND, 5); wxBoxSizer* bSizerButtons = new wxBoxSizer(wxHORIZONTAL); bSizerMain->Add(bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5); m_stdBtnSizer30 = new wxStdDialogButtonSizer(); bSizerButtons->Add(m_stdBtnSizer30, 0, wxALL, 5); m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonOK); m_buttonApply = new wxButton(this, wxID_APPLY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonApply); m_buttonCancel = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonCancel); m_buttonHelp = new wxButton(this, wxID_HELP, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonHelp); m_stdBtnSizer30->Realize(); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } Centre(wxBOTH); // Connect events m_pgMgr->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnAStylePropertyChanged), NULL, this); m_textCtrlUserFlags->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(CodeFormatterBaseDlg::OnCustomAstyleFlags), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnOK), NULL, this); m_buttonApply->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CodeFormatterBaseDlg::OnApplyUI), NULL, this); m_buttonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnApply), NULL, this); m_buttonHelp->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnHelp), NULL, this); }
CodeFormatterBaseDlg::CodeFormatterBaseDlg(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); wxCrafterGgLOZbInitBitmapResources(); bBitmapLoaded = true; } wxBoxSizer* bSizerMain = new wxBoxSizer(wxVERTICAL); this->SetSizer(bSizerMain); m_treebook = new wxTreebook(this, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxBK_DEFAULT); m_treebook->SetName(wxT("m_treebook")); wxImageList* m_treebook_il = new wxImageList(16, 16); m_treebook->AssignImageList(m_treebook_il); bSizerMain->Add(m_treebook, 1, wxALL|wxEXPAND, 5); m_panel133 = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); int m_panel133ImgIndex; m_panel133ImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("configure"))); m_treebook->AddPage(m_panel133, _("General"), true, m_panel133ImgIndex); wxBoxSizer* boxSizer179 = new wxBoxSizer(wxVERTICAL); m_panel133->SetSizer(boxSizer179); wxFlexGridSizer* flexGridSizer158 = new wxFlexGridSizer(0, 2, 0, 0); flexGridSizer158->SetFlexibleDirection( wxBOTH ); flexGridSizer158->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); flexGridSizer158->AddGrowableCol(1); boxSizer179->Add(flexGridSizer158, 1, wxALL|wxEXPAND, 2); m_staticText162 = new wxStaticText(m_panel133, wxID_ANY, _("Format editor on file save:"), wxDefaultPosition, wxSize(-1,-1), 0); flexGridSizer158->Add(m_staticText162, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); m_checkBoxFormatOnSave = new wxCheckBox(m_panel133, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,-1), 0); m_checkBoxFormatOnSave->SetValue(false); m_checkBoxFormatOnSave->SetToolTip(_("When saving a file, automatically format it")); flexGridSizer158->Add(m_checkBoxFormatOnSave, 0, wxRIGHT|wxTOP|wxBOTTOM|wxALIGN_LEFT, 5); m_staticText115 = new wxStaticText(m_panel133, wxID_ANY, _("Select C++ formatter:"), wxDefaultPosition, wxSize(-1,-1), 0); flexGridSizer158->Add(m_staticText115, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); wxArrayString m_choiceCxxEngineArr; m_choiceCxxEngineArr.Add(wxT("AStyle")); m_choiceCxxEngineArr.Add(wxT("clang-format")); m_choiceCxxEngine = new wxChoice(m_panel133, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), m_choiceCxxEngineArr, 0); m_choiceCxxEngine->SetToolTip(_("Select the formatter engine for C/C++\nNote that JavaScript, clang-format is always used")); m_choiceCxxEngine->SetSelection(1); flexGridSizer158->Add(m_choiceCxxEngine, 0, wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5); int m_panelCxxImgIndex; m_panelCxxImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_cplusplus"))); m_treebook->AddPage(NULL, _("C++"), false, m_panelCxxImgIndex); m_panelAstyle = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); int m_panelAstyleImgIndex; m_panelAstyleImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("astyle"))); m_treebook->InsertSubPage(1, m_panelAstyle, _("AStyle"), false, m_panelAstyleImgIndex); wxBoxSizer* boxSizer95 = new wxBoxSizer(wxVERTICAL); m_panelAstyle->SetSizer(boxSizer95); m_splitter145 = new wxSplitterWindow(m_panelAstyle, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); m_splitter145->SetSashGravity(0.5); m_splitter145->SetMinimumPaneSize(10); boxSizer95->Add(m_splitter145, 1, wxEXPAND, 5); m_splitterPage149 = new wxPanel(m_splitter145, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); wxBoxSizer* boxSizer155 = new wxBoxSizer(wxVERTICAL); m_splitterPage149->SetSizer(boxSizer155); wxArrayString m_pgMgrAstyleArr; wxUnusedVar(m_pgMgrAstyleArr); wxArrayInt m_pgMgrAstyleIntArr; wxUnusedVar(m_pgMgrAstyleIntArr); m_pgMgrAstyle = new wxPropertyGridManager(m_splitterPage149, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxPG_DESCRIPTION|wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED); boxSizer155->Add(m_pgMgrAstyle, 1, wxALL|wxEXPAND, 2); m_pgPropAstyleOptions = m_pgMgrAstyle->Append( new wxPropertyCategory( _("AStyle Options") ) ); m_pgPropAstyleOptions->SetHelpString(wxT("")); m_pgMgrAstyleArr.Clear(); m_pgMgrAstyleIntArr.Clear(); m_pgMgrAstyleArr.Add(_("GNU")); m_pgMgrAstyleArr.Add(_("Java")); m_pgMgrAstyleArr.Add(_("K&R")); m_pgMgrAstyleArr.Add(_("Linux")); m_pgMgrAstyleArr.Add(_("ANSI")); m_pgPropPreDefinedStyles = m_pgMgrAstyle->AppendIn( m_pgPropAstyleOptions, new wxEnumProperty( _("PreDefined Styles"), wxPG_LABEL, m_pgMgrAstyleArr, m_pgMgrAstyleIntArr, 0) ); m_pgPropPreDefinedStyles->SetHelpString(_("Choose the formatting from one of the known styles")); m_pgMgrAstyleArr.Clear(); m_pgMgrAstyleIntArr.Clear(); m_pgMgrAstyleArr.Add(_("Break closing")); m_pgMgrAstyleArr.Add(_("Attach")); m_pgMgrAstyleArr.Add(_("Linux")); m_pgMgrAstyleArr.Add(_("Break")); m_pgMgrAstyleArr.Add(_("None")); m_pgPropBrackets = m_pgMgrAstyle->AppendIn( m_pgPropAstyleOptions, new wxEnumProperty( _("Brackets"), wxPG_LABEL, m_pgMgrAstyleArr, m_pgMgrAstyleIntArr, 0) ); m_pgPropBrackets->SetHelpString(_("Bracket Style options define the bracket style to use")); m_pgMgrAstyleArr.Clear(); m_pgMgrAstyleIntArr.Clear(); m_pgMgrAstyleArr.Add(_("Class")); m_pgMgrAstyleArr.Add(_("Brackets")); m_pgMgrAstyleArr.Add(_("Switches")); m_pgMgrAstyleArr.Add(_("Namespaces")); m_pgMgrAstyleArr.Add(_("Case")); m_pgMgrAstyleArr.Add(_("Labels")); m_pgMgrAstyleArr.Add(_("Blocks")); m_pgMgrAstyleArr.Add(_("Preprocessors")); m_pgMgrAstyleArr.Add(_("Max Instatement Indent")); m_pgMgrAstyleArr.Add(_("Min Instatement Indent")); m_pgMgrAstyleIntArr.Add(AS_INDENT_CLASS); m_pgMgrAstyleIntArr.Add(AS_INDENT_BRACKETS); m_pgMgrAstyleIntArr.Add(AS_INDENT_SWITCHES); m_pgMgrAstyleIntArr.Add(AS_INDENT_NAMESPACES); m_pgMgrAstyleIntArr.Add(AS_INDENT_CASE); m_pgMgrAstyleIntArr.Add(AS_INDENT_LABELS); m_pgMgrAstyleIntArr.Add(AS_INDENT_BLOCKS); m_pgMgrAstyleIntArr.Add(AS_INDENT_PREPROCESSORS); m_pgMgrAstyleIntArr.Add(AS_MAX_INSTATEMENT_INDENT); m_pgMgrAstyleIntArr.Add(AS_MIN_COND_INDENT); m_pgPropIndentation = m_pgMgrAstyle->AppendIn( m_pgPropAstyleOptions, new wxFlagsProperty( _("Indentation"), wxPG_LABEL, m_pgMgrAstyleArr, m_pgMgrAstyleIntArr, 0) ); m_pgPropIndentation->SetHelpString(wxT("")); m_pgMgrAstyleArr.Clear(); m_pgMgrAstyleIntArr.Clear(); m_pgMgrAstyleArr.Add(_("Break Blocks")); m_pgMgrAstyleArr.Add(_("Pad Parenthesis")); m_pgMgrAstyleArr.Add(_("Break Blocks All")); m_pgMgrAstyleArr.Add(_("Pad Parenthesis Outside")); m_pgMgrAstyleArr.Add(_("Break else-if")); m_pgMgrAstyleArr.Add(_("Pad Parenthesis Inside")); m_pgMgrAstyleArr.Add(_("Pad Operators")); m_pgMgrAstyleArr.Add(_("UnPad Parenthesis")); m_pgMgrAstyleArr.Add(_("One Line Keep Statement")); m_pgMgrAstyleArr.Add(_("Fill Empty Lines")); m_pgMgrAstyleArr.Add(_("One Line Keep Blocks")); m_pgMgrAstyleIntArr.Add(AS_BREAK_BLOCKS); m_pgMgrAstyleIntArr.Add(AS_PAD_PARENTHESIS); m_pgMgrAstyleIntArr.Add(AS_BREAK_BLOCKS_ALL); m_pgMgrAstyleIntArr.Add(AS_PAD_PARENTHESIS_OUT); m_pgMgrAstyleIntArr.Add(AS_BREAK_ELSEIF); m_pgMgrAstyleIntArr.Add(AS_PAD_PARENTHESIS_IN); m_pgMgrAstyleIntArr.Add(AS_PAD_OPER); m_pgMgrAstyleIntArr.Add(AS_UNPAD_PARENTHESIS); m_pgMgrAstyleIntArr.Add(AS_ONE_LINE_KEEP_STATEMENT); m_pgMgrAstyleIntArr.Add(AS_FILL_EMPTY_LINES); m_pgMgrAstyleIntArr.Add(AS_ONE_LINE_KEEP_BLOCKS); m_pgPropFormatting = m_pgMgrAstyle->AppendIn( m_pgPropAstyleOptions, new wxFlagsProperty( _("Formatting"), wxPG_LABEL, m_pgMgrAstyleArr, m_pgMgrAstyleIntArr, 0) ); m_pgPropFormatting->SetHelpString(_("Select one or more formatting option from the list below")); wxBoxSizer* bCustomSettingsSizer = new wxBoxSizer(wxVERTICAL); boxSizer155->Add(bCustomSettingsSizer, 0, wxALL|wxEXPAND, 2); wxBoxSizer* boxSizer57 = new wxBoxSizer(wxHORIZONTAL); bCustomSettingsSizer->Add(boxSizer57, 0, wxEXPAND, 5); m_staticText59 = new wxStaticText(m_splitterPage149, wxID_ANY, _("AStyle Only:"), wxDefaultPosition, wxSize(-1,-1), 0); wxFont m_staticText59Font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); m_staticText59Font.SetWeight(wxFONTWEIGHT_BOLD); m_staticText59->SetFont(m_staticText59Font); boxSizer57->Add(m_staticText59, 0, wxRIGHT|wxTOP|wxBOTTOM, 5); m_staticText3 = new wxStaticText(m_splitterPage149, wxID_ANY, _("Custom user settings"), wxDefaultPosition, wxSize(-1, -1), 0); boxSizer57->Add(m_staticText3, 0, wxALL, 5); m_textCtrlUserFlags = new wxTextCtrl(m_splitterPage149, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(-1,80), wxTE_RICH2|wxTE_PROCESS_TAB|wxTE_PROCESS_ENTER|wxTE_MULTILINE); wxFont m_textCtrlUserFlagsFont(10, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("Sans")); m_textCtrlUserFlags->SetFont(m_textCtrlUserFlagsFont); bCustomSettingsSizer->Add(m_textCtrlUserFlags, 1, wxEXPAND, 5); m_splitterPage153 = new wxPanel(m_splitter145, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_splitter145->SplitVertically(m_splitterPage149, m_splitterPage153, 0); wxBoxSizer* boxSizer157 = new wxBoxSizer(wxVERTICAL); m_splitterPage153->SetSizer(boxSizer157); m_textCtrlPreview = new wxStyledTextCtrl(m_splitterPage153, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); // Configure the fold margin m_textCtrlPreview->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_textCtrlPreview->SetMarginMask (4, wxSTC_MASK_FOLDERS); m_textCtrlPreview->SetMarginSensitive(4, true); m_textCtrlPreview->SetMarginWidth (4, 0); // Configure the tracker margin m_textCtrlPreview->SetMarginWidth(1, 0); // Configure the symbol margin m_textCtrlPreview->SetMarginType (2, wxSTC_MARGIN_SYMBOL); m_textCtrlPreview->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); m_textCtrlPreview->SetMarginWidth(2, 0); m_textCtrlPreview->SetMarginSensitive(2, true); // Configure the line numbers margin m_textCtrlPreview->SetMarginType(0, wxSTC_MARGIN_NUMBER); m_textCtrlPreview->SetMarginWidth(0,0); // Configure the line symbol margin m_textCtrlPreview->SetMarginType(3, wxSTC_MARGIN_FORE); m_textCtrlPreview->SetMarginMask(3, 0); m_textCtrlPreview->SetMarginWidth(3,0); // Select the lexer m_textCtrlPreview->SetLexer(wxSTC_LEX_NULL); // Set default font / styles m_textCtrlPreview->StyleClearAll(); m_textCtrlPreview->SetWrapMode(0); m_textCtrlPreview->SetIndentationGuides(0); m_textCtrlPreview->SetKeyWords(0, wxT("")); m_textCtrlPreview->SetKeyWords(1, wxT("")); m_textCtrlPreview->SetKeyWords(2, wxT("")); m_textCtrlPreview->SetKeyWords(3, wxT("")); m_textCtrlPreview->SetKeyWords(4, wxT("")); boxSizer157->Add(m_textCtrlPreview, 1, wxALL|wxEXPAND, 2); m_panelClang = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); int m_panelClangImgIndex; m_panelClangImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("clang"))); m_treebook->InsertSubPage(1, m_panelClang, _("clang-format"), false, m_panelClangImgIndex); wxBoxSizer* boxSizer97 = new wxBoxSizer(wxVERTICAL); m_panelClang->SetSizer(boxSizer97); m_splitter165 = new wxSplitterWindow(m_panelClang, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); m_splitter165->SetSashGravity(0.5); m_splitter165->SetMinimumPaneSize(10); boxSizer97->Add(m_splitter165, 1, wxEXPAND, 5); m_splitterPage169 = new wxPanel(m_splitter165, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); wxBoxSizer* boxSizer175 = new wxBoxSizer(wxVERTICAL); m_splitterPage169->SetSizer(boxSizer175); wxArrayString m_pgMgrClangArr; wxUnusedVar(m_pgMgrClangArr); wxArrayInt m_pgMgrClangIntArr; wxUnusedVar(m_pgMgrClangIntArr); m_pgMgrClang = new wxPropertyGridManager(m_splitterPage169, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxPG_DESCRIPTION|wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED); boxSizer175->Add(m_pgMgrClang, 1, wxALL|wxEXPAND, 2); m_pgPropClangFormat = m_pgMgrClang->Append( new wxPropertyCategory( _("ClangFormat Options") ) ); m_pgPropClangFormat->SetHelpString(wxT("")); m_pgPropClangFormatExePath = m_pgMgrClang->AppendIn( m_pgPropClangFormat, new wxFileProperty( _("clang-format path"), wxPG_LABEL, wxT("")) ); #if !defined(__WXOSX__) && !defined(_WIN64) m_pgMgrClang->SetPropertyAttribute(m_pgPropClangFormatExePath, wxPG_FILE_WILDCARD, wxT("")); #endif // !defined(__WXOSX__) && !defined(_WIN64) m_pgPropClangFormatExePath->SetHelpString(_("Select the path to clang-format executable tool")); m_pgPropColumnLimit = m_pgMgrClang->AppendIn( m_pgPropClangFormat, new wxIntProperty( _("Column Limit"), wxPG_LABEL, 0) ); m_pgPropColumnLimit->SetHelpString(_("The column limit\nA column limit of 0 means that there is no column limit.\nIn this case, clang-format will respect the input's line breaking decisions within statements unless they contradict other rules")); m_pgMgrClangArr.Clear(); m_pgMgrClangIntArr.Clear(); m_pgMgrClangArr.Add(_("Linux")); m_pgMgrClangArr.Add(_("Attach")); m_pgMgrClangArr.Add(_("Stroustrup")); m_pgMgrClangArr.Add(_("Allman")); m_pgMgrClangArr.Add(_("GNU")); m_pgMgrClangIntArr.Add(kLinux); m_pgMgrClangIntArr.Add(kAttach); m_pgMgrClangIntArr.Add(kStroustrup); m_pgMgrClangIntArr.Add(kAllman); m_pgMgrClangIntArr.Add(kGNU); m_pgPropClangBraceBreakStyle = m_pgMgrClang->AppendIn( m_pgPropClangFormat, new wxEnumProperty( _("Brace breaking style"), wxPG_LABEL, m_pgMgrClangArr, m_pgMgrClangIntArr, 0) ); m_pgPropClangBraceBreakStyle->SetHelpString(_("The brace breaking style to use.")); m_pgMgrClangArr.Clear(); m_pgMgrClangIntArr.Clear(); m_pgMgrClangArr.Add(_("LLVM")); m_pgMgrClangArr.Add(_("Google")); m_pgMgrClangArr.Add(_("WebKit")); m_pgMgrClangArr.Add(_("Chromium")); m_pgMgrClangArr.Add(_("Mozilla")); m_pgMgrClangIntArr.Add(kClangFormatLLVM); m_pgMgrClangIntArr.Add(kClangFormatGoogle); m_pgMgrClangIntArr.Add(kClangFormatWebKit); m_pgMgrClangIntArr.Add(kClangFormatChromium); m_pgMgrClangIntArr.Add(kClangFormatMozilla); m_pgPropClangFormatStyle = m_pgMgrClang->AppendIn( m_pgPropClangFormat, new wxEnumProperty( _("Style"), wxPG_LABEL, m_pgMgrClangArr, m_pgMgrClangIntArr, 0) ); m_pgPropClangFormatStyle->SetHelpString(_("Coding style")); m_pgMgrClangArr.Clear(); m_pgMgrClangIntArr.Clear(); m_pgMgrClangArr.Add(_("Align Escaped Newlines Left")); m_pgMgrClangArr.Add(_("Align Trailing Comments")); m_pgMgrClangArr.Add(_("Allow All Parameters Of Declaration On Next Line")); m_pgMgrClangArr.Add(_("Allow Short Functions On A Single Line")); m_pgMgrClangArr.Add(_("Allow Short Blocks On A Single Line")); m_pgMgrClangArr.Add(_("Allow Short Loops On A Single Line")); m_pgMgrClangArr.Add(_("Allow Short If Statements On A SingleLine")); m_pgMgrClangArr.Add(_("Always Break Before Multiline Strings")); m_pgMgrClangArr.Add(_("Always Break Template Declarations")); m_pgMgrClangArr.Add(_("Bin Pack Parameters")); m_pgMgrClangArr.Add(_("Break Before Binary Operators")); m_pgMgrClangArr.Add(_("Break Before Ternary Operators")); m_pgMgrClangArr.Add(_("Break Constructor Initializers Before Comma")); m_pgMgrClangArr.Add(_("Indent Case Labels")); m_pgMgrClangArr.Add(_("Indent Function DeclarationAfterType")); m_pgMgrClangArr.Add(_("Space Before Assignment Operators")); m_pgMgrClangArr.Add(_("Space Before Parentheses")); m_pgMgrClangArr.Add(_("Spaces In Parentheses")); m_pgMgrClangArr.Add(_("Pointer And Reference Aligned to the Right")); m_pgMgrClangIntArr.Add(kAlignEscapedNewlinesLeft); m_pgMgrClangIntArr.Add(kAlignTrailingComments); m_pgMgrClangIntArr.Add(kAllowAllParametersOfDeclarationOnNextLine); m_pgMgrClangIntArr.Add(kAllowShortFunctionsOnASingleLine); m_pgMgrClangIntArr.Add(kAllowShortBlocksOnASingleLine); m_pgMgrClangIntArr.Add(kAllowShortLoopsOnASingleLine); m_pgMgrClangIntArr.Add(kAllowShortIfStatementsOnASingleLine); m_pgMgrClangIntArr.Add(kAlwaysBreakBeforeMultilineStrings); m_pgMgrClangIntArr.Add(kAlwaysBreakTemplateDeclarations); m_pgMgrClangIntArr.Add(kBinPackParameters); m_pgMgrClangIntArr.Add(kBreakBeforeBinaryOperators); m_pgMgrClangIntArr.Add(kBreakBeforeTernaryOperators); m_pgMgrClangIntArr.Add(kBreakConstructorInitializersBeforeComma); m_pgMgrClangIntArr.Add(kIndentCaseLabels); m_pgMgrClangIntArr.Add(kIndentFunctionDeclarationAfterType); m_pgMgrClangIntArr.Add(kSpaceBeforeAssignmentOperators); m_pgMgrClangIntArr.Add(kSpaceBeforeParens); m_pgMgrClangIntArr.Add(kSpacesInParentheses); m_pgMgrClangIntArr.Add(kPointerAlignmentRight); m_pgPropClangFormattingOptions = m_pgMgrClang->AppendIn( m_pgPropClangFormat, new wxFlagsProperty( _("Clang Formatting Options"), wxPG_LABEL, m_pgMgrClangArr, m_pgMgrClangIntArr, 0) ); m_pgPropClangFormattingOptions->SetHelpString(wxT("")); m_splitterPage173 = new wxPanel(m_splitter165, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_splitter165->SplitVertically(m_splitterPage169, m_splitterPage173, 0); wxBoxSizer* boxSizer177 = new wxBoxSizer(wxVERTICAL); m_splitterPage173->SetSizer(boxSizer177); m_textCtrlPreview_Clang = new wxStyledTextCtrl(m_splitterPage173, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); // Configure the fold margin m_textCtrlPreview_Clang->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_textCtrlPreview_Clang->SetMarginMask (4, wxSTC_MASK_FOLDERS); m_textCtrlPreview_Clang->SetMarginSensitive(4, true); m_textCtrlPreview_Clang->SetMarginWidth (4, 0); // Configure the tracker margin m_textCtrlPreview_Clang->SetMarginWidth(1, 0); // Configure the symbol margin m_textCtrlPreview_Clang->SetMarginType (2, wxSTC_MARGIN_SYMBOL); m_textCtrlPreview_Clang->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); m_textCtrlPreview_Clang->SetMarginWidth(2, 0); m_textCtrlPreview_Clang->SetMarginSensitive(2, true); // Configure the line numbers margin m_textCtrlPreview_Clang->SetMarginType(0, wxSTC_MARGIN_NUMBER); m_textCtrlPreview_Clang->SetMarginWidth(0,0); // Configure the line symbol margin m_textCtrlPreview_Clang->SetMarginType(3, wxSTC_MARGIN_FORE); m_textCtrlPreview_Clang->SetMarginMask(3, 0); m_textCtrlPreview_Clang->SetMarginWidth(3,0); // Select the lexer m_textCtrlPreview_Clang->SetLexer(wxSTC_LEX_NULL); // Set default font / styles m_textCtrlPreview_Clang->StyleClearAll(); m_textCtrlPreview_Clang->SetWrapMode(0); m_textCtrlPreview_Clang->SetIndentationGuides(0); m_textCtrlPreview_Clang->SetKeyWords(0, wxT("")); m_textCtrlPreview_Clang->SetKeyWords(1, wxT("")); m_textCtrlPreview_Clang->SetKeyWords(2, wxT("")); m_textCtrlPreview_Clang->SetKeyWords(3, wxT("")); m_textCtrlPreview_Clang->SetKeyWords(4, wxT("")); boxSizer177->Add(m_textCtrlPreview_Clang, 1, wxALL|wxEXPAND, 2); m_panelPHP = new wxPanel(m_treebook, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); int m_panelPHPImgIndex; m_panelPHPImgIndex = m_treebook_il->Add(wxXmlResource::Get()->LoadBitmap(wxT("php"))); m_treebook->AddPage(m_panelPHP, _("PHP"), false, m_panelPHPImgIndex); wxBoxSizer* boxSizer99 = new wxBoxSizer(wxVERTICAL); m_panelPHP->SetSizer(boxSizer99); m_splitter119 = new wxSplitterWindow(m_panelPHP, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxSP_LIVE_UPDATE); m_splitter119->SetSashGravity(0.5); m_splitter119->SetMinimumPaneSize(10); boxSizer99->Add(m_splitter119, 1, wxEXPAND, 5); m_splitterPage123 = new wxPanel(m_splitter119, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); wxBoxSizer* boxSizer129 = new wxBoxSizer(wxVERTICAL); m_splitterPage123->SetSizer(boxSizer129); wxArrayString m_pgMgrPhpArr; wxUnusedVar(m_pgMgrPhpArr); wxArrayInt m_pgMgrPhpIntArr; wxUnusedVar(m_pgMgrPhpIntArr); m_pgMgrPhp = new wxPropertyGridManager(m_splitterPage123, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxPG_DESCRIPTION|wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED); boxSizer129->Add(m_pgMgrPhp, 1, wxALL|wxEXPAND, 2); m_pgPropPhpFormatter = m_pgMgrPhp->Append( new wxPropertyCategory( _("PHP") ) ); m_pgPropPhpFormatter->SetHelpString(_("PHP related settings")); m_pgMgrPhpArr.Clear(); m_pgMgrPhpIntArr.Clear(); m_pgMgrPhpArr.Add(_("Break before class")); m_pgMgrPhpArr.Add(_("Break before function")); m_pgMgrPhpArr.Add(_("Break before 'while'")); m_pgMgrPhpArr.Add(_("Break before 'foreach'")); m_pgMgrPhpArr.Add(_("'else' doesn't break")); m_pgMgrPhpArr.Add(_("Break after 'heredoc' statement")); m_pgMgrPhpArr.Add(_("Break PHP Arrays vertically")); m_pgMgrPhpArr.Add(_("Break after string concatentation operator (\".\")")); m_pgMgrPhpIntArr.Add(kPFF_BreakBeforeClass); m_pgMgrPhpIntArr.Add(kPFF_BreakBeforeFunction); m_pgMgrPhpIntArr.Add(kPFF_BreakBeforeWhile); m_pgMgrPhpIntArr.Add(kPFF_BreakBeforeForeach); m_pgMgrPhpIntArr.Add(kPFF_ElseOnSameLineAsClosingCurlyBrace); m_pgMgrPhpIntArr.Add(kPFF_BreakAfterHeredoc); m_pgMgrPhpIntArr.Add(kPFF_VerticalArrays); m_pgMgrPhpIntArr.Add(kPFF_BreakAfterStringConcatentation); m_pgPropPhpFormatterOptions = m_pgMgrPhp->AppendIn( m_pgPropPhpFormatter, new wxFlagsProperty( _("PHPFormatter Options"), wxPG_LABEL, m_pgMgrPhpArr, m_pgMgrPhpIntArr, 0) ); m_pgPropPhpFormatterOptions->SetHelpString(wxT("")); m_splitterPage127 = new wxPanel(m_splitter119, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), wxTAB_TRAVERSAL); m_splitter119->SplitVertically(m_splitterPage123, m_splitterPage127, 0); wxBoxSizer* boxSizer131 = new wxBoxSizer(wxVERTICAL); m_splitterPage127->SetSizer(boxSizer131); m_stcPhpPreview = new wxStyledTextCtrl(m_splitterPage127, wxID_ANY, wxDefaultPosition, wxSize(-1,-1), 0); // Configure the fold margin m_stcPhpPreview->SetMarginType (4, wxSTC_MARGIN_SYMBOL); m_stcPhpPreview->SetMarginMask (4, wxSTC_MASK_FOLDERS); m_stcPhpPreview->SetMarginSensitive(4, true); m_stcPhpPreview->SetMarginWidth (4, 0); // Configure the tracker margin m_stcPhpPreview->SetMarginWidth(1, 0); // Configure the symbol margin m_stcPhpPreview->SetMarginType (2, wxSTC_MARGIN_SYMBOL); m_stcPhpPreview->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); m_stcPhpPreview->SetMarginWidth(2, 0); m_stcPhpPreview->SetMarginSensitive(2, true); // Configure the line numbers margin m_stcPhpPreview->SetMarginType(0, wxSTC_MARGIN_NUMBER); m_stcPhpPreview->SetMarginWidth(0,0); // Configure the line symbol margin m_stcPhpPreview->SetMarginType(3, wxSTC_MARGIN_FORE); m_stcPhpPreview->SetMarginMask(3, 0); m_stcPhpPreview->SetMarginWidth(3,0); // Select the lexer m_stcPhpPreview->SetLexer(wxSTC_LEX_HTML); // Set default font / styles m_stcPhpPreview->StyleClearAll(); m_stcPhpPreview->SetWrapMode(0); m_stcPhpPreview->SetIndentationGuides(0); m_stcPhpPreview->SetKeyWords(0, wxT("")); m_stcPhpPreview->SetKeyWords(1, wxT("")); m_stcPhpPreview->SetKeyWords(2, wxT("")); m_stcPhpPreview->SetKeyWords(3, wxT("")); m_stcPhpPreview->SetKeyWords(4, wxT("")); boxSizer131->Add(m_stcPhpPreview, 1, wxALL|wxEXPAND, 2); wxBoxSizer* bSizerButtons = new wxBoxSizer(wxHORIZONTAL); bSizerMain->Add(bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5); m_stdBtnSizer30 = new wxStdDialogButtonSizer(); bSizerButtons->Add(m_stdBtnSizer30, 0, wxALL, 5); m_buttonOK = new wxButton(this, wxID_OK, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_buttonOK->SetDefault(); m_stdBtnSizer30->AddButton(m_buttonOK); m_buttonApply = new wxButton(this, wxID_APPLY, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonApply); m_buttonCancel = new wxButton(this, wxID_CANCEL, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonCancel); m_buttonHelp = new wxButton(this, wxID_HELP, wxT(""), wxDefaultPosition, wxSize(-1, -1), 0); m_stdBtnSizer30->AddButton(m_buttonHelp); m_stdBtnSizer30->Realize(); #if wxVERSION_NUMBER >= 2900 wxPersistenceManager::Get().RegisterAndRestore(m_treebook); #endif m_treebook->ExpandNode( 0, true ); m_treebook->ExpandNode( 1, true ); m_treebook->ExpandNode( 2, true ); m_treebook->ExpandNode( 3, true ); m_treebook->ExpandNode( 4, true ); SetName(wxT("CodeFormatterBaseDlg")); SetSizeHints(-1,-1); if ( GetSizer() ) { GetSizer()->Fit(this); } CentreOnParent(wxBOTH); #if wxVERSION_NUMBER >= 2900 wxPersistenceManager::Get().RegisterAndRestore(this); #endif // Connect events m_checkBoxFormatOnSave->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnFormatOnSave), NULL, this); m_choiceCxxEngine->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(CodeFormatterBaseDlg::OnChoicecxxengineChoiceSelected), NULL, this); m_pgMgrAstyle->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrastylePgChanged), NULL, this); m_textCtrlUserFlags->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(CodeFormatterBaseDlg::OnCustomAstyleFlags), NULL, this); m_pgMgrClang->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrclangPgChanged), NULL, this); m_pgMgrPhp->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(CodeFormatterBaseDlg::OnPgmgrphpPgChanged), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnOK), NULL, this); m_buttonApply->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(CodeFormatterBaseDlg::OnApplyUI), NULL, this); m_buttonApply->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnApply), NULL, this); m_buttonHelp->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CodeFormatterBaseDlg::OnHelp), NULL, this); }