void VSTEffectDialog::OnLoad(wxCommandEvent & evt) { wxString fn; // Ask the user for the real name fn = FileSelector(_("Load VST Program:"), FileNames::DataDir(), wxEmptyString, wxT("xml"), wxT("*.xml"), wxFD_OPEN | wxRESIZE_BORDER, this); // User canceled... if (fn.IsEmpty()) { return; } // Load the program XMLFileReader reader; if (!reader.Parse(this, fn)) { // Inform user of load failure wxMessageBox(reader.GetErrorStr(), _("Error loading program"), wxOK | wxCENTRE, this); } RefreshParameters(); return; }
void VSTEffectDialog::OnProgramText(wxCommandEvent & evt) { wxString name = mProgram->GetValue(); int i = mEffect->callDispatcher(effGetProgram, 0, 0, NULL, 0.0); int ip = mProgram->GetInsertionPoint(); // Limit the length of the string if (name.Length() > 24) { name = name.Left(24); } mEffect->SetString(effSetProgramName, name, i); mProgram->SetString(i, name); // On Windows, must reselect after doing a SetString()...at least that's // what seems to be required. mProgram->SetStringSelection(name); // Which also means we have to reposition the caret. if (ip >= 0) { mProgram->SetInsertionPoint(ip); } RefreshParameters(); }
void VSTEffectDialog::OnSlider(wxCommandEvent & evt) { wxSlider *s = (wxSlider *) evt.GetEventObject(); int i = s->GetId() - ID_VST_SLIDERS; mEffect->callSetParameter(i, s->GetValue() / 1000.0); RefreshParameters(i); }
void EventStoreDialog::RefreshTemplate() { okBt->Enable(); nameTxt->SetLabel(loadedTemplate.GetChild("name").GetValue().GetString()); descriptionEdit->SetValue(loadedTemplate.GetChild("description").GetValue().GetString()); authorTxt->SetLabel(_("By ")+loadedTemplate.GetChild("_ownerId"). GetChild("local").GetChild("username").GetValue().GetString()); RefreshParameters(); Layout(); }
void VSTEffectDialog::OnProgram(wxCommandEvent & evt) { mEffect->callDispatcher(effSetProgram, 0, evt.GetInt(), NULL, 0.0); RefreshParameters(); }
void VSTEffectDialog::BuildPlain() { mNames = new wxStaticText *[mAEffect->numParams]; mSliders = new wxSlider *[mAEffect->numParams]; mDisplays = new wxStaticText *[mAEffect->numParams]; mLabels = new wxStaticText *[mAEffect->numParams]; wxBoxSizer *vSizer = new wxBoxSizer(wxVERTICAL); vSizer->Add(BuildProgramBar(), 0, wxALIGN_CENTER); wxScrolledWindow *sw = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL | wxTAB_TRAVERSAL); // Try to give the window a sensible default/minimum size wxSize sz = GetParent()->GetSize(); sw->SetMinSize(wxSize(wxMax(600, sz.GetWidth() * 2 / 3), sz.GetHeight() / 2)); sw->SetScrollRate(0, 20); vSizer->Add(sw, 1, wxEXPAND | wxALL, 5); // Preview, OK, & Cancel buttons vSizer->Add(CreateStdButtonSizer(this, ePreviewButton|eCancelButton|eOkButton), 0, wxEXPAND); SetSizer(vSizer); wxSizer *paramSizer = new wxStaticBoxSizer(wxVERTICAL, sw, _("Effect Settings")); wxFlexGridSizer *gridSizer = new wxFlexGridSizer(4, 0, 0); gridSizer->AddGrowableCol(1); // Find the longest parameter name. int namew = 0; int w; int h; for (int i = 0; i < mAEffect->numParams; i++) { wxString text = mEffect->GetString(effGetParamName, i); if (text.Right(1) != wxT(':')) { text += wxT(':'); } GetTextExtent(text, &w, &h); if (w > namew) { namew = w; } } GetTextExtent(wxT("HHHHHHHH"), &w, &h); for (int i = 0; i < mAEffect->numParams; i++) { mNames[i] = new wxStaticText(sw, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(namew, -1), wxALIGN_RIGHT | wxST_NO_AUTORESIZE); gridSizer->Add(mNames[i], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5); mSliders[i] = new wxSlider(sw, ID_VST_SLIDERS + i, 0, 0, 1000, wxDefaultPosition, wxSize(200, -1)); gridSizer->Add(mSliders[i], 0, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxALL, 5); mDisplays[i] = new wxStaticText(sw, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(w, -1), wxALIGN_RIGHT | wxST_NO_AUTORESIZE); gridSizer->Add(mDisplays[i], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5); mLabels[i] = new wxStaticText(sw, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(w, -1), wxALIGN_LEFT | wxST_NO_AUTORESIZE); gridSizer->Add(mLabels[i], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT | wxALL, 5); } paramSizer->Add(gridSizer, 1, wxEXPAND | wxALL, 5); sw->SetSizer(paramSizer); Layout(); Fit(); SetSizeHints(GetSize()); RefreshParameters(); mSliders[0]->SetFocus(); }