void ExportFFmpegWMAOptions::PopulateOrExchange(ShuttleGui & S) { S.StartHorizontalLay(wxEXPAND, 0); { S.StartStatic(_("WMA Export Setup"), 0); { S.StartTwoColumn(); { S.TieChoice(_("Bit Rate:"), wxT("/FileFormats/WMABitRate"), 180189, mBitRateNames, mBitRateLabels); } S.EndTwoColumn(); } S.EndStatic(); } S.EndHorizontalLay(); S.AddStandardButtons(); Layout(); Fit(); SetMinSize(GetSize()); Center(); return; }
void TimeDialog::PopulateOrExchange(ShuttleGui &S) { S.SetBorder(5); S.StartVerticalLay(true); { S.StartStatic(mPrompt, true); { mTimeCtrl = new TimeTextCtrl(this, wxID_ANY, wxT(""), mTime, mRate, wxDefaultPosition, wxDefaultSize, true); mTimeCtrl->SetName(mPrompt); mTimeCtrl->SetFormatString(mTimeCtrl->GetBuiltinFormat(mFormat)); S.AddWindow(mTimeCtrl); mTimeCtrl->EnableMenu(); } S.EndStatic(); } S.EndVerticalLay(); S.AddStandardButtons(); TransferDataToWindow(); Layout(); Fit(); SetMinSize(GetSize()); Center(); }
void MacroCommandDialog::PopulateOrExchange(ShuttleGui &S) { S.StartVerticalLay(true); { S.StartMultiColumn(4, wxEXPAND); { S.SetStretchyCol(1); mCommand = S.AddTextBox(_("&Command"), wxT(""), 20); mCommand->SetEditable(false); mEditParams = S.Id(EditParamsButtonID).AddButton(_("&Edit Parameters")); mEditParams->Enable(false); // disable button as box is empty mUsePreset = S.Id(UsePresetButtonID).AddButton(_("&Use Preset")); mUsePreset->Enable(false); // disable button as box is empty } S.EndMultiColumn(); S.StartMultiColumn(2, wxEXPAND); { S.SetStretchyCol(1); mParameters = S.AddTextBox(_("&Parameters"), wxT(""), 0); mParameters->SetEditable(false); wxString prompt{_("&Details")}; S.Prop(0).AddPrompt(prompt); mDetails = S.AddTextWindow( wxT("")); mDetails->SetEditable(false); mDetails->SetName(wxStripMenuCodes(prompt)); } S.EndMultiColumn(); S.Prop(10).StartStatic(_("Choose command"), true); { S.SetStyle(wxSUNKEN_BORDER | wxLC_LIST | wxLC_SINGLE_SEL); mChoices = S.Id(CommandsListID).AddListControl(); } S.EndStatic(); } S.EndVerticalLay(); S.AddStandardButtons( eOkButton | eCancelButton | eHelpButton); PopulateCommandList(); if (mChoices->GetItemCount() > 0) { // set first item to be selected (and the focus when the // list first becomes the focus) mChoices->SetItemState(0, wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED, wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED); } SetMinSize(wxSize(780, 560)); Fit(); Center(); }
void SoundActivatedRecord::PopulateOrExchange(ShuttleGui & S) { S.SetBorder(5); int dBRange; S.StartVerticalLay(); { S.StartMultiColumn(2, wxEXPAND); S.SetStretchyCol(1); dBRange = gPrefs->Read(ENV_DB_KEY, ENV_DB_RANGE); S.TieSlider(_("Activation level (dB):"), wxT("/AudioIO/SilenceLevel"), -50, 0, -dBRange); S.EndMultiColumn(); } S.EndVerticalLay(); S.AddStandardButtons(); }
void ExportFFmpegAACOptions::PopulateOrExchange(ShuttleGui & S) { S.StartStatic(_("AAC Export Setup"), 1); { S.TieSlider(wxT("Quality:"),wxT("/FileFormats/AACQuality"),100,500,10); } S.EndStatic(); S.AddStandardButtons(); Layout(); Fit(); SetMinSize(GetSize()); Center(); return; }
void PopulateOrExchange(ShuttleGui & S) { wxString text; S.SetBorder(10); S.StartVerticalLay(true); { text.Printf(_("Audacity needs the file '%s' to import and export audio via FFmpeg."), mName.c_str()); S.AddTitle(text); S.SetBorder(3); S.StartHorizontalLay(wxALIGN_LEFT, true); { text.Printf(_("Location of '%s':"), mName.c_str()); S.AddTitle(text); } S.EndHorizontalLay(); S.StartMultiColumn(2, wxEXPAND); S.SetStretchyCol(0); { if (mLibPath.GetFullPath().IsEmpty()) { text.Printf(_("To find '%s', click here -->"), mName.c_str()); mPathText = S.AddTextBox(wxT(""), text, 0); } else { mPathText = S.AddTextBox(wxT(""), mLibPath.GetFullPath(), 0); } S.Id(ID_FFMPEG_BROWSE).AddButton(_("Browse..."), wxALIGN_RIGHT); S.AddVariableText(_("To get a free copy of FFmpeg, click here -->"), true); S.Id(ID_FFMPEG_DLOAD).AddButton(_("Download"), wxALIGN_RIGHT); } S.EndMultiColumn(); S.AddStandardButtons(); } S.EndVerticalLay(); Layout(); Fit(); SetMinSize(GetSize()); Center(); return; }
void BatchCommandDialog::PopulateOrExchange(ShuttleGui &S) { S.StartVerticalLay(true); { S.StartMultiColumn(3, wxEXPAND); { S.SetStretchyCol(1); mCommand = S.AddTextBox(_("&Command"), wxT(""), 20); mCommand->SetEditable(false); mEditParams = S.Id(EditParamsButtonID).AddButton(_("&Edit Parameters")); mEditParams->Enable( false ); // disable button as box is empty } S.EndMultiColumn(); S.StartMultiColumn(2, wxEXPAND); { S.SetStretchyCol(1); mParameters = S.AddTextBox(_("&Parameters"), wxT(""), 0); mParameters->SetEditable(false); } S.EndMultiColumn(); S.StartStatic(_("C&hoose command"), true); { S.SetStyle(wxSUNKEN_BORDER | wxLC_LIST | wxLC_SINGLE_SEL); mChoices = S.Id(CommandsListID).AddListControl(); } S.EndStatic(); } S.EndVerticalLay(); S.AddStandardButtons(); for(int i=0;i<99;i++) { mChoices->InsertItem( i, wxString::Format(wxT("Item%02i"),i)); } PopulateCommandList(); SetSize(350, 400); SetSizeHints(GetSize()); Center(); }
void TagsEditor::PopulateOrExchange(ShuttleGui & S) { bool bShow; gPrefs->Read(wxT("/AudioFiles/ShowId3Dialog"), &bShow, true ); S.StartVerticalLay(); { S.StartHorizontalLay(wxALIGN_LEFT, 0); { S.AddUnits(_("Use arrow keys (or ENTER key after editing) to navigate fields.")); } S.EndHorizontalLay(); if (mGrid == NULL) { mGrid = safenew Grid(S.GetParent(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER); mGrid->RegisterDataType(wxT("Combo"), (mStringRenderer = safenew wxGridCellStringRenderer), (mComboEditor = safenew ComboEditor(wxArrayString(), true))); mGrid->SetColLabelSize(mGrid->GetDefaultRowSize()); auto cs = names(); // Build the initial (empty) grid mGrid->CreateGrid(0, 2); mGrid->SetRowLabelSize(0); mGrid->SetDefaultCellAlignment(wxALIGN_LEFT, wxALIGN_CENTER); mGrid->SetColLabelValue(0, _("Tag")); mGrid->SetColLabelValue(1, _("Value")); // Resize the name column and set default row height. wxComboBox tc(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize, cs); mGrid->SetColSize(0, tc.GetSize().x); mGrid->SetColMinimalWidth(0, tc.GetSize().x); } S.Prop(1); S.AddWindow(mGrid, wxEXPAND | wxALL); S.StartMultiColumn(4, wxALIGN_CENTER); { S.Id(AddID).AddButton(_("&Add")); S.Id(RemoveID).AddButton(_("&Remove")); S.AddTitle( {} ); S.Id(ClearID).AddButton(_("Cl&ear")); } S.EndMultiColumn(); S.StartHorizontalLay(wxALIGN_CENTRE, 0); { S.StartStatic(_("Genres")); { S.StartMultiColumn(4, wxALIGN_CENTER); { S.Id(EditID).AddButton(_("E&dit...")); S.Id(ResetID).AddButton(_("Rese&t...")); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Template")); { S.StartMultiColumn(4, wxALIGN_CENTER); { S.Id(LoadID).AddButton(_("&Load...")); S.Id(SaveID).AddButton(_("&Save...")); S.AddTitle( {} ); S.Id(SaveDefaultsID).AddButton(_("Set De&fault")); } S.EndMultiColumn(); } S.EndStatic(); } S.EndHorizontalLay(); S.StartHorizontalLay(wxALIGN_LEFT, 0); { S.Id( DontShowID ).AddCheckBox( _("Don't show this when exporting audio"), !bShow ); } S.EndHorizontalLay(); } S.EndVerticalLay(); S.AddStandardButtons(eOkButton | eCancelButton | eHelpButton); }
void TagsEditor::PopulateOrExchange(ShuttleGui & S) { S.StartVerticalLay(); { S.StartHorizontalLay(wxALIGN_LEFT, false); { S.AddUnits(_("Use arrow keys (or RETURN key after editing) to navigate fields.")); } S.EndHorizontalLay(); if (mGrid == NULL) { mGrid = new Grid(S.GetParent(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER); mStringRenderer = new wxGridCellStringRenderer; mComboEditor = new ComboEditor(wxArrayString(), true); mGrid->RegisterDataType(wxT("Combo"), mStringRenderer, mComboEditor); mGrid->SetColLabelSize(mGrid->GetDefaultRowSize()); wxArrayString cs(WXSIZEOF(names), names); // Build the initial (empty) grid mGrid->CreateGrid(0, 2); mGrid->SetRowLabelSize(0); mGrid->SetDefaultCellAlignment(wxALIGN_LEFT, wxALIGN_CENTER); mGrid->SetColLabelValue(0, _("Tag")); mGrid->SetColLabelValue(1, _("Value")); // Resize the name column and set default row height. wxComboBox tc(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize, cs); mGrid->SetColSize(0, tc.GetSize().x); mGrid->SetColMinimalWidth(0, tc.GetSize().x); } S.Prop(true); S.AddWindow(mGrid, wxEXPAND | wxALL); S.StartMultiColumn(4, wxALIGN_CENTER); { S.Id(AddID).AddButton(_("&Add")); S.Id(RemoveID).AddButton(_("&Remove")); S.AddTitle(wxT(" ")); S.Id(ClearID).AddButton(_("Cl&ear")); } S.EndMultiColumn(); S.StartHorizontalLay(wxALIGN_CENTRE, false); { S.StartStatic(_("Genres")); { S.StartMultiColumn(4, wxALIGN_CENTER); { S.Id(EditID).AddButton(_("E&dit...")); S.Id(ResetID).AddButton(_("Rese&t...")); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Template")); { S.StartMultiColumn(4, wxALIGN_CENTER); { S.Id(LoadID).AddButton(_("&Load...")); S.Id(SaveID).AddButton(_("&Save...")); S.AddTitle(wxT(" ")); S.Id(SaveDefaultsID).AddButton(_("Set De&fault")); } S.EndMultiColumn(); } S.EndStatic(); } S.EndHorizontalLay(); } S.EndVerticalLay(); S.AddStandardButtons(eOkButton | eCancelButton); }
void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S) { S.SetBorder(5); S.StartVerticalLay(true); { /* i18n-hint: This string is used to configure the controls for times when the recording is * started and stopped. As such it is important that only the alphabetic parts of the string * are translated, with the numbers left exactly as they are. * The 'h' indicates the first number displayed is hours, the 'm' indicates the second number * displayed is minutes, and the 's' indicates that the third number displayed is seconds. */ wxString strFormat = _("099 h 060 m 060 s"); S.StartStatic(_("Start Date and Time"), true); { m_pDatePickerCtrl_Start = new wxDatePickerCtrl(this, // wxWindow *parent, ID_DATEPICKER_START, // wxWindowID id, m_DateTime_Start); // const wxDateTime& dt = wxDefaultDateTime, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl") m_pDatePickerCtrl_Start->SetName(_("Start Date")); m_pDatePickerCtrl_Start->SetRange(wxDateTime::Today(), wxInvalidDateTime); // No backdating. S.AddWindow(m_pDatePickerCtrl_Start); m_pTimeTextCtrl_Start = new TimeTextCtrl(this, ID_TIMETEXT_START); m_pTimeTextCtrl_Start->SetName(_("Start Time")); m_pTimeTextCtrl_Start->SetFormatString(strFormat); m_pTimeTextCtrl_Start->SetTimeValue(wxDateTime_to_AudacityTime(m_DateTime_Start)); S.AddWindow(m_pTimeTextCtrl_Start); m_pTimeTextCtrl_Start->EnableMenu(false); } S.EndStatic(); S.StartStatic(_("End Date and Time"), true); { m_pDatePickerCtrl_End = new wxDatePickerCtrl(this, // wxWindow *parent, ID_DATEPICKER_END, // wxWindowID id, m_DateTime_End); // const wxDateTime& dt = wxDefaultDateTime, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl") m_pDatePickerCtrl_End->SetRange(m_DateTime_Start, wxInvalidDateTime); // No backdating. m_pDatePickerCtrl_End->SetName(_("End Date")); S.AddWindow(m_pDatePickerCtrl_End); m_pTimeTextCtrl_End = new TimeTextCtrl(this, ID_TIMETEXT_END); m_pTimeTextCtrl_End->SetName(_("End Time")); m_pTimeTextCtrl_End->SetFormatString(strFormat); m_pTimeTextCtrl_End->SetTimeValue(wxDateTime_to_AudacityTime(m_DateTime_End)); S.AddWindow(m_pTimeTextCtrl_End); m_pTimeTextCtrl_End->EnableMenu(false); } S.EndStatic(); S.StartStatic(_("Duration"), true); { /* i18n-hint: This string is used to configure the controls which shows the recording * duration. As such it is important that only the alphabetic parts of the string * are translated, with the numbers left exactly as they are. * The string 'days' indicates that the first number in the control will be the number of days, * then the 'h' indicates the second number displayed is hours, the 'm' indicates the third * number displayed is minutes, and the 's' indicates that the fourth number displayed is * seconds. */ wxString strFormat1 = _("099 days 024 h 060 m 060 s"); m_pTimeTextCtrl_Duration = new TimeTextCtrl(this, ID_TIMETEXT_DURATION); m_pTimeTextCtrl_Duration->SetName(_("Duration")); m_pTimeTextCtrl_Duration->SetFormatString(strFormat1); m_pTimeTextCtrl_Duration->SetTimeValue(m_TimeSpan_Duration.GetSeconds().ToDouble()); S.AddWindow(m_pTimeTextCtrl_Duration); m_pTimeTextCtrl_Duration->EnableMenu(false); } S.EndStatic(); } S.EndVerticalLay(); S.AddStandardButtons(); Layout(); Fit(); SetMinSize(GetSize()); Center(); }
/// Defines the dialog and does data exchange with it. void EditChainsDialog::PopulateOrExchange(ShuttleGui & S) { S.StartHorizontalLay(wxEXPAND, 1); { S.StartStatic(_("&Chains")); { // JKC: Experimenting with an alternative way to get multiline // translated strings to work correctly without very long lines. // My appologies Alexandre if this way didn't work either. // // With this method: // 1) it compiles fine under windows unicode and normal mode. // 2) xgettext source code has handling for the trailing '\' // // It remains to see if linux and mac can cope and if xgettext // actually does do fine with strings presented like this. // If it doesn't work out, revert to all-on-one-line. S.SetStyle(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_SINGLE_SEL | wxLC_EDIT_LABELS); mChains = S.Id(ChainsListID).AddListControlReportMode(); mChains->InsertColumn(0, wxT("Chain"), wxLIST_FORMAT_LEFT); S.StartHorizontalLay(wxCENTER, false); { S.Id(AddButtonID).AddButton(_("&Add")); mRemove = S.Id(RemoveButtonID).AddButton(_("&Remove")); mRename = S.Id(RenameButtonID).AddButton(_("Re&name")); } S.EndHorizontalLay(); } S.EndStatic(); S.StartStatic(_("C&hain (Double-Click or press SPACE to edit)"), true); { S.SetStyle(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_VRULES | wxLC_SINGLE_SEL); mList = S.Id(CommandsListID).AddListControlReportMode(); //An empty first column is a workaround - under Win98 the first column //can't be right aligned. mList->InsertColumn(BlankColumn, wxT(""), wxLIST_FORMAT_LEFT); /* i18n-hint: This is the number of the command in the list */ mList->InsertColumn(ItemNumberColumn, _("Num"), wxLIST_FORMAT_RIGHT); mList->InsertColumn(ActionColumn, _("Command "), wxLIST_FORMAT_RIGHT); mList->InsertColumn(ParamsColumn, _("Parameters"), wxLIST_FORMAT_LEFT); S.StartHorizontalLay(wxCENTER, false); { S.Id(InsertButtonID).AddButton(_("&Insert"), wxALIGN_LEFT); S.Id(DeleteButtonID).AddButton(_("De&lete"), wxALIGN_LEFT); S.Id(UpButtonID).AddButton(_("Move &Up"), wxALIGN_LEFT); S.Id(DownButtonID).AddButton(_("Move &Down"), wxALIGN_LEFT); mDefaults = S.Id(DefaultsButtonID).AddButton(_("De&faults")); } S.EndHorizontalLay(); } S.EndStatic(); } S.EndHorizontalLay(); S.AddStandardButtons(); return; }
void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S) { S.SetBorder(5); S.StartVerticalLay(true); { wxString strFormat = wxT("099 h 060 m 060 s"); S.StartStatic(_("Start Date and Time"), true); { m_pDatePickerCtrl_Start = new wxDatePickerCtrl(this, // wxWindow *parent, ID_DATEPICKER_START, // wxWindowID id, m_DateTime_Start); // const wxDateTime& dt = wxDefaultDateTime, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl") m_pDatePickerCtrl_Start->SetName(_("Start Date")); m_pDatePickerCtrl_Start->SetRange(wxDateTime::Today(), wxInvalidDateTime); // No backdating. S.AddWindow(m_pDatePickerCtrl_Start); m_pTimeTextCtrl_Start = new TimeTextCtrl(this, ID_TIMETEXT_START, strFormat); m_pTimeTextCtrl_Start->SetName(_("Start Time")); m_pTimeTextCtrl_Start->SetTimeValue(wxDateTime_to_AudacityTime(m_DateTime_Start)); S.AddWindow(m_pTimeTextCtrl_Start); m_pTimeTextCtrl_Start->EnableMenu(false); } S.EndStatic(); S.StartStatic(_("End Date and Time"), true); { m_pDatePickerCtrl_End = new wxDatePickerCtrl(this, // wxWindow *parent, ID_DATEPICKER_END, // wxWindowID id, m_DateTime_End); // const wxDateTime& dt = wxDefaultDateTime, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl") m_pDatePickerCtrl_End->SetRange(m_DateTime_Start, wxInvalidDateTime); // No backdating. m_pDatePickerCtrl_End->SetName(_("End Date")); S.AddWindow(m_pDatePickerCtrl_End); m_pTimeTextCtrl_End = new TimeTextCtrl(this, ID_TIMETEXT_END, strFormat); m_pTimeTextCtrl_End->SetName(_("End Time")); m_pTimeTextCtrl_End->SetTimeValue(wxDateTime_to_AudacityTime(m_DateTime_End)); S.AddWindow(m_pTimeTextCtrl_End); m_pTimeTextCtrl_End->EnableMenu(false); } S.EndStatic(); S.StartStatic(_("Duration"), true); { wxString strFormat1 = wxT("099 days 024 h 060 m 060 s"); m_pTimeTextCtrl_Duration = new TimeTextCtrl(this, ID_TIMETEXT_DURATION, strFormat1); m_pTimeTextCtrl_Duration->SetName(_("Duration")); m_pTimeTextCtrl_Duration->SetTimeValue( Internat::CompatibleToDouble(m_TimeSpan_Duration.GetSeconds().ToString())); //v milliseconds? S.AddWindow(m_pTimeTextCtrl_Duration); m_pTimeTextCtrl_Duration->EnableMenu(false); } S.EndStatic(); } S.EndVerticalLay(); S.AddStandardButtons(); Layout(); Fit(); SetMinSize(GetSize()); Center(); }
void ExportMultiple::PopulateOrExchange(ShuttleGui& S) { wxString name = mProject->GetName(); S.SetBorder(5); S.StartMultiColumn(4, true); { wxArrayString formats; for (size_t i = 0; i < mPlugins.GetCount(); i++) { formats.Add(mPlugins[i]->GetDescription()); } S.AddPrompt(_("Export format:")); mFormat = S.Id(FormatID) .TieChoice(wxT(""), wxT("/Export/MultipleFormat"), gPrefs->Read(wxT("/Export/Format"), wxT("WAV")), formats, formats); S.Id(OptionsID).AddButton(_("Options...")); S.AddVariableText(wxT(""), false); S.AddPrompt(_("Export location:")); mDir = S.Id(DirID) .TieTextBox(wxT(""), wxT("/Export/MultiplePath"), gPrefs->Read(wxT("/Export/Path"), ::wxGetCwd()), 64); S.Id(ChooseID).AddButton(_("Choose...")); S.Id(CreateID).AddButton(_("Create")); } S.EndMultiColumn(); S.StartHorizontalLay(wxEXPAND, true); { S.SetBorder(5); S.StartStatic(_("Split files based on:"), true); { S.StartMultiColumn(2, false); S.SetStretchyCol(1); { // Row 1 S.SetBorder(1); mLabel = S.Id(LabelID) .AddRadioButton(wxT("")); S.SetBorder(3); mLabelLabel = S.AddVariableText(_("Labels"), false); // Row 2 S.AddVariableText(wxT(""), false); mFirst = S.Id(FirstID) .AddCheckBox(_("Include audio before first label"), wxT("false")); // Row 3 S.AddVariableText(wxT(""), false); S.StartHorizontalLay(wxEXPAND, false); { mFirstFileLabel = S.AddVariableText(_("First file name:"), true); mFirstFileName = S.Id(FirstFileNameID) .TieTextBox(wxT(""), name, 30); } S.EndHorizontalLay(); // Row 4 S.SetBorder(1); mTrack = S.Id(TrackID) .AddRadioButtonToGroup(wxT("")); S.SetBorder(3); mTrackLabel = S.AddVariableText(_("Tracks"), false); } S.EndMultiColumn(); } S.EndStatic(); S.SetBorder(5); S.StartStatic(_("Name files:"), false); { S.StartMultiColumn(2, false); S.SetStretchyCol(1); { // Row 1 S.SetBorder(1); mByName = S.Id(ByNameID) .AddRadioButton(wxT("")); S.SetBorder(3); mByNameLabel = S.AddVariableText(_("Using Label/Track Name"), false); // Row 2 S.SetBorder(1); mByNumber = S.Id(ByNumberID) .AddRadioButtonToGroup(wxT("")); S.SetBorder(3); mByNumberLabel = S.AddVariableText(_("Numbering consecutively"), false); // Row 3 S.AddVariableText(wxT(""), false); S.StartHorizontalLay(wxEXPAND, false); { mPrefixLabel = S.AddVariableText(_("File name prefix:"), true); mPrefix = S.Id(PrefixID) .TieTextBox(wxT(""), name, 30); } S.EndHorizontalLay(); } S.EndMultiColumn(); } S.EndStatic(); } S.EndHorizontalLay(); S.SetBorder(5); S.StartHorizontalLay(wxEXPAND, false); { mOverwrite = S.Id(OverwriteID) .AddCheckBox(_("Overwrite existing files"), wxT("true")); } S.EndHorizontalLay(); S.AddStandardButtons(); mExport = (wxButton *)wxWindow::FindWindowById(wxID_OK, this); mExport->SetLabel(_("E&xport")); }
void ExportFFmpegOptions::PopulateOrExchange(ShuttleGui & S) { S.StartVerticalLay(1); S.StartMultiColumn(7, wxEXPAND); { S.SetStretchyCol(1); mPresetCombo = S.Id(FEPresetID).AddCombo(_("Preset:"), gPrefs->Read(wxT("/FileFormats/FFmpegPreset"),wxEmptyString), mPresetNames); mLoadPreset = S.Id(FELoadPresetID).AddButton(_("Load Preset")); mSavePreset = S.Id(FESavePresetID).AddButton(_("Save Preset")); mDeletePreset = S.Id(FEDeletePresetID).AddButton(_("Delete Preset")); mImportPresets = S.Id(FEImportPresetsID).AddButton(_("Import Presets")); mExportPresets = S.Id(FEExportPresetsID).AddButton(_("Export Presets")); } S.EndMultiColumn(); S.StartTwoColumn(); { S.Id(FEFormatLabelID).AddVariableText(_("Format:")); mFormatName = S.Id(FEFormatNameID).AddVariableText(wxT("")); S.Id(FECodecLabelID).AddVariableText(_("Codec:")); mCodecName = S.Id(FECodecNameID).AddVariableText(wxT("")); } S.EndTwoColumn(); S.AddVariableText(_("Not all formats and codecs are compatible. Some parameters (such as bitrate and samplerate) combinations are not compatible with some codecs too."),false); S.StartMultiColumn(3,wxEXPAND); { S.AddVariableText(_("Format selector:"),true); S.AddVariableText(_("Codec selector:"),true); S.AddVariableText(wxEmptyString); S.Id(FEAllFormatsID).AddButton(_("Show All Formats")); S.Id(FEAllCodecsID).AddButton(_("Show All Codecs")); S.AddVariableText(wxEmptyString); mFormatList = S.Id(FEFormatID).AddListBox(&mFormatNames); mCodecList = S.Id(FECodecID).AddListBox(&mCodecNames); mFormatList->DeselectAll(); mCodecList->DeselectAll(); S.StartStatic(wxT("Options"),0); { S.StartMultiColumn(4,wxALIGN_LEFT); { mLanguageText = S.Id(FELanguageID).TieTextBox(_("Language:"), wxT("/FileFormats/FFmpegLanguage"), wxEmptyString, 0); mLanguageText->SetToolTip(_("ISO 639 3-letter language code\nOptional\nempty - automatic")); mTag = S.Id(FETagID).TieTextBox(_("Tag:"), wxT("/FileFormats/FFmpegTag"), wxEmptyString, 0); mTag->SetToolTip(_("Codec tag (FOURCC)\nOptional\nempty - automatic")); mBitrateSpin = S.Id(FEBitrateID).TieSpinCtrl(_("Bit Rate:"), wxT("/FileFormats/FFmpegBitRate"), 0,1000000,0); mBitrateSpin->SetToolTip(_("Bit Rate (bits/second) - influences the resulting file size and quality\nSome codecs may only accept specific values (128k, 192k, 256k etc)\n0 - automatic\nRecommended - 192000")); mQualitySpin = S.Id(FEQualityID).TieSpinCtrl(_("Quality:"), wxT("/FileFormats/FFmpegQuality"), 0,500,-1); mQualitySpin->SetToolTip(_("Overral quality, used differently by different codecs\nRequired for vorbis\n0 - automatic\n-1 - off (use bitrate instead)")); mSampleRateSpin = S.Id(FESampleRateID).TieSpinCtrl(_("Sample Rate:"), wxT("/FileFormats/FFmpegSampleRate"), 0,200000,0); mSampleRateSpin->SetToolTip(_("Sample rate (Hz)\n0 - don't change sample rate")); mCutoffSpin = S.Id(FECutoffID).TieSpinCtrl(_("Cutoff Bandwidth:"), wxT("/FileFormats/FFmpegCutOff"), 0,10000000,0); mCutoffSpin->SetToolTip(_("Audio cutoff bandwidth (Hz)\nOptional\n0 - automatic\n")); S.AddVariableText(wxT("Use Bit Reservoir")); S.Id(FEBitReservoirID).TieCheckBox(wxEmptyString, wxT("/FileFormats/FFmpegBitReservoir"), true); mProfileChoice = S.Id(FEProfileID).TieChoice(_("Profile:"), wxT("/FileFormats/FFmpegAACProfile"), mProfileLabels[0], mProfileNames, mProfileLabels); mProfileChoice->SetToolTip(_("AAC Profile\nLow Complexity -default\nMost players won't play anything other than LC")); } S.EndMultiColumn(); S.StartStatic(wxT("FLAC options"),0); { S.StartMultiColumn(4); { mCompressionLevelSpin = S.Id(FECompLevelID).TieSpinCtrl(_("Compression Level:"), wxT("/FileFormats/FFmpegCompLevel"), 0,10,-1); mCompressionLevelSpin->SetToolTip(_("Compression level\nRequired for FLAC\n-1 - automatic\nmin - 0 (fast encoding, large output file)\nmax - 10 (slow encoding, small output file)")); mFrameSizeSpin = S.Id(FEFrameSizeID).TieSpinCtrl(_("Frame Size:"), wxT("/FileFormats/FFmpegFrameSize"), 0,65535,0); mFrameSizeSpin->SetToolTip(_("Frame size\nOptional\n0 - default\nmin - 16\nmax - 65535")); mLPCCoeffsPrecisionSpin = S.Id(FELPCCoeffsID).TieSpinCtrl(_("LPC coefficients precision"), wxT("/FileFormats/FFmpegLPCCoefPrec"), 0,15,0); mLPCCoeffsPrecisionSpin->SetToolTip(_("LPC coefficients precision\nOptional\n0 - default\nmin - 1\nmax - 15")); mMinPredictionOrderSpin = S.Id(FEMinPredID).TieSpinCtrl(_("Minimal prediction order"), wxT("/FileFormats/FFmpegMinPredOrder"), -1,32,-1); mMinPredictionOrderSpin->SetToolTip(_("Minimal prediction order\nOptional\n-1 - default\nmin - 0\nmax - 32 (with LPC) or 4 (without LPC)")); mMaxPredictionOrderSpin = S.Id(FEMaxPredID).TieSpinCtrl(_("Maximal prediction order"), wxT("/FileFormats/FFmpegMaxPredOrder"), -1,32,-1); mMaxPredictionOrderSpin->SetToolTip(_("Maximal prediction order\nOptional\n-1 - default\nmin - 0\nmax - 32 (with LPC) or 4 (without LPC)")); mPredictionOrderMethodChoice = S.Id(FEPredOrderID).TieChoice(_("Prediction Order Method:"), wxT("/FileFormats/FFmpegPredOrderMethod"), mPredictionOrderMethodLabels[4], mPredictionOrderMethodNames, mPredictionOrderMethodLabels); mProfileChoice->SetToolTip(_("Prediction Order Method\nEstimate - fastest, lower compression\nLog search - slowest, best compression\nFull search - default")); mMinPartitionOrderSpin = S.Id(FEMinPartOrderID).TieSpinCtrl(_("Minimal partition order"), wxT("/FileFormats/FFmpegMinPartOrder"), -1,8,-1); mMinPartitionOrderSpin->SetToolTip(_("Minimal partition order\nOptional\n-1 - default\nmin - 0\nmax - 8")); mMaxPartitionOrderSpin = S.Id(FEMaxPartOrderID).TieSpinCtrl(_("Maximal partition order"), wxT("/FileFormats/FFmpegMaxPredOrder"), -1,8,-1); mMaxPartitionOrderSpin->SetToolTip(_("Maximal partition order\nOptional\n-1 - default\nmin - 0\nmax - 8")); S.AddVariableText(wxT("Use LPC")); S.Id(FEUseLPCID).TieCheckBox(wxEmptyString, wxT("/FileFormats/FFmpegUseLPC"), true); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(wxT("MPEG container options"),0); { S.StartMultiColumn(4); { mMuxRate = S.Id(FEMuxRateID).TieSpinCtrl(_("Mux Rate:"), wxT("/FileFormats/FFmpegMuxRate"), 0,10000000,0); mMuxRate->SetToolTip(_("Maximum bit rate of the multiplexed stream\nOptional\n0 - default")); mPacketSize = S.Id(FEPacketSizeID).TieSpinCtrl(_("Packet Size:"), wxT("/FileFormats/FFmpegPacketSize"), 0,10000000,0); mPacketSize->SetToolTip(_("Packet size\nOptional\n0 - default")); } S.EndMultiColumn(); } S.EndStatic(); } S.EndStatic(); } S.EndTwoColumn(); S.EndVerticalLay(); S.AddStandardButtons(); Layout(); Fit(); SetMinSize(GetSize()); Center(); return; }
void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S) { bool bAutoSave = gPrefs->ReadBool("/TimerRecord/AutoSave", false); bool bAutoExport = gPrefs->ReadBool("/TimerRecord/AutoExport", false); int iPostTimerRecordAction = gPrefs->ReadLong("/TimerRecord/PostAction", 0); S.SetBorder(5); S.StartMultiColumn(2, wxCENTER); { S.StartVerticalLay(true); { /* i18n-hint: This string is used to configure the controls for times when the recording is * started and stopped. As such it is important that only the alphabetic parts of the string * are translated, with the numbers left exactly as they are. * The 'h' indicates the first number displayed is hours, the 'm' indicates the second number * displayed is minutes, and the 's' indicates that the third number displayed is seconds. */ wxString strFormat = _("099 h 060 m 060 s"); using Options = NumericTextCtrl::Options; S.StartStatic(_("Start Date and Time"), true); { m_pDatePickerCtrl_Start = safenew wxDatePickerCtrl(this, // wxWindow *parent, ID_DATEPICKER_START, // wxWindowID id, m_DateTime_Start); // const wxDateTime& dt = wxDefaultDateTime, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl") m_pDatePickerCtrl_Start->SetName(_("Start Date")); m_pDatePickerCtrl_Start->SetRange(wxDateTime::Today(), wxInvalidDateTime); // No backdating. #if wxUSE_ACCESSIBILITY m_pDatePickerCtrl_Start->SetAccessible( safenew DatePickerCtrlAx(m_pDatePickerCtrl_Start)); #endif S.AddWindow(m_pDatePickerCtrl_Start); m_pTimeTextCtrl_Start = safenew NumericTextCtrl( this, ID_TIMETEXT_START, NumericConverter::TIME, wxEmptyString, 0, 44100, Options{} .MenuEnabled(false) .Format(strFormat) .Value(true, wxDateTime_to_AudacityTime(m_DateTime_Start))); m_pTimeTextCtrl_Start->SetName(_("Start Time")); S.AddWindow(m_pTimeTextCtrl_Start); } S.EndStatic(); S.StartStatic(_("End Date and Time"), true); { m_pDatePickerCtrl_End = safenew wxDatePickerCtrl(this, // wxWindow *parent, ID_DATEPICKER_END, // wxWindowID id, m_DateTime_End); // const wxDateTime& dt = wxDefaultDateTime, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, // long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, // const wxValidator& validator = wxDefaultValidator, // const wxString& name = "datectrl") m_pDatePickerCtrl_End->SetRange(m_DateTime_Start, wxInvalidDateTime); // No backdating. m_pDatePickerCtrl_End->SetName(_("End Date")); #if wxUSE_ACCESSIBILITY m_pDatePickerCtrl_End->SetAccessible( safenew DatePickerCtrlAx(m_pDatePickerCtrl_End)); #endif S.AddWindow(m_pDatePickerCtrl_End); m_pTimeTextCtrl_End = safenew NumericTextCtrl( this, ID_TIMETEXT_END, NumericConverter::TIME, wxEmptyString, 0, 44100, Options{} .MenuEnabled(false) .Format(strFormat) .Value(true, wxDateTime_to_AudacityTime(m_DateTime_End))); m_pTimeTextCtrl_End->SetName(_("End Time")); S.AddWindow(m_pTimeTextCtrl_End); } S.EndStatic(); S.StartStatic(_("Duration"), true); { /* i18n-hint: This string is used to configure the controls which shows the recording * duration. As such it is important that only the alphabetic parts of the string * are translated, with the numbers left exactly as they are. * The string 'days' indicates that the first number in the control will be the number of days, * then the 'h' indicates the second number displayed is hours, the 'm' indicates the third * number displayed is minutes, and the 's' indicates that the fourth number displayed is * seconds. */ wxString strFormat1 = _("099 days 024 h 060 m 060 s"); m_pTimeTextCtrl_Duration = safenew NumericTextCtrl( this, ID_TIMETEXT_DURATION, NumericConverter::TIME, wxEmptyString, 0, 44100, Options{} .MenuEnabled(false) .Format(strFormat1) .Value(true, m_TimeSpan_Duration.GetSeconds().ToDouble())); m_pTimeTextCtrl_Duration->SetName(_("Duration")); S.AddWindow(m_pTimeTextCtrl_Duration); } S.EndStatic(); } S.EndVerticalLay(); S.StartVerticalLay(true); { S.StartStatic(_("Automatic Save"), true); { // If checked, the project will be saved when the recording is completed m_pTimerAutoSaveCheckBoxCtrl = S.Id(ID_AUTOSAVE_CHECKBOX).AddCheckBox(_("Enable &Automatic Save?"), (bAutoSave ? "true" : "false")); S.StartMultiColumn(3, wxEXPAND); { wxString sInitialValue = wxT(""); AudacityProject* pProject = GetActiveProject(); wxString sSaveValue = pProject->GetFileName(); if (sSaveValue != wxEmptyString) { m_fnAutoSaveFile.Assign(sSaveValue); sInitialValue = _("Current Project"); } S.AddPrompt(_("Save Project As:")); m_pTimerSavePathTextCtrl = NewPathControl(this, ID_AUTOSAVEPATH_TEXT, _("Save Project As:"), sInitialValue); m_pTimerSavePathTextCtrl->SetEditable(false); S.AddWindow(m_pTimerSavePathTextCtrl); m_pTimerSavePathButtonCtrl = S.Id(ID_AUTOSAVEPATH_BUTTON).AddButton(_("Select...")); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Automatic Export"), true); { m_pTimerAutoExportCheckBoxCtrl = S.Id(ID_AUTOEXPORT_CHECKBOX).AddCheckBox(_("Enable Automatic &Export?"), (bAutoExport ? "true" : "false")); S.StartMultiColumn(3, wxEXPAND); { S.AddPrompt(_("Export Project As:")); m_pTimerExportPathTextCtrl = NewPathControl(this, ID_AUTOEXPORTPATH_TEXT, _("Export Project As:"), wxT("")); m_pTimerExportPathTextCtrl->SetEditable(false); S.AddWindow(m_pTimerExportPathTextCtrl); m_pTimerExportPathButtonCtrl = S.Id(ID_AUTOEXPORTPATH_BUTTON).AddButton(_("Select...")); } S.EndMultiColumn(); } S.EndStatic(); S.StartStatic(_("Options"), true); { wxArrayString arrayOptions; arrayOptions.Add(_("Do nothing")); arrayOptions.Add(_("Exit Audacity")); arrayOptions.Add(_("Restart system")); arrayOptions.Add(_("Shutdown system")); m_sTimerAfterCompleteOptionsArray.Add(arrayOptions.Item(0)); m_sTimerAfterCompleteOptionsArray.Add(arrayOptions.Item(1)); #ifdef __WINDOWS__ m_sTimerAfterCompleteOptionsArray.Add(arrayOptions.Item(2)); m_sTimerAfterCompleteOptionsArray.Add(arrayOptions.Item(3)); #endif m_sTimerAfterCompleteOption = arrayOptions.Item(iPostTimerRecordAction); m_pTimerAfterCompleteChoiceCtrl = S.AddChoice(_("After Recording completes:"), m_sTimerAfterCompleteOption, &m_sTimerAfterCompleteOptionsArray); } S.EndStatic(); } S.EndVerticalLay(); } S.EndMultiColumn(); // MY: Added the help button here S.AddStandardButtons(eOkButton | eCancelButton | eHelpButton); Layout(); Fit(); SetMinSize(GetSize()); Center(); EnableDisableAutoControls(bAutoSave, CONTROL_GROUP_SAVE); EnableDisableAutoControls(bAutoExport, CONTROL_GROUP_EXPORT); }