/// HandleTextualCommand() allows us a limitted version of script/batch /// behavior, since we can get from a string command name to the actual /// code to run. bool CommandManager::HandleTextualCommand(wxString & Str, wxUint32 flags, wxUint32 mask) { unsigned int i; // Linear search for now... for(i=0; i<mCommandList.GetCount(); i++) { if (!mCommandList[i]->multi) { if( Str.IsSameAs( mCommandList[i]->name )) { return HandleCommandEntry( mCommandList[i], flags, mask); } } } // Not one of the singleton commands. // We could/should try all the list-style commands. // instead we only try the effects. EffectArray *effects; AudacityProject * proj; proj = GetActiveProject(); if( !proj ) return false; int effectFlags = ALL_EFFECTS | CONFIGURED_EFFECT; effects = EffectManager::Get().GetEffects(effectFlags); for(i=0; i<effects->GetCount(); i++) { wxString effectName = (*effects)[i]->GetEffectName(); if( Str.IsSameAs( effectName )) { return proj->OnEffect( effectFlags, (*effects)[i] ); } } return false; }
///Call this when a key event is received. ///If it matches a command, it will call the appropriate ///CommandManagerListener function. If you pass any flags, ///the command won't be executed unless the flags are compatible ///with the command's flags. bool CommandManager::HandleKey(wxKeyEvent &evt, wxUint32 flags, wxUint32 mask) { wxString keyStr = KeyEventToKeyString(evt); CommandListEntry *entry = mCommandKeyHash[keyStr]; if (evt.GetEventType() == wxEVT_KEY_DOWN) { return HandleCommandEntry( entry, flags, mask, &evt ); } if (entry && entry->wantevent) { return HandleCommandEntry( entry, flags, mask, &evt ); } return false; }
/// HandleTextualCommand() allows us a limitted version of script/batch /// behavior, since we can get from a string command name to the actual /// code to run. bool CommandManager::HandleTextualCommand(wxString & Str, wxUint32 flags, wxUint32 mask) { unsigned int i; // Linear search for now... for (i = 0; i < mCommandList.GetCount(); i++) { if (!mCommandList[i]->multi) { if( Str.IsSameAs( mCommandList[i]->name )) { return HandleCommandEntry( mCommandList[i], flags, mask); } } } // Not one of the singleton commands. // We could/should try all the list-style commands. // instead we only try the effects. AudacityProject * proj = GetActiveProject(); if( !proj ) { return false; } PluginManager & pm = PluginManager::Get(); EffectManager & em = EffectManager::Get(); const PluginDescriptor *plug = pm.GetFirstPlugin(PluginTypeEffect); while (plug) { if (em.GetEffectName(plug->GetID()).IsSameAs(Str)) { return proj->OnEffect( ALL_EFFECTS | CONFIGURED_EFFECT, plug->GetID()); } plug = pm.GetNextPlugin(PluginTypeEffect); } return false; }
///Call this when a key event is received. ///If it matches a command, it will call the appropriate ///CommandManagerListener function. If you pass any flags, ///the command won't be executed unless the flags are compatible ///with the command's flags. bool CommandManager::HandleKey(wxKeyEvent &evt, wxUint32 flags, wxUint32 mask) { wxString keyStr = KeyEventToKeyString(evt); CommandListEntry *entry = mCommandKeyHash[keyStr]; return HandleCommandEntry( entry, flags, mask ); }
///Call this when a menu event is received. ///If it matches a command, it will call the appropriate ///CommandManagerListener function. If you pass any flags, ///the command won't be executed unless the flags are compatible ///with the command's flags. bool CommandManager::HandleMenuID(int id, wxUint32 flags, wxUint32 mask) { CommandListEntry *entry = mCommandIDHash[id]; return HandleCommandEntry( entry, flags, mask ); }