示例#1
0
void ecSettingsDialog::OnOK(wxCommandEvent& event)
{
    ecSettings oldSettings(wxGetApp().GetSettings());

    TransferDataFromWindow();
    
    if (wxGetApp().GetSettings().m_bHex != oldSettings.m_bHex)
    {
        // Refresh the values window and currently selected properties
        ecConfigToolHint hint(NULL, ecAllSaved);
        if (wxGetApp().GetConfigToolDoc())
            wxGetApp().GetConfigToolDoc()->UpdateAllViews (NULL, & hint);        
    }

    if (wxGetApp().GetSettings().m_showMacroNames != oldSettings.m_showMacroNames)
    {
        ecConfigToolHint hint(NULL, ecNameFormatChanged);
        if (wxGetApp().GetConfigToolDoc())
            wxGetApp().GetConfigToolDoc()->UpdateAllViews (NULL, & hint);        
    }    

    event.Skip();
}
void udAggregationDialog::OnOk(wxCommandEvent& event)
{
	if( m_eName->GetValue() == wxT("") )
	{
		wxMessageBox(wxT("Name cannot be empty."), wxT("CodeDesigner"), wxICON_WARNING | wxOK );
		m_eName->SetFocus();
	}
//	else if( (m_Name != m_eName->GetValue()) && !IPluginManager::Get()->GetProject()->IsUniqueName( m_eName->GetValue() ) )
//	{
//		wxMessageBox(wxT("Name must be unique."), wxT("CodeDesigner"), wxICON_WARNING | wxOK );
//		m_eName->SetFocus();		
//	}
	else
	{
		// get data via validators...
		TransferDataFromWindow();
		m_pageAdv->TransferDataFromWindow();
		
		m_AccessType = m_chAccess->GetSelection();
		
		EndModal( wxID_OK );
	}
}
示例#3
0
void TagsEditor::OnOk(wxCommandEvent & WXUNUSED(event))
{
   if (mGrid->IsCellEditControlShown()) {
      mGrid->SaveEditControlValue();
      mGrid->HideCellEditControl();
      return;
   }

   if (!Validate() || !TransferDataFromWindow()) {
      return;
   }

   *mTags = mLocal;

   wxRect r = GetRect();
   gPrefs->Write(wxT("/TagsEditor/x"), r.x);
   gPrefs->Write(wxT("/TagsEditor/y"), r.y);
   gPrefs->Write(wxT("/TagsEditor/width"), r.width);
   gPrefs->Write(wxT("/TagsEditor/height"), r.height);
   gPrefs->Flush();

   EndModal(wxID_OK);
}
示例#4
0
void DialogStyleEditor::UpdateWorkStyle() {
	updating = true;
	TransferDataFromWindow();
	updating = false;

	work->font = from_wx(FontName->GetValue());

	long templ = 0;
	Encoding->GetValue().BeforeFirst('-').ToLong(&templ);
	work->encoding = templ;

	work->borderstyle = OutlineType->IsChecked() ? 3 : 1;

	work->alignment = ControlToAlign(Alignment->GetSelection());

	for (size_t i = 0; i < 3; ++i)
		work->Margin[i] = margin[i]->GetValue();

	work->bold = BoxBold->IsChecked();
	work->italic = BoxItalic->IsChecked();
	work->underline = BoxUnderline->IsChecked();
	work->strikeout = BoxStrikeout->IsChecked();
}
示例#5
0
void wxDialogBase::OnButton(wxCommandEvent& event)
{
    const int id = event.GetId();
    if ( id == GetAffirmativeId() )
    {
        AcceptAndClose();
    }
    else if ( id == wxID_APPLY )
    {
        if ( Validate() )
            TransferDataFromWindow();

        // TODO: disable the Apply button until things change again
    }
    else if ( id == GetEscapeId() ||
                (id == wxID_CANCEL && GetEscapeId() == wxID_ANY) )
    {
        EndDialog(wxID_CANCEL);
    }
    else // not a standard button
    {
        event.Skip();
    }
}
示例#6
0
文件: mainwin.cpp 项目: do-you/keshe
void mainwin::OnOkButtonClick( wxCommandEvent& event )
{
    TransferDataFromWindow();
    m_sourcemac.Replace("-", wxEmptyString);
    m_desmac.Replace("-", wxEmptyString);
    int checkresult = m_core.fillframe(m_sourcemac.MakeUpper().ToStdString(), m_desmac.MakeUpper().ToStdString(), m_userdata.ToStdString(), m_seedstr.ToStdString());

    if (checkresult)
    {
        if (checkresult & 1)
            wxMessageBox(wxT("error:源MAC地址格式不正确"), wxT("错误提示"), wxICON_ERROR);
        if (checkresult & 2)
            wxMessageBox(wxT("error:目的MAC地址格式不正确"), wxT("错误提示"), wxICON_ERROR);
        if (checkresult & 4)
            wxMessageBox(wxT("error:数据部分格式不正确"), wxT("错误提示"), wxICON_ERROR);
        if (checkresult & 8)
            wxMessageBox(wxT("error:生成多项式语法错误"), wxT("错误提示"), wxICON_ERROR);
    }
    else
    {
        if (FindWindow(XRCID("ID_BUTTON2")))
            FindWindow(XRCID("ID_BUTTON2"))->Enable();
        if (FindWindow(XRCID("ID_BUTTON3")))
            FindWindow(XRCID("ID_BUTTON3"))->Enable();
        if (FindWindow(XRCID("ID_SCROLLEDWINDOW")))
        {
            ((wxTextCtrl*)FindWindow(XRCID("ID_SCROLLEDWINDOW")))->Clear();
            ((wxTextCtrl*)FindWindow(XRCID("ID_SCROLLEDWINDOW")))->AppendText(m_core.getcrcdata() + string(crcgenerater::checkseedstr(m_seedstr.ToStdString())-1,'0')+"\n");
        }
        if (FindWindow(XRCID("ID_TEXTCTRL3")))
            ((wxTextCtrl*)FindWindow(XRCID("ID_TEXTCTRL3")))->Clear();
        if (FindWindow(XRCID("ID_TREECTRL")))
            ((wxTreeCtrl*)FindWindow(XRCID("ID_TREECTRL")))->DeleteAllItems();
        clicknum = 1;
    }
}
示例#7
0
void ProjectionDlg::OnHorizUnits( wxCommandEvent &event )
{
	TransferDataFromWindow();

	m_iUnits = m_pHorizCtrl->GetSelection();

	LinearUnits iUnits = (LinearUnits) (long int) m_pHorizCtrl->GetClientData(m_iUnits);

	if (iUnits == LU_METERS)
	{
		m_proj.SetLinearUnits(SRS_UL_METER, 1.0);
	}
	if (iUnits == LU_FEET_INT)
	{
		m_proj.SetLinearUnits(SRS_UL_FOOT, GetMetersPerUnit(iUnits));
	}
	if (iUnits == LU_FEET_US)
	{
		m_proj.SetLinearUnits(SRS_UL_US_FOOT, GetMetersPerUnit(iUnits));
	}

	TransferDataToWindow();
	UpdateControlStatus();
}
示例#8
0
void DialogExport::OnProcess(wxCommandEvent &) {
	if (!TransferDataFromWindow()) return;

	auto filename = SaveFileSelector(_("Export subtitles file"), "", "", "", to_wx(SubtitleFormat::GetWildcards(1)), this);
	if (filename.empty()) return;

	for (size_t i = 0; i < filter_list->GetCount(); ++i) {
		if (filter_list->IsChecked(i))
			exporter->AddFilter(from_wx(filter_list->GetString(i)));
	}

	try {
		wxBusyCursor busy;
		c->ass->SetScriptInfo("Export Encoding", from_wx(charset_list->GetStringSelection()));
		exporter->Export(filename, from_wx(charset_list->GetStringSelection()), this);
	}
	catch (agi::UserCancelException const&) {
	}
	catch (const char *error) {
		wxMessageBox(error, "Error exporting subtitles", wxOK | wxICON_ERROR | wxCENTER, this);
	}
	catch (wxString const& error) {
		wxMessageBox(error, "Error exporting subtitles", wxOK | wxICON_ERROR | wxCENTER, this);
	}
	catch (agi::Exception const& err) {
		wxMessageBox(to_wx(err.GetMessage()), "Error exporting subtitles", wxOK | wxICON_ERROR | wxCENTER, this);
	}
	catch (std::exception const& err) {
		wxMessageBox(to_wx(err.what()), "Error exporting subtitles", wxOK | wxICON_ERROR | wxCENTER, this);
	}
	catch (...) {
		wxMessageBox("Unknown error", "Error exporting subtitles", wxOK | wxICON_ERROR | wxCENTER, this);
	}

	EndModal(0);
}
示例#9
0
文件: dialog.cpp 项目: mark711/Cafu
void wxDialog::OnApply(wxCommandEvent &WXUNUSED(event))
{
    if ( Validate() )
        TransferDataFromWindow();
}
示例#10
0
void MvcController::UponUpdateUI(wxUpdateUIEvent& event)
{
    event.Skip();

    unit_test_idle_processing_completed_ = false;

    // Explicitly disregard any wxUpdateUIEvent received while this
    // application is not active: see
    //   http://lists.gnu.org/archive/html/lmi/2006-03/msg00006.html
    // for a discussion.
    if(!TheApp().IsActive())
        {
        return;
        }

    // A disabled window might have focus:
    //   http://lists.nongnu.org/archive/html/lmi/2005-11/msg00040.html
    // so make sure focus is valid now.
    EnsureOptimalFocus();

    // Exit immediately if nothing changed. The library calls this
    // function continually in idle time, and it's pointless to fret
    // over inputs that didn't change on this update because they've
    // already been handled. Complex processing of many inputs has
    // been observed to consume excessive CPU time when a malloc
    // debugger is running, so this optimization is significant.
    //
    // The early-exit condition cannot succeed until Assimilate() has
    // been called: therefore, Assimilate() is guaranteed to be called
    // here by the time the user can interact with the GUI.
    TransferDataFromWindow();
    if(cached_transfer_data_ == transfer_data_)
        {
        unit_test_idle_processing_completed_ = true;
        return;
        }
    cached_transfer_data_ = transfer_data_;

    DiagnosticsWindow().SetLabel("");
    std::vector<std::string> control_changes;
    std::string const name_to_ignore = NameOfControlToDeferEvaluating();
    typedef std::map<std::string,std::string>::const_iterator smci;
    for(smci i = transfer_data_.begin(); i != transfer_data_.end(); ++i)
        {
        std::string const& name        = i->first;
        std::string const& view_value  = i->second;
        std::string const& model_value = model_.Entity(name).str();
        if(name == name_to_ignore || ModelAndViewValuesEquivalent(name))
            {
            continue;
            }
        try
            {
            std::string change =
                  name + ":\n"
                + "    model: '" + model_value + "'\n"
                + "    view:  '" + view_value  + "'\n"
                ;
            control_changes.push_back(change);
            model_.Entity(name) = view_value;
            }
        catch(std::exception const& e)
            {
            DiagnosticsWindow().SetLabel(name + ": " + e.what());
            }
        }

    // wxEVT_UPDATE_UI events should occur frequently enough that two
    // control changes cannot be simultaneous.
    if(1 < control_changes.size())
        {
        warning() << "Contents of more than one control changed.\n";
        typedef std::vector<std::string>::const_iterator svci;
        for(svci i = control_changes.begin(); i != control_changes.end(); ++i)
            {
            warning() << *i;
            }
        warning() << LMI_FLUSH;
        }

    Assimilate(name_to_ignore);
}
示例#11
0
void TruncSilenceDialog::OnPreview(wxCommandEvent & event)
{
   TransferDataFromWindow();
   mEffect->Preview();
}
示例#12
0
void ConnectToDialog::OnOK( wxCommandEvent& event )
{
    TransferDataFromWindow();
    SaveHistoryValue();
    EndModal(wxID_OK);
}
示例#13
0
void EqualizationDialog::OnPreview(wxCommandEvent &event)
{
   TransferDataFromWindow();
	m_pEffect->Preview();
	//v Restore previous values?
}
示例#14
0
void DialogStyleEditor::OnSetColor(wxThreadEvent&) {
	TransferDataFromWindow();
	SubsPreview->SetStyle(*work);
}
示例#15
0
ExportMP2Options::~ExportMP2Options()
{
   TransferDataFromWindow();
}
示例#16
0
void
DiffDlg::OnComboPath2(wxCommandEvent& WXUNUSED(event))
{
  TransferDataFromWindow();
}
示例#17
0
void CPasswordPolicy::OnPronouceableCBClick( wxCommandEvent& event )
{
  if (Validate() && TransferDataFromWindow())
    SetDefaultSymbolDisplay(false);
}
示例#18
0
void EffectCompressor::OnSlider(wxCommandEvent & WXUNUSED(evt))
{
   TransferDataFromWindow();
   UpdateUI();
}
示例#19
0
void LocationDlg::OnActive( wxCommandEvent &event )
{
	TransferDataFromWindow();
}
示例#20
0
void ProjectionDlg::OnShowAllDatums( wxCommandEvent &event )
{
	TransferDataFromWindow();
	RefreshDatums();
	UpdateDatumStatus();
}
示例#21
0
void ProjectionDlg::OnProjChoice( wxCommandEvent &event )
{
	TransferDataFromWindow();

	// Even lightweight tasks can runs into trouble with the Locale ./, issue.
	ScopedLocale normal_numbers(LC_NUMERIC, "C");

	m_proj.SetGeogCSFromDatum(m_iDatum);

	m_eProj = (ProjType) m_iProj;

	if (m_eProj != PT_DYMAX)
		m_proj.SetDymaxion(false);

	switch (m_eProj)
	{
	case PT_GEO:
		// nothing more to do
		break;
	case PT_UTM:
		// To be polite, suggest a UTM zone based roughly on where the user
		//  might have some data.
		m_iZone = GuessZoneFromGeo(m_GeoRefPoint);
		m_proj.SetUTMZone(m_iZone);
		break;
	case PT_ALBERS:
		// Put in some default values
		m_proj.SetACEA( 60.0, 68.0, 59.0, -132.5, 500000, 500000 );
		break;
	case PT_HOM:
		// Put in some default values; these are for Alaska Zone 1
		m_proj.SetHOM( 57, -133.66666666666666,
			323.13010236111114, 323.13010236111114,
			0.9999, 5000000, -5000000 );
		break;
	case PT_KROVAK:
		// Put in some default values
		m_proj.SetKrovak(49.5, 24.83333333333333,
			30.28813975277778, 78.5, 0.9999, 0, 0);
		break;
	case PT_LAEA:
		// Put in some default values
		m_proj.SetLAEA( 51, -150, 1000000, 0 );
		break;
	case PT_LCC:
		// Put in some default values
		m_proj.SetLCC( 10, 20, 0, 15, 0, 0 );
		break;
	case PT_LCC1SP:
		// Put in some default values
		m_proj.SetLCC1SP( 30, 10, 1.0, 0, 0 );
		break;
	case PT_NZMG:
		// Put in some default values
		m_proj.SetNZMG( 41, 173, 2510000, 6023150 );
		break;
	case PT_MERC:
		// Put in some default values
		m_proj.SetMercator(0.0, 0.0, 1.0, 0, 0);
		break;
	case PT_TM:
		// Put in some default values
		// These are for the OSGB projection, a common case
		m_proj.SetTM(49.0, -2.0, 0.999601272, 400000, -100000);
		break;
	case PT_SINUS:
		// Put in some default values
		m_proj.SetSinusoidal(0, 0, 0); // dfCenterLong, dfFalseEasting, dfFalseNorthing
		break;
	case PT_STEREO:
		// Put in some default values
		m_proj.SetStereographic( 0.0, 0.0, 1.0, 0.0, 0.0);
		break;
	case PT_OS:
		// Put in some default values
		// These are for Stereo70 (Romania)
		m_proj.SetOS(45.0, 25.0, 0.999750,500000, 500000);
		break;
	case PT_PS:
		// Put in some default values
		// These are for the IBCAO polar bathymetry
		m_proj.SetPS(90.0, 0.0, 1.0, 0.0, 0.0);
		break;
	case PT_DYMAX:
		m_proj.SetDymaxion(true);
		break;
	}

	SetProjectionUI( (ProjType) m_iProj );
}
示例#22
0
void AvcCompressorDialog::OnOK(wxCommandEvent &event)
{
	if ( Validate() && TransferDataFromWindow() ) {
		// do our dialog specific validation

		// Check Adjustment Settings
        mstrAdjWin.ToLong(&mnAdjWin);
		if ( LongRangeCheck( mctlAdjWin, mnAdjWin, ADJWIN_MIN, ADJWIN_MAX ) == false ) {
			// value out of range
			return;
		}

        mstrDelay.ToLong(&mnDelay);
		if ( LongRangeCheck( mctlDelay, mnDelay, DELAY_MIN, DELAY_MAX ) == false ) {
			// value out of range
			return;
		}

        mstrChangeWin.ToLong(&mnChangeWin);
		if ( LongRangeCheck( mctlChangeWin, mnChangeWin, CHANGE_MIN, CHANGE_MAX ) == false ) {
			// value out of range
			return;
		}

		if ( mnChangeWin > mnAdjWin ) {
			wxMessageBox(wxT("Change window size must be less than or equal to Adjustment window size."),
					 wxT("Validation error"), wxOK | wxICON_EXCLAMATION, GetParent() );
 			if ( mctlChangeWin )
				mctlChangeWin->SetFocus();
			return;
		}

        mstrMinPct.ToLong(&mnMinPct);
		if ( LongRangeCheck( mctlMinPct, mnMinPct, MINPCT_MIN, MINPCT_MAX ) == false ) {
			// value out of range
			return;
		}

		// Check Amplification Settings
		long iPrevPoint= 0;		// index to mnXAxis and mnYAxis
		for ( int i = 0 ; i < NUM_CURVE_POINTS ; ++i ) {
			mstrXAxis[i].ToLong(&mnXAxis[i]);
			mstrYAxis[i].ToLong(&mnYAxis[i]);

			// see if this is a checked point
			if ( mctlCheckBoxes[i]->GetValue() == false)
				continue;	// last box guaranteed to be checked

			if ( i > 0 ) {
				if ( mnXAxis[i] <= mnXAxis[iPrevPoint] ) {
					wxMessageBox(wxT("Values in columns must be in ascending order."),
								 wxT("Validation error"),
								 wxOK | wxICON_EXCLAMATION, GetParent() );
					mctlXAxis[(i==NUM_CURVE_POINTS-1) ? iPrevPoint : i]->SetFocus();
					return;
				}
				if ( mnYAxis[i] <= mnYAxis[iPrevPoint] ) {
					wxMessageBox(wxT("Values in columns must be in ascending order."),
								 wxT("Validation error"),
								 wxOK | wxICON_EXCLAMATION, GetParent() );
					mctlYAxis[(i==NUM_CURVE_POINTS-1) ? iPrevPoint : i]->SetFocus();
					return;
				}
			}
			iPrevPoint = i;
		}

		// AOK, time to return
		WritePrefs();			// save values user entered for next execution

        if ( IsModal() )
            EndModal(wxID_OK);
        else {
		    SetReturnCode(wxID_OK);
		    this->Show(FALSE);
        }
	}
}
示例#23
0
void TagsEditor::OnSave(wxCommandEvent & event)
{
   wxString fn;

   // Refresh tags
   TransferDataFromWindow();

   // Ask the user for the real name
   fn = FileSelector(_("Save Metadata As:"),
                     FileNames::DataDir(),
                     wxT("Tags.xml"),
                     wxT("xml"),
                     wxT("*.xml"),
                     wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER,
                     this);

   // User canceled...
   if (fn.IsEmpty()) {
      return;
   }

   // Create/Open the file
   XMLFileWriter writer;

   try
   {
      writer.Open(fn, wxT("wb"));

      // Remember title and track in case they're read only
      wxString title = mLocal.GetTag(TAG_TITLE);
      wxString track = mLocal.GetTag(TAG_TRACK);

      // Clear title
      if (!mEditTitle) {
         mLocal.SetTag(TAG_TITLE, wxEmptyString);
      }

      // Clear track
      if (!mEditTrack) {
         mLocal.SetTag(TAG_TRACK, wxEmptyString);
      }

      // Write the metadata
      mLocal.WriteXML(writer);

      // Restore title
      if (!mEditTitle) {
         mLocal.SetTag(TAG_TITLE, title);
      }

      // Restore track
      if (!mEditTrack) {
         mLocal.SetTag(TAG_TRACK, track);
      }

      // Close the file
      writer.Close();
   }
   catch (XMLFileWriterException* pException)
   {
      wxMessageBox(wxString::Format(
         _("Couldn't write to file \"%s\": %s"),
         fn.c_str(), pException->GetMessage().c_str()),
         _("Error Saving Tags File"), wxICON_ERROR, this);

      delete pException;
   }
}
示例#24
0
void LocationDlg::OnRadio( wxCommandEvent &event )
{
	TransferDataFromWindow();
	UpdateEnabling();
}
示例#25
0
void RepeatDialog::OnRepeatTextChange(wxCommandEvent & event)
{
   TransferDataFromWindow();

   DisplayNewTime();
}
示例#26
0
void ScoreAlignDialog::OnSlider(wxCommandEvent & event)
{
   TransferDataFromWindow();
}
示例#27
0
void wxDialog::OnApply(wxCommandEvent& WXUNUSED(event))
{
    if (Validate())
        TransferDataFromWindow();
    // TODO probably need to disable the Apply button until things change again
}
示例#28
0
ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
   : wxDialog(parent, -1, _("Align MIDI to Audio"),
              wxDefaultPosition, wxDefaultSize,
              wxDEFAULT_DIALOG_STYLE)
{
   gScoreAlignDialog = this; // Allows anyone to close dialog by calling
                             // CloseScoreAlignDialog()
   gPrefs->Read(wxT("/Tracks/Synchronize/FramePeriod"), &p.mFramePeriod,
                float(SA_DFT_FRAME_PERIOD));
   gPrefs->Read(wxT("/Tracks/Synchronize/WindowSize"), &p.mWindowSize,
                float(SA_DFT_WINDOW_SIZE));
   gPrefs->Read(wxT("/Tracks/Synchronize/SilenceThreshold"),
                &p.mSilenceThreshold, float(SA_DFT_SILENCE_THRESHOLD));
   gPrefs->Read(wxT("/Tracks/Synchronize/ForceFinalAlignment"),
                &p.mForceFinalAlignment, float(SA_DFT_FORCE_FINAL_ALIGNMENT));
   gPrefs->Read(wxT("/Tracks/Synchronize/IgnoreSilence"),
                &p.mIgnoreSilence, float(SA_DFT_IGNORE_SILENCE));
   gPrefs->Read(wxT("/Tracks/Synchronize/PresmoothTime"), &p.mPresmoothTime,
                float(SA_DFT_PRESMOOTH_TIME));
   gPrefs->Read(wxT("/Tracks/Synchronize/LineTime"), &p.mLineTime,
                float(SA_DFT_LINE_TIME));
   gPrefs->Read(wxT("/Tracks/Synchronize/SmoothTime"), &p.mSmoothTime,
                float(SA_DFT_SMOOTH_TIME));

   //wxButton *ok = safenew wxButton(this, wxID_OK, _("OK"));
   //wxButton *cancel = safenew wxButton(this, wxID_CANCEL, _("Cancel"));
   //wxSlider *sl = safenew wxSlider(this, ID_SLIDER, 0, 0, 100,
   //                     wxDefaultPosition, wxSize(20, 124),
   //                     wxSL_HORIZONTAL);

   ShuttleGui S(this, eIsCreating);
   //ok->SetDefault();

   S.SetBorder(5);
   S.StartVerticalLay(true);
   S.StartStatic(wxT("Align MIDI to Audio"));
   S.StartMultiColumn(3, wxEXPAND | wxALIGN_CENTER_VERTICAL);
   S.SetStretchyCol(1);

   mFramePeriodLabel = S.AddVariableText(_("Frame Period:"), true,
                                      wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   S.SetStyle(wxSL_HORIZONTAL);
   mFramePeriodSlider = S.Id(ID_FRAMEPERIOD).AddSlider(wxT(""),
       /*pos*/ (int) (p.mFramePeriod * 100 + 0.5), /*max*/ 50, /*min*/ 5);
   S.SetSizeHints(300, -1);
   mFramePeriodSlider->SetName(_("Frame Period"));
   mFramePeriodText = S.AddVariableText(SA_DFT_FRAME_PERIOD_TEXT, true,
                                      wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);

   mWindowSizeLabel = S.AddVariableText(_("Window Size:"), true,
                                      wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   S.SetStyle(wxSL_HORIZONTAL);
   mWindowSizeSlider = S.Id(ID_WINDOWSIZE).AddSlider(wxT(""),
       /*pos*/ (int) (p.mWindowSize * 100 + 0.5), /*max*/ 100, /*min*/ 5);
   mWindowSizeSlider->SetName(_("Window Size"));
   mWindowSizeText = S.AddVariableText(SA_DFT_WINDOW_SIZE_TEXT, true,
                                      wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);

   mForceFinalAlignmentCheckBox = S.Id(ID_FORCEFINALALIGNMENT).AddCheckBox(
                wxT("Force Final Alignment"),
                (p.mForceFinalAlignment ? wxT("true") : wxT("false")));
   mForceFinalAlignmentCheckBox->SetName(_("Force Final Alignment"));
   mIgnoreSilenceCheckBox = S.Id(ID_IGNORESILENCE).AddCheckBox(
                              wxT("Ignore Silence at Beginnings and Endings"),
                              (p.mIgnoreSilence ? wxT("true") : wxT("false")));
   mIgnoreSilenceCheckBox->SetName(
                     _("Ignore Silence at Beginnings and Endings"));
   // need a third column after checkboxes:
   S.AddVariableText(wxT(""), true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);

   mSilenceThresholdLabel = S.AddVariableText(_("Silence Threshold:"),
                             true, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   S.SetStyle(wxSL_HORIZONTAL);
   mSilenceThresholdSlider = S.Id(ID_SILENCETHRESHOLD).AddSlider(wxT(""),
         /*pos*/ (int) (p.mSilenceThreshold * 1000 + 0.5), /*max*/ 500);
   mSilenceThresholdSlider->SetName(_("Silence Threshold"));
   mSilenceThresholdText = S.AddVariableText(SA_DFT_SILENCE_THRESHOLD_TEXT,
                              true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);

   /* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
      This is a NEW experimental effect, and until we have it documented in the user
      manual we don't have a clear description of what this parameter does.
      It is OK to leave it in English. */
   mPresmoothLabel = S.AddVariableText(_("Presmooth Time:"), true,
                                      wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   S.SetStyle(wxSL_HORIZONTAL);
   mPresmoothSlider = S.Id(ID_PRESMOOTH).AddSlider(wxT(""),
               /*pos*/ (int) (p.mPresmoothTime * 100 + 0.5), /*max*/ 500);
   mPresmoothSlider->SetName(_("Presmooth Time"));
   mPresmoothText = S.AddVariableText(SA_DFT_PRESMOOTH_TIME_TEXT, true,
                                      wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);

   /* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
      This is a NEW experimental effect, and until we have it documented in the user
      manual we don't have a clear description of what this parameter does.
      It is OK to leave it in English. */
   mLineTimeLabel = S.AddVariableText(_("Line Time:"), true,
                                      wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   S.SetStyle(wxSL_HORIZONTAL);
   mLineTimeSlider = S.Id(ID_LINETIME).AddSlider(wxT(""),
                    /*pos*/ (int) (p.mLineTime * 100 + 0.5), /*max*/ 500);
   mLineTimeSlider->SetName(_("Line Time"));
   mLineTimeText = S.AddVariableText(SA_DFT_LINE_TIME_TEXT, true,
                                      wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);

   /* i18n-hint: The English would be clearer if it had 'Duration' rather than 'Time'
      This is a NEW experimental effect, and until we have it documented in the user
      manual we don't have a clear description of what this parameter does.
      It is OK to leave it in English. */
   mSmoothTimeLabel = S.AddVariableText(_("Smooth Time:"), true,
                                      wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   S.SetStyle(wxSL_HORIZONTAL);
   mSmoothTimeSlider = S.Id(ID_SMOOTHTIME).AddSlider(wxT(""),
                  /*pos*/ (int) (p.mSmoothTime * 100 + 0.5), /*max*/ 500);
   mSmoothTimeSlider->SetName(_("Smooth Time"));
   mSmoothTimeText = S.AddVariableText(SA_DFT_SMOOTH_TIME_TEXT, true,
                                      wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);

   S.EndMultiColumn();
   S.EndStatic();

   mDefaultButton = safenew wxButton(this, ID_DEFAULT, _("Use Defaults"));
   mDefaultButton->SetName(_("Restore Defaults"));

   S.AddStandardButtons(eOkButton | eCancelButton, mDefaultButton);
   S.EndVerticalLay();
   Layout();
   Fit();
   Center();

   TransferDataFromWindow(); // set labels according to actual initial values

   params.mStatus = p.mStatus = ShowModal();

   if (p.mStatus == wxID_OK) {
       // Retain the settings
       gPrefs->Write(wxT("/Tracks/Synchronize/FramePeriod"), p.mFramePeriod);
       gPrefs->Write(wxT("/Tracks/Synchronize/WindowSize"), p.mWindowSize);
       gPrefs->Write(wxT("/Tracks/Synchronize/SilenceThreshold"),
                     p.mSilenceThreshold);
       gPrefs->Write(wxT("/Tracks/Synchronize/ForceFinalAlignment"),
                     p.mForceFinalAlignment);
       gPrefs->Write(wxT("/Tracks/Synchronize/IgnoreSilence"),
                     p.mIgnoreSilence);
       gPrefs->Write(wxT("/Tracks/Synchronize/PresmoothTime"),
                     p.mPresmoothTime);
       gPrefs->Write(wxT("/Tracks/Synchronize/LineTime"), p.mLineTime);
       gPrefs->Write(wxT("/Tracks/Synchronize/SmoothTime"), p.mSmoothTime);
       gPrefs->Flush();

       params = p; // return all parameters through params
   }
}
示例#29
0
ExportFLACOptions::~ExportFLACOptions()
{
   TransferDataFromWindow();
}
示例#30
0
void LevellerDialog::OnOk(wxCommandEvent &event)
{
   TransferDataFromWindow();

   EndModal(true);
}