|
| 1 | +#include "ConfigDialog.h" |
| 2 | +#include "PyPlugin.h" |
| 3 | + |
| 4 | +#include <vector> |
| 5 | + |
| 6 | +int ID_NEW=wxNewId(); |
| 7 | +int ID_COPY=wxNewId(); |
| 8 | +int ID_EDIT=wxNewId(); |
| 9 | +int ID_DELETE=wxNewId(); |
| 10 | +int ID_UP=wxNewId(); |
| 11 | +int ID_DOWN=wxNewId(); |
| 12 | +int ID_INTERP_LIST=wxNewId(); |
| 13 | + |
| 14 | + |
| 15 | +int ID_NAME=wxNewId(); |
| 16 | +int ID_EXEC=wxNewId(); |
| 17 | +int ID_BROWSE_EXEC=wxNewId(); |
| 18 | +int ID_EXT=wxNewId(); |
| 19 | +int ID_ACTIONS=wxNewId(); |
| 20 | +int ID_OK=wxNewId(); |
| 21 | +int ID_CANCEL=wxNewId(); |
| 22 | +int ID_DEBUGCMDLINE=wxNewId(); |
| 23 | + |
| 24 | + |
| 25 | +BEGIN_EVENT_TABLE(ConfigDialog, wxPanel) |
| 26 | +// EVT_BUTTON(ID_OK, ConfigDialog::OnApply) |
| 27 | +// EVT_BUTTON(ID_CANCEL, ConfigDialog::OnEditCancel) |
| 28 | +END_EVENT_TABLE() |
| 29 | + |
| 30 | +ConfigDialog::ConfigDialog(wxWindow* parent, PyPlugin* plugin) //: cbConfigurationPanel() |
| 31 | +{ |
| 32 | + m_plugin=plugin; |
| 33 | + |
| 34 | + cbConfigurationPanel::Create(parent, -1, wxDefaultPosition, wxDefaultSize, |
| 35 | + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
| 36 | + |
| 37 | + |
| 38 | +///////////////////////////////////////////// Form Builder generated code |
| 39 | + wxBoxSizer* bSizer12; |
| 40 | + bSizer12 = new wxBoxSizer( wxVERTICAL ); |
| 41 | + |
| 42 | + m_staticText1 = new wxStaticText( this, wxID_DEFAULT, wxT("Python Interpreter Settings"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 43 | + bSizer12->Add( m_staticText1, 0, wxALL, 5 ); |
| 44 | + |
| 45 | + wxBoxSizer* bSizer18; |
| 46 | + bSizer18 = new wxBoxSizer( wxVERTICAL ); |
| 47 | + |
| 48 | + wxBoxSizer* bSizer20; |
| 49 | + bSizer20 = new wxBoxSizer( wxHORIZONTAL ); |
| 50 | + |
| 51 | + m_staticText3 = new wxStaticText( this, wxID_DEFAULT, wxT("Interpreter Executable"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 52 | + bSizer20->Add( m_staticText3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); |
| 53 | + |
| 54 | + m_editexec = new wxTextCtrl( this, ID_EXEC, wxT(""), wxDefaultPosition, wxDefaultSize, 0 ); |
| 55 | + bSizer20->Add( m_editexec, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); |
| 56 | + |
| 57 | + m_butbrowse = new wxButton( this, ID_BROWSE_EXEC, wxT("..."), wxDefaultPosition, wxSize( 30,-1 ), 0 ); |
| 58 | + bSizer20->Add( m_butbrowse, 0, wxALIGN_CENTER_VERTICAL, 5 ); |
| 59 | + |
| 60 | + bSizer18->Add( bSizer20, 0, wxEXPAND, 5 ); |
| 61 | + |
| 62 | + wxBoxSizer* bSizer21; |
| 63 | + bSizer21 = new wxBoxSizer( wxHORIZONTAL ); |
| 64 | + |
| 65 | + m_staticText5 = new wxStaticText( this, wxID_DEFAULT, wxT("File Extensions (example: *.py;*.pyw)"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 66 | + bSizer21->Add( m_staticText5, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); |
| 67 | + |
| 68 | + m_editext = new wxTextCtrl( this, ID_EXT, wxT(""), wxDefaultPosition, wxDefaultSize, 0 ); |
| 69 | + bSizer21->Add( m_editext, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); |
| 70 | + |
| 71 | + bSizer18->Add( bSizer21, 0, wxEXPAND, 5 ); |
| 72 | + |
| 73 | + wxBoxSizer* bSizer14; |
| 74 | + bSizer14 = new wxBoxSizer( wxHORIZONTAL ); |
| 75 | + |
| 76 | + m_staticText6 = new wxStaticText( this, wxID_DEFAULT, wxT("Debugger: Command Line"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 77 | + bSizer14->Add( m_staticText6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); |
| 78 | + |
| 79 | + m_debugcmdline = new wxTextCtrl( this, ID_DEBUGCMDLINE, wxT(""), wxDefaultPosition, wxDefaultSize, 0 ); |
| 80 | + bSizer14->Add( m_debugcmdline, 1, wxALL, 5 ); |
| 81 | + |
| 82 | + bSizer18->Add( bSizer14, 0, wxEXPAND, 5 ); |
| 83 | + |
| 84 | + m_staticText4 = new wxStaticText( this, wxID_DEFAULT, wxT("Debugger: Input Commands and Output Regular Expressions (NOT IMPLEMENTED)"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 85 | + bSizer18->Add( m_staticText4, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); |
| 86 | + |
| 87 | + wxBoxSizer* bSizer10; |
| 88 | + bSizer10 = new wxBoxSizer( wxHORIZONTAL ); |
| 89 | + |
| 90 | + m_interplist = new wxListBox( this, ID_INTERP_LIST, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); |
| 91 | + bSizer10->Add( m_interplist, 1, wxEXPAND|wxALL, 5 ); |
| 92 | + |
| 93 | + m_buttedit = new wxButton( this, ID_EDIT, wxT("Edit..."), wxDefaultPosition, wxDefaultSize, 0 ); |
| 94 | + bSizer10->Add( m_buttedit, 0, wxALL, 5 ); |
| 95 | + |
| 96 | + bSizer18->Add( bSizer10, 1, wxEXPAND, 5 ); |
| 97 | + |
| 98 | + bSizer12->Add( bSizer18, 1, wxEXPAND, 5 ); |
| 99 | + |
| 100 | + this->SetSizer( bSizer12 ); |
| 101 | +///////////////////////////////////////////////////////////////////////////////// |
| 102 | + bSizer12->SetSizeHints(this); |
| 103 | + |
| 104 | + ReadDialogItems(); |
| 105 | +} |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | +ConfigDialog::~ConfigDialog() |
| 110 | +{ |
| 111 | + //dtor |
| 112 | +} |
| 113 | + |
| 114 | +void ConfigDialog::Edit(wxCommandEvent& event) |
| 115 | +{ |
| 116 | +} |
| 117 | + |
| 118 | +void ConfigDialog::OnApply() |
| 119 | +{ |
| 120 | + WriteDialogItems(); |
| 121 | +// m_plugin->UpdateConfig(); |
| 122 | +} |
| 123 | + |
| 124 | + |
| 125 | +void ConfigDialog::NameChange(wxCommandEvent& event) |
| 126 | +{ |
| 127 | +} |
| 128 | + |
| 129 | +void ConfigDialog::ChangeSelection(wxCommandEvent& event) |
| 130 | +{ |
| 131 | +} |
| 132 | + |
| 133 | +// Updates the Dialog controls to the stored values for the current interpreter |
| 134 | +void ConfigDialog::ReadDialogItems() |
| 135 | +{ |
| 136 | + ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("PyPlugin")); |
| 137 | + m_debugcmdline->SetValue(cfg->Read(_T("debug_cmd_line"),_T(" -u -m pdb "))); |
| 138 | + m_editexec->SetValue(cfg->Read(_T("python_executable"),_T("python"))); //TODO: make default command platform specific |
| 139 | + m_editext->SetValue(cfg->Read(_T("python_file_extensions"),_T("*.py;*.pyc"))); |
| 140 | +} |
| 141 | + |
| 142 | +// Retrieve configuration values from the dialog widgets and store them appropriately |
| 143 | +void ConfigDialog::WriteDialogItems() |
| 144 | +{ |
| 145 | + ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("PyPlugin")); |
| 146 | + cfg->Write(_T("debug_cmd_line"),m_debugcmdline->GetValue()); |
| 147 | + cfg->Write(_T("python_executable"),m_editexec->GetValue()); |
| 148 | + cfg->Write(_T("python_file_extensions"),m_editext->GetValue()); |
| 149 | +} |
| 150 | + |
| 151 | + |
| 152 | +void ConfigDialog::New(wxCommandEvent &event) |
| 153 | +{ |
| 154 | +} |
| 155 | + |
| 156 | +void ConfigDialog::Copy(wxCommandEvent &event) |
| 157 | +{ |
| 158 | +} |
| 159 | + |
| 160 | + |
| 161 | +void ConfigDialog::Delete(wxCommandEvent &event) |
| 162 | +{ |
| 163 | +} |
| 164 | + |
| 165 | + |
| 166 | +void ConfigDialog::OnEditBrowseExec(wxCommandEvent &event) |
| 167 | +{ |
| 168 | + wxString interpextension=_T("*.*"); |
| 169 | + wxFileDialog *fd=new wxFileDialog(NULL,_T("Choose the interpreter executable"),_T(""),_T(""),interpextension,wxOPEN|wxFILE_MUST_EXIST); |
| 170 | + if(fd->ShowModal()==wxID_OK) |
| 171 | + { |
| 172 | + m_editexec->SetValue(fd->GetPath()); |
| 173 | + } |
| 174 | + delete fd; |
| 175 | +} |
| 176 | + |
0 commit comments