public static string[] BuildCmdLine(PanelItemBase panelItem, AddonMenuItem menuItem) { var programFileName = menuItem.ProgramValue.ExpandedFileName; var programArgs = AddonProgram.ExpandCmdLine(menuItem.ProgramArgs); programArgs = MacroHelper.ExpandPublicProperties(programArgs, panelItem); return(ProtocolHelper.IsProtocol(menuItem.ProgramRef.Id) ? new[] { menuItem.ProgramRef.Id + programArgs } : new[] { programFileName, programArgs }); }
public AddonCommandStarter(AddonMenuItem menuItem, PanelItemBase panelItem) { if (menuItem == null) { throw new ArgumentNullException("menuItem"); } if (panelItem == null) { throw new ArgumentNullException("panelItem"); } m_PanelItem = panelItem; m_MenuItem = menuItem; var factoryManager = App.Resolve <IPanelItemFactoryManager>(); m_Checker = factoryManager.GetAvailabilityChecker(m_PanelItem.GetType()); }
/// <summary> /// Run addon command marked with Default flag for current panelItem. /// </summary> public void RunDefaultCmdLine() { var pv = App.MainPages.View.ActivePanelView; if (pv == null) { return; } var panelItem = pv.Presenter.GetFocusedPanelItem(true); if (panelItem == null) { return; } var typeId = panelItem.GetType().Name; if (!PanelItems.ContainsKey(typeId)) { return; } var item = PanelItems[typeId]; AddonMenuItem defaultItem = null; foreach (var menuItem in item.ContextMenu) { if (menuItem.Default && menuItem.Enabled) { defaultItem = menuItem; } } if (defaultItem != null) { new AddonCommandStarter(defaultItem, panelItem).Start(); } }