void CommandManager::GetCategories(wxArrayString &cats) { cats.Clear(); size_t cnt = mCommandList.GetCount(); for (size_t i = 0; i < cnt; i++) { wxString cat = mCommandList[i]->labelTop; if (cats.Index(cat) == wxNOT_FOUND) { cats.Add(cat); } } #if 0 mCommandList.GetCount(); i++) { if (includeMultis || !mCommandList[i]->multi) names.Add(mCommandList[i]->name); } AudacityProject *p = GetActiveProject(); if (p == NULL) { return; } wxMenuBar *bar = p->GetMenuBar(); size_t cnt = bar->GetMenuCount(); for (size_t i = 0; i < cnt; i++) { cats.Add(bar->GetMenuLabelText(i)); } cats.Add(COMMAND); #endif }
// ModuleDispatch // is called by Audacity to initialize/terminmate the module, // and ask if it has anything for the menus. int ModuleDispatch(ModuleDispatchTypes type){ switch (type){ case AppQuiting: { //It is perfectly OK for gBench to be NULL. //Can happen if the menu item was never invoked. //wxASSERT(gBench != NULL); if (gBench) { gBench->Destroy(); gBench = NULL; } } break; case ProjectInitialized: case MenusRebuilt: { AudacityProject *p = GetActiveProject(); wxASSERT(p != NULL); CommandManager *c = p->GetCommandManager(); wxASSERT(c != NULL); wxMenuBar * pBar = p->GetMenuBar(); wxASSERT(pBar != NULL ); wxMenu * pMenu = pBar->GetMenu( 9 ); // Menu 9 is the Tools Menu. wxASSERT( pMenu != NULL ); c->SetCurrentMenu(pMenu); c->AddSeparator(); c->SetDefaultFlags(AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("NyqBench"), _("&Nyquist Workbench..."), true, findme, static_cast<CommandFunctorPointer>(&NyqBench::ShowNyqBench)); c->ClearCurrentMenu(); } break; default: break; } return 1; }
// ModuleDispatch // is called by Audacity to initialize/terminmate the module, // and ask if it has anything for the menus. int ModuleDispatch(ModuleDispatchTypes type){ switch (type){ case AppInitialized:{ wxASSERT(gBench == NULL); gBench = new NyqBench(NULL); } break; case AppQuiting: { wxASSERT(gBench != NULL); if (gBench) { delete gBench; gBench = NULL; } } break; case ProjectInitialized: case MenusRebuilt: { AudacityProject *p = GetActiveProject(); wxASSERT(p != NULL); CommandManager *c = p->GetCommandManager(); wxASSERT(c != NULL); wxMenuBar * pBar = p->GetMenuBar(); wxASSERT(pBar != NULL ); wxMenu * pMenu = pBar->GetMenu( 2 ); // Menu 2 is the View Menu. wxASSERT( pMenu != NULL ); c->SetToMenu( pMenu ); c->AddSeparator(); // c->BeginMenu(_("T&ools")); c->SetDefaultFlags(AudioIONotBusyFlag, AudioIONotBusyFlag); c->AddItem(wxT("NyqBench"), _("&Nyquist Workbench..."), new ModNyqBenchCommandFunctor()); } break; default: break; } return 1; }
// This is the function that connects us to Audacity. MOD_TRACK_PANEL_DLL_API int ModuleDispatch(ModuleDispatchTypes type) { switch (type) { case AppInitialized: Registrar::Start(); // Demand that all track panels be created using the TrackPanel2Factory. TrackPanel::FactoryFunction = TrackPanel2Factory; break; case AppQuiting: Registrar::Finish(); break; case ProjectInitialized: case MenusRebuilt: { AudacityProject *p = GetActiveProject(); if( p== NULL ) return 0; wxMenuBar * pBar = p->GetMenuBar(); wxMenu * pMenu = pBar->GetMenu( 7 ); // Menu 7 is the Analyze Menu. CommandManager * c = p->GetCommandManager(); c->SetToMenu( pMenu ); c->AddSeparator(); // We add two new commands into the Analyze menu. c->AddItem( _T("Extra Dialog..."), _T("Experimental Extra Dialog for whatever you want."), ModTrackPanelFN( OnFuncShowAudioExplorer ) ); //Second menu tweak no longer needed as we always make TrackPanel2's. //c->AddItem( _T("Replace TrackPanel..."), _T("Replace Current TrackPanel with TrackPanel2"), // ModTrackPanelFN( OnFuncReplaceTrackPanel ) ); } break; default: break; } return 1; }