// // 2002-2005 AlphaSierraPapa // GNU General Public License // // $Revision$ // using System; using System.Collections; namespace ICSharpCode.Core { public class DebuggerDoozer : IDoozer { /// /// Gets if the doozer handles codon conditions on its own. /// If this property return false, the item is excluded when the condition is not met. /// public bool HandleConditions { get { return false; } } public object BuildItem(object caller, Codon codon, ArrayList subItems) { return new DebuggerDescriptor(codon); } } public class DebuggerDescriptor { Codon codon; public DebuggerDescriptor(Codon codon) { this.codon = codon; } IDebugger debugger; public IDebugger Debugger { get { if (debugger == null) debugger = (IDebugger)codon.AddIn.CreateObject(codon.Properties["class"]); return debugger; } } public bool SupportsStart { get { return codon.Properties["supportsStart"] != "false"; } } public bool SupportsStartWithoutDebugging { get { return codon.Properties["supportsStartWithoutDebugger"] != "false"; } } public bool SupportsStop { get { return codon.Properties["supportsStop"] != "false"; } } public bool SupportsStepping { get { return codon.Properties["supportsStepping"] == "true"; } } public bool SupportsExecutionControl { get { return codon.Properties["supportsExecutionControl"] == "true"; } } } }