MCPcopy Create free account
hub / github.com/audacity/audacity / OnMenu

Method OnMenu

src/effects/EffectUI.cpp:651–744  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

649}
650
651void EffectUIHost::OnMenu(wxCommandEvent & WXUNUSED(evt))
652{
653 wxMenu menu;
654 menu.Bind(wxEVT_MENU, [](auto&){}, kUserPresetsDummyID);
655 menu.Bind(wxEVT_MENU, [](auto&){}, kDeletePresetDummyID);
656 LoadUserPresets();
657
658 if (mUserPresets.size() == 0)
659 {
660 menu.Append(kUserPresetsDummyID, _("User Presets"))->Enable(false);
661 }
662 else
663 {
664 auto sub = std::make_unique<wxMenu>();
665 for (size_t i = 0, cnt = mUserPresets.size(); i < cnt; i++)
666 {
667 sub->Append(kUserPresetsID + i, mUserPresets[i]);
668 }
669 menu.Append(0, _("User Presets"), sub.release());
670 }
671
672 menu.Append(kSaveAsID, _("Save Preset..."));
673
674 if (mUserPresets.size() == 0)
675 {
676 menu.Append(kDeletePresetDummyID, _("Delete Preset"))->Enable(false);
677 }
678 else
679 {
680 auto sub = std::make_unique<wxMenu>();
681 for (size_t i = 0, cnt = mUserPresets.size(); i < cnt; i++)
682 {
683 sub->Append(kDeletePresetID + i, mUserPresets[i]);
684 }
685 menu.Append(0, _("Delete Preset"), sub.release());
686 }
687
688 menu.AppendSeparator();
689
690 auto factory = mEffectUIHost.GetDefinition().GetFactoryPresets();
691
692 {
693 auto sub = std::make_unique<wxMenu>();
694 sub->Append(kDefaultsID, _("Defaults"));
695 if (factory.size() > 0)
696 {
697 sub->AppendSeparator();
698 for (size_t i = 0, cnt = factory.size(); i < cnt; i++)
699 {
700 auto label = factory[i];
701 if (label.empty())
702 {
703 label = _("None");
704 }
705
706 sub->Append(kFactoryPresetsID + i, label);
707 }
708 }

Callers

nothing calls this directly

Calls 15

GetVersionForDisplayFunction · 0.85
BindMethod · 0.80
TranslationMethod · 0.80
sizeMethod · 0.45
EnableMethod · 0.45
AppendMethod · 0.45
releaseMethod · 0.45
GetFactoryPresetsMethod · 0.45
emptyMethod · 0.45
CanExportPresetsMethod · 0.45
HasOptionsMethod · 0.45
GetFamilyMethod · 0.45

Tested by

no test coverage detected