/******************************/ public IProgressMonitor GetBuildProgressMonitor() { bool front = (bool) Runtime.Properties.GetProperty ("SharpDevelop.ShowOutputWindowAtBuild", true); AggregatedProgressMonitor mon = new AggregatedProgressMonitor (GetOutputProgressMonitor ("Build Output", MonoDevelop.Gui.Stock.BuildCombine, front, true)); mon.AddSlaveMonitor (GetStatusProgressMonitor ("Building...", MonoDevelop.Gui.Stock.BuildCombine, false)); return mon; }
public override void Execute(IProgressMonitor monitor, ExecutionContext context) { if (singleStartup) { if (StartupEntry != null) StartupEntry.Execute (monitor, context); } else { ArrayList list = new ArrayList (); monitor.BeginTask ("Executing projects", 1); SynchronizedProgressMonitor syncMonitor = new SynchronizedProgressMonitor (monitor); foreach (CombineExecuteDefinition ced in combineExecuteDefinitions) { if (ced.Type != EntryExecuteType.Execute) continue; AggregatedProgressMonitor mon = new AggregatedProgressMonitor (); mon.AddSlaveMonitor (syncMonitor, MonitorAction.ReportError | MonitorAction.ReportWarning | MonitorAction.SlaveCancel); EntryStartData sd = new EntryStartData (); sd.Monitor = mon; sd.Context = context; sd.Entry = ced.Entry; Runtime.DispatchService.ThreadDispatch (new StatefulMessageHandler (ExecuteEntryAsync), sd); list.Add (sd.Monitor.AsyncOperation); } foreach (IAsyncOperation op in list) op.WaitForCompleted (); monitor.EndTask (); } }