[mono/monodevelop] 3345f883: [Debugger] Moved BreakpointPropertiesDialog to be main dialog.

"Therzok ([email protected])" <[email protected]>
Newsgroups gmane.comp.gnome.mono.patches
Message-ID <00000141db5312b9-b64b4812-3c28-4f31-ae03-af0f4b38253b-000000@email.amazonses.com>
   Branch: refs/heads/bpDialog2
     Home: https://github.com/mono/monodevelop
  Compare: https://github.com/mono/monodevelop/compare/7e9332d371ca...3345f883e8a4

   Commit: 3345f883e8a45655010d9d1b9801723ec5f02066
   Author: Therzok <[email protected]> (Therzok)
     Date: 2013-10-21 13:58:26 GMT
      URL: https://github.com/mono/monodevelop/commit/3345f883e8a45655010d9d1b9801723ec5f02066

[Debugger] Moved BreakpointPropertiesDialog to be main dialog.

Changed paths:
  M main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj
  M main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
  M main/src/addins/MonoDevelop.Debugger/gtk-gui/gui.stetic
Removed paths:
  D main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog2.cs
  D main/src/addins/MonoDevelop.Debugger/gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs

Modified: main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj
===================================================================
@@ -119,8 +119,6 @@
     <Compile Include="gtk-gui\MonoDevelop.Debugger.AttachToProcessDialog.cs" />
     <Compile Include="MonoDevelop.Debugger\ExpressionEvaluatorDialog.cs" />
     <Compile Include="gtk-gui\MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs" />
-    <Compile Include="MonoDevelop.Debugger\BreakpointPropertiesDialog.cs" />
-    <Compile Include="gtk-gui\MonoDevelop.Debugger.BreakpointPropertiesDialog.cs" />
     <Compile Include="MonoDevelop.Debugger\DebugExecutionModeSet.cs" />
     <Compile Include="MonoDevelop.Debugger\IDebuggerEngine.cs" />
     <Compile Include="MonoDevelop.Debugger\ImmediatePad.cs" />
@@ -145,7 +143,7 @@
     <Compile Include="MonoDevelop.Debugger\DebuggerConsoleView.cs" />
     <Compile Include="MonoDevelop.Debugger.Visualizer\CStringVisualizer.cs" />
     <Compile Include="MonoDevelop.Debugger.Visualizer\ValueVisualizer.cs" />
-    <Compile Include="MonoDevelop.Debugger\BreakpointPropertiesDialog2.cs" />
+    <Compile Include="MonoDevelop.Debugger\BreakpointPropertiesDialog.cs" />
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="MonoDevelop.Debugger.addin.xml">

Modified: main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
===================================================================
@@ -1,265 +1,548 @@
-// BreakpointPropertiesDialog.cs
-//
-// Author:
-//   Lluis Sanchez Gual <[email protected]>
-//
-// Copyright (c) 2008 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//
-//
-
-using System;
-using System.Collections.Generic;
-
-using MonoDevelop.Core;
-using Mono.Debugging.Client;
-using MonoDevelop.Projects;
-using MonoDevelop.Ide;
-
-namespace MonoDevelop.Debugger
-{
-	public partial class BreakpointPropertiesDialog : Gtk.Dialog
-	{
-		string[] parsedParamTypes;
-		string parsedFunction;
-		Breakpoint bp;
-		bool isNew;
-		
-		public BreakpointPropertiesDialog (Breakpoint bp, bool isNew)
-		{
-			this.Build ();
-			
-			this.isNew = isNew;
-			this.bp = bp;
-			
-			spinColumn.Adjustment.Upper = int.MaxValue;
-			spinColumn.Adjustment.Lower = 1;
-			spinLine.Adjustment.Upper = int.MaxValue;
-			spinLine.Adjustment.Lower = 1;
-			
-			if (bp is FunctionBreakpoint) {
-				FunctionBreakpoint fb = (FunctionBreakpoint) bp;
-				
-				labelFileFunction.LabelProp = GettextCatalog.GetString ("Function:");
-				
-				if (fb.ParamTypes != null) {
-					// FIXME: support non-C# syntax based on fb.Language
-					entryFileFunction.Text = fb.FunctionName + " (" + string.Join (", ", fb.ParamTypes) + ")";
-				} else
-					entryFileFunction.Text = fb.FunctionName;
-				
-				if (!isNew) {
-					// We don't use ".Sensitive = false" because we want the user to be able to select & copy the text.
-					entryFileFunction.ModifyBase (Gtk.StateType.Normal, Style.Backgrounds [(int)Gtk.StateType.Insensitive]);
-					entryFileFunction.ModifyBase (Gtk.StateType.Active, Style.Backgrounds [(int)Gtk.StateType.Insensitive]);
-					entryFileFunction.IsEditable = false;
-				}
-				
-				// Function breakpoints only support breaking on the first line
-				hboxLineColumn.Destroy ();
-				labelLine.Destroy ();
-				tableLocation.NRows--;
-			} else {
-				labelFileFunction.LabelProp = GettextCatalog.GetString ("File:");
-				entryFileFunction.Text = ((Breakpoint) bp).FileName;
-				
-				// We don't use ".Sensitive = false" because we want the user to be able to select & copy the text.
-				entryFileFunction.ModifyBase (Gtk.StateType.Normal, Style.Backgrounds [(int)Gtk.StateType.Insensitive]);
-				entryFileFunction.ModifyBase (Gtk.StateType.Active, Style.Backgrounds [(int)Gtk.StateType.Insensitive]);
-				entryFileFunction.IsEditable = false;
-				
-				spinColumn.Value = bp.Column;
-				spinLine.Value = bp.Line;
-				
-				if (!isNew) {
-					spinColumn.IsEditable = false;
-					spinColumn.Sensitive = false;
-					spinLine.IsEditable = false;
-					spinLine.Sensitive = false;
-				}
-			}
-			
-			if (string.IsNullOrEmpty (bp.ConditionExpression)) {
-				radioBreakAlways.Active = true;
-			} else {
-				entryCondition.Text = bp.ConditionExpression;
-				if (bp.BreakIfConditionChanges)
-					radioBreakWhenChanges.Active = true;
-				else
-					radioBreakWhenTrue.Active = true;
-			}
-
-			comboHitCountMode.Changed += OnHitCountModeChanged;
-			comboHitCountMode.Active = (int) bp.HitCountMode;
-			spinHitCount.Value = bp.HitCount;
-			
-			if (bp.HitAction == HitAction.Break) {
-				radioActionBreak.Active = true;
-			} else {
-				radioActionTrace.Active = true;
-				entryTraceExpression.Text = bp.TraceExpression;
-			}
-			
-			Project project = null;
-			if (!string.IsNullOrEmpty (bp.FileName))
-				project = IdeApp.Workspace.GetProjectContainingFile (bp.FileName);
-			
-			if (project != null) {
-				// Check the startup project of the solution too, since the current project may be a library
-				SolutionEntityItem startup = project.ParentSolution.StartupItem;
-				vboxConditionOptions.Sensitive = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.ConditionalBreakpoints) ||
-					DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.ConditionalBreakpoints);
-				vboxAction.Sensitive = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.Tracepoints) ||
-					DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.Tracepoints);
-			}
-			
-			UpdateControls ();
-		}
-		
-		void UpdateControls ()
-		{
-			boxTraceExpression.Sensitive = radioActionTrace.Active;
-			hboxConditionExpression.Sensitive = !radioBreakAlways.Active;
-
-			if (comboHitCountMode.Active == 0)
-				spinHitCount.Hide ();
-			else
-				spinHitCount.Show ();
-		}
-		
-		static bool TryParseFunction (string signature, out string function, out string[] paramTypes)
-		{
-			int paramListStart = signature.IndexOf ('(');
-			int paramListEnd = signature.IndexOf (')');
-
-			if (paramListStart == -1 && paramListEnd == -1) {
-				function = signature;
-				paramTypes = null;
-				return true;
-			}
-
-			if (paramListEnd != signature.Length - 1) {
-				paramTypes = null;
-				function = null;
-				return false;
-			}
-			
-			function = signature.Substring (0, paramListStart).Trim ();
-			
-			paramListStart++;
-
-			if (!FunctionBreakpoint.TryParseParameters (signature, paramListStart, paramListEnd, out paramTypes)) {
-				paramTypes = null;
-				function = null;
-				return false;
-			}
-			
-			return true;
-		}
-		
-		public bool Check ()
-		{
-			if (bp is FunctionBreakpoint) {
-				string text = entryFileFunction.Text.Trim ();
-
-				if (text.Length == 0) {
-					MessageService.ShowError (GettextCatalog.GetString ("Function name not specified"));
-					return false;
-				}
-
-				if (!TryParseFunction (text, out parsedFunction, out parsedParamTypes)) {
-					MessageService.ShowError (GettextCatalog.GetString ("Invalid function syntax"));
-					return false;
-				}
-			}
-			
-			if (!radioBreakAlways.Active && entryCondition.Text.Length == 0) {
-				MessageService.ShowError (GettextCatalog.GetString ("Condition expression not specified"));
-				return false;
-			}
-			
-			if (radioActionTrace.Active && entryTraceExpression.Text.Length == 0) {
-				MessageService.ShowError (GettextCatalog.GetString ("Trace expression not specified"));
-				return false;
-			}
-			
-			return true;
-		}
-		
-		public void Save ()
-		{
-			if (isNew) {
-				if (bp is FunctionBreakpoint) {
-					FunctionBreakpoint fb = (FunctionBreakpoint) bp;
-					
-					fb.FunctionName = parsedFunction;
-					fb.ParamTypes = parsedParamTypes;
-				} else {
-					bp.SetColumn ((int) spinColumn.Value);
-					bp.SetLine ((int) spinLine.Value);
-				}
-			}
-			
-			if (!radioBreakAlways.Active) {
-				bp.ConditionExpression = entryCondition.Text;
-				bp.BreakIfConditionChanges = radioBreakWhenChanges.Active;
-			} else
-				bp.ConditionExpression = null;
-
-			bp.HitCountMode = (HitCountMode) comboHitCountMode.Active;
-			if (bp.HitCountMode != HitCountMode.None)
-				bp.HitCount = (int) spinHitCount.Value;
-			else
-				bp.HitCount = 0;
-			
-			if (radioActionBreak.Active) {
-				bp.HitAction = HitAction.Break;
-			} else {
-				bp.HitAction = HitAction.PrintExpression;
-				bp.TraceExpression = entryTraceExpression.Text;
-			}
-
-			bp.CommitChanges ();
-		}
-
-		protected virtual void OnButtonOkClicked (object sender, EventArgs e)
-		{
-			if (Check ()) {
-				Save ();
-				Respond (Gtk.ResponseType.Ok);
-			}
-		}
-
-		protected virtual void OnRadioBreakAlwaysToggled (object sender, EventArgs e)
-		{
-			UpdateControls ();
-		}
-
-		protected virtual void OnRadioActionBreakToggled (object sender,EventArgs e)
-		{
-			UpdateControls ();
-		}
-
-		void OnHitCountModeChanged (object sender, EventArgs e)
-		{
-			UpdateControls ();
-		}
-	}
-}
+//
+// BreakpointsPropertiesDialog.cs
+//
+// Author:
+//       Therzok <[email protected]>
+//
+// Copyright (c) 2013 Therzok
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Mono.Debugging.Client;
+using MonoDevelop.Core;
+using MonoDevelop.Projects;
+using MonoDevelop.Ide;
+using System.Collections.Generic;
+using MonoDevelop.Ide.TypeSystem;
+using ICSharpCode.NRefactory.TypeSystem;
+using MonoDevelop.Ide.CodeCompletion;
+
+namespace MonoDevelop.Debugger
+{
+	enum ConditionalHitWhen
+	{
+		ConditionIsTrue,
+		ExpressionChanges
+	}
+
+	sealed class BreakpointPropertiesDialog2 : Xwt.Dialog
+	{
+		// For button sensitivity.
+		Xwt.DialogButton buttonOk;
+
+		// Groupings for sensitivity
+		Xwt.HBox hboxFunction = new Xwt.HBox ();
+		Xwt.HBox hboxLocation = new Xwt.HBox ();
+		Xwt.HBox hboxLineColumn = new Xwt.HBox ();
+		Xwt.HBox hboxException = new Xwt.HBox ();
+		Xwt.HBox hboxCondition = new Xwt.HBox ();
+
+		// Stop-type radios.
+		readonly Xwt.RadioButton stopOnFunction = new Xwt.RadioButton (GettextCatalog.GetString ("When a function is entered"));
+		readonly Xwt.RadioButton stopOnLocation = new Xwt.RadioButton (GettextCatalog.GetString ("When a location is reached"));
+		readonly Xwt.RadioButton stopOnException = new Xwt.RadioButton (GettextCatalog.GetString ("When an exception is thrown"));
+
+		// Text entries
+		readonly Xwt.TextEntry entryFunctionName = new Xwt.TextEntry ();
+		readonly Xwt.TextEntry entryLocationFile = new Xwt.TextEntry ();
+		readonly Xwt.TextEntry entryLocationLine = new Xwt.TextEntry ();
+		readonly Xwt.TextEntry entryLocationColumn = new Xwt.TextEntry ();
+		readonly Xwt.TextEntry entryExceptionType = new Xwt.TextEntry ();
+		readonly Xwt.TextEntry entryConditionalExpression = new Xwt.TextEntry ();
+		readonly Xwt.TextEntry entryPrintExpression = new Xwt.TextEntry ();
+
+		// Warning icon
+		readonly Xwt.ImageView warningFunction = new Xwt.ImageView (Xwt.StockIcons.Warning);
+		readonly Xwt.ImageView warningLocation = new Xwt.ImageView (Xwt.StockIcons.Warning);
+		readonly Xwt.ImageView warningException = new Xwt.ImageView (Xwt.StockIcons.Warning);
+		readonly Xwt.ImageView warningCondition = new Xwt.ImageView (Xwt.StockIcons.Warning);
+
+		// Combobox + Pager
+		readonly Xwt.SpinButton ignoreHitCount = new Xwt.SpinButton ();
+		readonly Xwt.ComboBox ignoreHitType = new Xwt.ComboBox ();
+		readonly Xwt.ComboBox conditionalHitType = new Xwt.ComboBox ();
+
+		// Optional checkboxes.
+		readonly Xwt.CheckBox checkIncludeSubclass = new Xwt.CheckBox (GettextCatalog.GetString ("Include subclasses"));
+		readonly Xwt.CheckBox checkPrintExpression = new Xwt.CheckBox (GettextCatalog.GetString ("Print an expression to the debugger output"));
+		readonly Xwt.CheckBox checkResumeExecution = new Xwt.CheckBox (GettextCatalog.GetString ("Resume execution automatically"));
+
+		BreakEvent be;
+		string[] parsedParamTypes;
+		string parsedFunction;
+		readonly HashSet<string> classes = new HashSet<string> ();
+
+		public BreakpointPropertiesDialog2 (BreakEvent be)
+		{
+			this.be = be;
+
+			LoadExceptionList ();
+			Initialize ();
+			SetInitialData ();
+			SetLayout ();
+		}
+
+		void Initialize ()
+		{
+			Title = GettextCatalog.GetString (be == null ? "New Breakpoint" : "Breakpoint Properties");
+			var buttonLabel = GettextCatalog.GetString (be == null ? "Add breakpoint" : "Modify breakpoint");
+
+			var stopGroup = new Xwt.RadioButtonGroup ();
+			stopOnFunction.Group = stopGroup;
+			stopOnLocation.Group = stopGroup;
+			stopOnException.Group = stopGroup;
+
+			ignoreHitType.Items.Add (HitCountMode.None, GettextCatalog.GetString ("always"));
+			ignoreHitType.Items.Add (HitCountMode.LessThan, GettextCatalog.GetString ("when hit count is less than"));
+			ignoreHitType.Items.Add (HitCountMode.LessThanOrEqualTo, GettextCatalog.GetString ("when hit count is less than or equal to"));
+			ignoreHitType.Items.Add (HitCountMode.EqualTo, GettextCatalog.GetString ("when hit count is equal to"));
+			ignoreHitType.Items.Add (HitCountMode.GreaterThan, GettextCatalog.GetString ("when hit count is greater than"));
+			ignoreHitType.Items.Add (HitCountMode.GreaterThanOrEqualTo, GettextCatalog.GetString ("when hit count is greater than or equal to"));
+			ignoreHitType.Items.Add (HitCountMode.MultipleOf, GettextCatalog.GetString ("when hit count is a multiple of"));
+
+			ignoreHitCount.IncrementValue = 1;
+
+			conditionalHitType.Items.Add (ConditionalHitWhen.ConditionIsTrue, GettextCatalog.GetString ("is true"));
+			conditionalHitType.Items.Add (ConditionalHitWhen.ExpressionChanges, GettextCatalog.GetString ("expression changes"));
+
+			buttonOk = new Xwt.DialogButton (buttonLabel, Xwt.Command.Ok) {
+				Sensitive = false
+			};
+
+			// Register events.
+			stopGroup.ActiveRadioButtonChanged += OnUpdateControls;
+			entryFunctionName.Changed += OnUpdateControls;
+			entryLocationFile.Changed += OnUpdateControls;
+			entryLocationLine.Changed += OnUpdateControls;
+			entryLocationColumn.Changed += OnUpdateControls;
+
+			entryConditionalExpression.Changed += OnUpdateControls;
+			ignoreHitType.SelectionChanged += OnUpdateControls;
+			checkPrintExpression.Toggled += OnUpdateControls;
+
+			entryFunctionName.Changed += OnUpdateText;
+			entryLocationFile.Changed += OnUpdateText;
+			entryExceptionType.Changed += OnUpdateText;
+			entryPrintExpression.Changed += OnUpdateText;
+
+			// TODO: Fix completion.
+			//entryExceptionType.KeyReleased += OnEditKeyRelease;
+			//entryExceptionType.KeyPressed += PopupCompletion;
+
+			buttonOk.Clicked += OnSave;
+		}
+
+		void SetInitialFunctionBreakpointData (FunctionBreakpoint fb)
+		{
+			stopOnFunction.Active = true;
+			if (fb.ParamTypes != null) {
+				// FIXME: support non-C# syntax based on fb.Language
+				entryFunctionName.Text = fb.FunctionName + " (" + String.Join (", ", fb.ParamTypes) + ")";
+			} else
+				entryFunctionName.Text = fb.FunctionName;
+		}
+
+		void SetInitialBreakpointData (Breakpoint bp)
+		{
+			stopOnLocation.Active = true;
+			entryLocationFile.Text = bp.FileName;
+			entryLocationLine.Text = bp.Line.ToString ();
+			entryLocationColumn.Text = bp.Column.ToString ();
+
+			if (!String.IsNullOrEmpty (bp.ConditionExpression)) {
+				entryConditionalExpression.Text = bp.ConditionExpression;
+				conditionalHitType.SelectedItem = bp.BreakIfConditionChanges ? ConditionalHitWhen.ExpressionChanges : ConditionalHitWhen.ConditionIsTrue;
+			}
+
+			Project project = null;
+			if (!String.IsNullOrEmpty (bp.FileName))
+				project = IdeApp.Workspace.GetProjectContainingFile (bp.FileName);
+
+			if (project != null) {
+				// Check the startup project of the solution too, since the current project may be a library
+				SolutionEntityItem startup = project.ParentSolution.StartupItem;
+				entryConditionalExpression.Sensitive = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.ConditionalBreakpoints) ||
+				                                       DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.ConditionalBreakpoints);
+
+				bool canTrace = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.Tracepoints) ||
+				                DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.Tracepoints);
+
+				checkPrintExpression.Sensitive = canTrace;
+				entryPrintExpression.Sensitive = canTrace;
+			}
+		}
+
+		void SetInitialCatchpointData (Catchpoint cp)
+		{
+			entryExceptionType.Text = cp.ExceptionName;
+		}
+
+		void SetInitialData ()
+		{
+			// FIXME: Add support for not doing base add
+			checkIncludeSubclass.Active = true;
+			checkIncludeSubclass.Sensitive = false;
+
+			if (be != null) {
+				stopOnException.Sensitive = false;
+				stopOnFunction.Sensitive = false;
+				stopOnLocation.Sensitive = false;
+				entryLocationFile.ReadOnly = true;
+				entryLocationLine.ReadOnly = true;
+				entryLocationColumn.ReadOnly = true;
+				entryExceptionType.ReadOnly = true;
+
+				ignoreHitType.SelectedItem = be.HitCountMode;
+				ignoreHitCount.Value = be.HitCount;
+
+				if ((be.HitAction & HitAction.PrintExpression) != HitAction.None) {
+					checkPrintExpression.Active = true;
+					entryPrintExpression.Text = be.TraceExpression;
+				}
+				checkResumeExecution.Active |= (be.HitAction & HitAction.Break) == HitAction.None;
+			} else {
+				ignoreHitType.SelectedItem = HitCountMode.None;
+				conditionalHitType.SelectedItem = ConditionalHitWhen.ConditionIsTrue;
+
+				if (IdeApp.Workbench.ActiveDocument != null) {
+					entryLocationFile.Text = IdeApp.Workbench.ActiveDocument.FileName;
+					entryLocationLine.Text = IdeApp.Workbench.ActiveDocument.Editor.Caret.Line.ToString ();
+					entryLocationColumn.Text = IdeApp.Workbench.ActiveDocument.Editor.Caret.Column.ToString ();
+				}
+			}
+
+			var fb = be as FunctionBreakpoint;
+			if (fb != null)
+				SetInitialFunctionBreakpointData (fb);
+
+			var bp = be as Breakpoint;
+			if (bp != null)
+				SetInitialBreakpointData (bp);
+
+			var cp = be as Catchpoint;
+			if (cp != null)
+				SetInitialCatchpointData (cp);
+		}
+
+		void SaveFunctionBreakpoint (FunctionBreakpoint fb)
+		{
+			fb.FunctionName = parsedFunction;
+			fb.ParamTypes = parsedParamTypes;
+		}
+
+		void SaveBreakpoint (Breakpoint bp, bool isNew)
+		{
+			if (isNew) {
+				bp.SetColumn (Int32.Parse (entryLocationColumn.Text));
+				bp.SetLine (Int32.Parse (entryLocationLine.Text));
+			}
+
+			if (!String.IsNullOrEmpty (entryConditionalExpression.Text)) {
+				bp.ConditionExpression = entryConditionalExpression.Text;
+				bp.BreakIfConditionChanges = conditionalHitType.SelectedItem.Equals (ConditionalHitWhen.ExpressionChanges);
+			} else
+				bp.ConditionExpression = null;
+		}
+
+		void OnSave (object sender, EventArgs e)
+		{
+			bool isNew = false;
+			if (be == null) {
+				isNew = true;
+
+				if (stopOnFunction.Active)
+					be = new FunctionBreakpoint ("", "C#");
+				else if (stopOnLocation.Active)
+					be = new Breakpoint (entryLocationFile.Text, Int32.Parse (entryLocationLine.Text), Int32.Parse (entryLocationColumn.Text));
+				else if (stopOnException.Active)
+					be = new Catchpoint (entryExceptionType.Text);
+				else
+					return;
+			}
+
+			var fb = be as FunctionBreakpoint;
+			if (fb != null)
+				SaveFunctionBreakpoint (fb);
+
+			var bp = be as Breakpoint;
+			if (bp != null)
+				SaveBreakpoint (bp, isNew);
+
+			be.HitCountMode = (HitCountMode)ignoreHitType.SelectedItem;
+			be.HitCount = be.HitCountMode != HitCountMode.None ? (int)ignoreHitCount.Value : 0;
+
+			be.HitAction = HitAction.None;
+			if (checkPrintExpression.Active) {
+				be.HitAction |= HitAction.PrintExpression;
+				be.TraceExpression = entryPrintExpression.Text;
+			}
+			if (!checkResumeExecution.Active)
+				be.HitAction |= HitAction.Break;
+
+			be.CommitChanges ();
+		}
+
+		void OnUpdateControls (object sender, EventArgs e)
+		{
+			// Check which radio is selected.
+			hboxFunction.Sensitive = stopOnFunction.Active;
+			hboxLineColumn.Sensitive = stopOnLocation.Active;
+			hboxLocation.Sensitive = stopOnLocation.Active;
+			hboxException.Sensitive = stopOnException.Active;
+			// FIXME: Add support for not doing base add
+			//checkIncludeSubclass.Sensitive = stopOnException.Active;
+			hboxCondition.Sensitive = !stopOnException.Active;
+
+			// Check conditional
+			if (!String.IsNullOrEmpty (entryConditionalExpression.Text))
+				conditionalHitType.Show ();
+			else
+				conditionalHitType.Hide ();
+
+			// Check ignoring hit counts.
+			if (ignoreHitType.SelectedItem.Equals (HitCountMode.None))
+				ignoreHitCount.Hide ();
+			else
+				ignoreHitCount.Show ();
+
+			// Check printing an expression.
+			entryPrintExpression.Sensitive = checkPrintExpression.Active;
+			checkResumeExecution.Sensitive = checkPrintExpression.Active;
+			checkResumeExecution.Active &= checkPrintExpression.Active;
+
+			// And display warning icons
+			buttonOk.Sensitive = CheckValidity ();
+		}
+
+		void OnUpdateText (object sender, EventArgs e)
+		{
+			buttonOk.Sensitive = CheckValidity ();
+		}
+
+		bool CheckValidity ()
+		{
+			if (be is FunctionBreakpoint) {
+				string text = entryFunctionName.Text.Trim ();
+
+				if (stopOnFunction.Active) {
+					if (text.Length == 0) {
+						warningFunction.Show ();
+						warningFunction.TooltipText = GettextCatalog.GetString ("Function name not specified");
+						return false;
+					}
+
+					if (!TryParseFunction (text, out parsedFunction, out parsedParamTypes)) {
+						warningFunction.Show ();
+						warningFunction.TooltipText = GettextCatalog.GetString ("Invalid function syntax");
+						return false;
+					}
+				}
+			} else if (be is Breakpoint) {
+				if (!System.IO.File.Exists (entryLocationFile.Text)) {
+					warningLocation.Show ();
+					warningLocation.TooltipText = GettextCatalog.GetString ("File does not exist");
+					return false;
+				}
+
+				int val;
+				if (!Int32.TryParse (entryLocationLine.Text, out val)) {
+					warningLocation.Show ();
+					warningLocation.TooltipText = GettextCatalog.GetString ("Line is not a number");
+					return false;
+				}
+
+				if (!Int32.TryParse (entryLocationColumn.Text, out val)) {
+					warningLocation.Show ();
+					warningLocation.TooltipText = GettextCatalog.GetString ("Column is not a number");
+					return false;
+				}
+
+				if (stopOnLocation.Active) {
+					if (checkPrintExpression.Active && entryPrintExpression.Text.Length == 0) {
+						warningCondition.Show ();
+						warningCondition.TooltipText = GettextCatalog.GetString ("Trace expression not specified");
+						return false;
+					}
+				}
+			} else if (be is Catchpoint) {
+				if (!classes.Contains (entryExceptionType.Text)) {
+					warningException.Show ();
+					warningException.TooltipText = GettextCatalog.GetString ("Exception not identified");
+					return false;
+				}
+			}
+
+			warningFunction.Hide ();
+			warningLocation.Hide ();
+			warningException.Hide ();
+			warningCondition.Hide ();
+
+			return true;
+		}
+
+		static bool TryParseFunction (string signature, out string function, out string[] paramTypes)
+		{
+			int paramListStart = signature.IndexOf ('(');
+			int paramListEnd = signature.IndexOf (')');
+
+			if (paramListStart == -1 && paramListEnd == -1) {
+				function = signature;
+				paramTypes = null;
+				return true;
+			}
+
+			if (paramListEnd != signature.Length - 1) {
+				paramTypes = null;
+				function = null;
+				return false;
+			}
+
+			function = signature.Substring (0, paramListStart).Trim ();
+
+			paramListStart++;
+
+			if (!FunctionBreakpoint.TryParseParameters (signature, paramListStart, paramListEnd, out paramTypes)) {
+				paramTypes = null;
+				function = null;
+				return false;
+			}
+
+			return true;
+		}
+
+		void LoadExceptionList ()
+		{
+			classes.Add ("System.Exception");
+			if (IdeApp.ProjectOperations.CurrentSelectedProject != null) {
+				var dom = TypeSystemService.GetCompilation (IdeApp.ProjectOperations.CurrentSelectedProject);
+				foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ())
+					classes.Add (t.ReflectionName);
+			} else {
+				// no need to unload this assembly context, it's not cached.
+				var unresolvedAssembly = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(Uri).Assembly.Location);
+				var mscorlib = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(object).Assembly.Location);
+				if (unresolvedAssembly != null && mscorlib != null) {
+					var dom = new ICSharpCode.NRefactory.TypeSystem.Implementation.SimpleCompilation (unresolvedAssembly, mscorlib);
+					foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ())
+						classes.Add (t.ReflectionName);
+				}
+			}
+		}
+
+		public BreakEvent GetBreakEvent ()
+		{
+			return be;
+		}
+
+		void SetLayout ()
+		{
+			var vbox = new Xwt.VBox ();
+			vbox.MinHeight = 400;
+			vbox.MinWidth = 450;
+
+			vbox.PackStart (new Xwt.Label (GettextCatalog.GetString ("Pause program execution in the debugger")));
+
+			// Radio group
+			var vboxRadio = new Xwt.VBox {
+				MarginLeft = 12
+			};
+
+			// Function group
+			vboxRadio.PackStart (stopOnFunction);
+
+			hboxFunction = new Xwt.HBox {
+				MarginLeft = 12
+			};
+			hboxFunction.PackStart (new Xwt.Label (GettextCatalog.GetString ("Function:")));
+			hboxFunction.PackStart (entryFunctionName, true);
+			hboxFunction.PackEnd (warningFunction);
+
+			vboxRadio.PackStart (hboxFunction);
+
+			// Location group
+			vboxRadio.PackStart (stopOnLocation);
+
+			var vboxLocation = new Xwt.VBox {
+				MarginLeft = 12
+			};
+			hboxLocation = new Xwt.HBox ();
+			hboxLocation.PackStart (new Xwt.Label (GettextCatalog.GetString ("Location:")));
+			hboxLocation.PackStart (entryLocationFile, true);
+			hboxLocation.PackEnd (warningLocation);
+			vboxLocation.PackStart (hboxLocation);
+
+			hboxLineColumn = new Xwt.HBox ();
+			hboxLineColumn.PackStart (new Xwt.Label (GettextCatalog.GetString ("Line:")));
+			hboxLineColumn.PackStart (entryLocationLine);
+			hboxLineColumn.PackStart (new Xwt.Label (GettextCatalog.GetString ("Column:")));
+			hboxLineColumn.PackStart (entryLocationColumn);
+			vboxLocation.PackStart (hboxLineColumn);
+
+			vboxRadio.PackStart (vboxLocation);
+
+			// Exception group
+			vboxRadio.PackStart (stopOnException);
+
+			var vboxException = new Xwt.VBox {
+				MarginLeft = 12
+			};
+			hboxException = new Xwt.HBox ();
+			hboxException.PackStart (new Xwt.Label (GettextCatalog.GetString ("Type:")));
+			hboxException.PackStart (entryExceptionType, true);
+			hboxException.PackEnd (warningException);
+
+			vboxException.PackStart (hboxException);
+			vboxException.PackStart (checkIncludeSubclass);
+			vboxRadio.PackStart (vboxException);
+
+			vbox.PackStart (vboxRadio);
+
+			hboxCondition = new Xwt.HBox ();
+			hboxCondition.PackStart (new Xwt.Label (GettextCatalog.GetString ("Condition:")));
+			hboxCondition.PackStart (entryConditionalExpression, true);
+			hboxCondition.PackEnd (warningCondition);
+			hboxCondition.PackEnd (conditionalHitType);
+
+			vbox.PackStart (hboxCondition);
+
+			var hboxHitCount = new Xwt.HBox ();
+			hboxHitCount.PackStart (new Xwt.Label (GettextCatalog.GetString ("When hit break")));
+			hboxHitCount.PackStart (ignoreHitType);
+			hboxHitCount.PackStart (ignoreHitCount);
+
+			vbox.PackStart (hboxHitCount);
+
+			vbox.PackStart (checkPrintExpression);
+			var vboxExpression = new Xwt.VBox {
+				MarginLeft = 12
+			};
+			vboxExpression.PackStart (entryPrintExpression);
+			vboxExpression.PackStart (checkResumeExecution);
+
+			vbox.PackStart (vboxExpression);
+
+			Buttons.Add (new Xwt.DialogButton (Xwt.Command.Cancel));
+			Buttons.Add (buttonOk);
+
+			Content = vbox;
+
+			OnUpdateControls (null, null);
+		}
+	}
+}
\ No newline at end of file

Removed: main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog2.cs
===================================================================
@@ -1,544 +0,0 @@
-//
-// BreakpointsPropertiesDialog.cs
-//
-// Author:
-//       Therzok <[email protected]>
-//
-// Copyright (c) 2013 Therzok
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-using System;
-using Mono.Debugging.Client;
-using MonoDevelop.Core;
-using MonoDevelop.Projects;
-using MonoDevelop.Ide;
-using System.Collections.Generic;
-using MonoDevelop.Ide.TypeSystem;
-using ICSharpCode.NRefactory.TypeSystem;
-using System.Linq;
-
-namespace MonoDevelop.Debugger
-{
-	enum ConditionalHitWhen
-	{
-		ConditionIsTrue,
-		ExpressionChanges
-	}
-
-	sealed class BreakpointPropertiesDialog2 : Xwt.Dialog
-	{
-		// For button sensitivity.
-		Xwt.DialogButton buttonOk;
-
-		// Groupings for sensitivity
-		Xwt.HBox hboxFunction = new Xwt.HBox ();
-		Xwt.HBox hboxLocation = new Xwt.HBox ();
-		Xwt.HBox hboxLineColumn = new Xwt.HBox ();
-		Xwt.HBox hboxException = new Xwt.HBox ();
-		Xwt.HBox hboxCondition = new Xwt.HBox ();
-
-		// Stop-type radios.
-		readonly Xwt.RadioButton stopOnFunction = new Xwt.RadioButton (GettextCatalog.GetString ("When a function is entered"));
-		readonly Xwt.RadioButton stopOnLocation = new Xwt.RadioButton (GettextCatalog.GetString ("When a location is reached"));
-		readonly Xwt.RadioButton stopOnException = new Xwt.RadioButton (GettextCatalog.GetString ("When an exception is thrown"));
-
-		// Text entries
-		readonly Xwt.TextEntry entryFunctionName = new Xwt.TextEntry ();
-		readonly Xwt.TextEntry entryLocationFile = new Xwt.TextEntry ();
-		readonly Xwt.TextEntry entryLocationLine = new Xwt.TextEntry ();
-		readonly Xwt.TextEntry entryLocationColumn = new Xwt.TextEntry ();
-		readonly Xwt.TextEntry entryExceptionType = new Xwt.TextEntry ();
-		readonly Xwt.TextEntry entryConditionalExpression = new Xwt.TextEntry ();
-		readonly Xwt.TextEntry entryPrintExpression = new Xwt.TextEntry ();
-
-		// Warning icon
-		readonly Xwt.ImageView warningFunction = new Xwt.ImageView (Xwt.StockIcons.Warning);
-		readonly Xwt.ImageView warningLocation = new Xwt.ImageView (Xwt.StockIcons.Warning);
-		readonly Xwt.ImageView warningException = new Xwt.ImageView (Xwt.StockIcons.Warning);
-		readonly Xwt.ImageView warningCondition = new Xwt.ImageView (Xwt.StockIcons.Warning);
-
-		// Combobox + Pager
-		readonly Xwt.SpinButton ignoreHitCount = new Xwt.SpinButton ();
-		readonly Xwt.ComboBox ignoreHitType = new Xwt.ComboBox ();
-		readonly Xwt.ComboBox conditionalHitType = new Xwt.ComboBox ();
-
-		// Optional checkboxes.
-		readonly Xwt.CheckBox checkIncludeSubclass = new Xwt.CheckBox (GettextCatalog.GetString ("Include subclasses"));
-		readonly Xwt.CheckBox checkPrintExpression = new Xwt.CheckBox (GettextCatalog.GetString ("Print an expression to the debugger output"));
-		readonly Xwt.CheckBox checkResumeExecution = new Xwt.CheckBox (GettextCatalog.GetString ("Resume execution automatically"));
-
-		BreakEvent be;
-		string[] parsedParamTypes;
-		string parsedFunction;
-		readonly HashSet<string> classes = new HashSet<string> ();
-
-		public BreakpointPropertiesDialog2 (BreakEvent be)
-		{
-			this.be = be;
-
-			LoadExceptionList ();
-			Initialize ();
-			SetInitialData ();
-			SetLayout ();
-		}
-
-		void Initialize ()
-		{
-			Title = GettextCatalog.GetString (be == null ? "New Breakpoint" : "Breakpoint Properties");
-			var buttonLabel = GettextCatalog.GetString (be == null ? "Add breakpoint" : "Modify breakpoint");
-
-			var stopGroup = new Xwt.RadioButtonGroup ();
-			stopOnFunction.Group = stopGroup;
-			stopOnLocation.Group = stopGroup;
-			stopOnException.Group = stopGroup;
-
-			ignoreHitType.Items.Add (HitCountMode.None, GettextCatalog.GetString ("always"));
-			ignoreHitType.Items.Add (HitCountMode.LessThan, GettextCatalog.GetString ("when hit count is less than"));
-			ignoreHitType.Items.Add (HitCountMode.LessThanOrEqualTo, GettextCatalog.GetString ("when hit count is less than or equal to"));
-			ignoreHitType.Items.Add (HitCountMode.EqualTo, GettextCatalog.GetString ("when hit count is equal to"));
-			ignoreHitType.Items.Add (HitCountMode.GreaterThan, GettextCatalog.GetString ("when hit count is greater than"));
-			ignoreHitType.Items.Add (HitCountMode.GreaterThanOrEqualTo, GettextCatalog.GetString ("when hit count is greater than or equal to"));
-			ignoreHitType.Items.Add (HitCountMode.MultipleOf, GettextCatalog.GetString ("when hit count is a multiple of"));
-
-			ignoreHitCount.IncrementValue = 1;
-
-			conditionalHitType.Items.Add (ConditionalHitWhen.ConditionIsTrue, GettextCatalog.GetString ("is true"));
-			conditionalHitType.Items.Add (ConditionalHitWhen.ExpressionChanges, GettextCatalog.GetString ("expression changes"));
-
-			buttonOk = new Xwt.DialogButton (buttonLabel, Xwt.Command.Ok) {
-				Sensitive = false
-			};
-
-			// Register events.
-			stopGroup.ActiveRadioButtonChanged += OnUpdateControls;
-			entryFunctionName.Changed += OnUpdateControls;
-			entryLocationFile.Changed += OnUpdateControls;
-			entryLocationLine.Changed += OnUpdateControls;
-			entryLocationColumn.Changed += OnUpdateControls;
-
-			entryConditionalExpression.Changed += OnUpdateControls;
-			ignoreHitType.SelectionChanged += OnUpdateControls;
-			checkPrintExpression.Toggled += OnUpdateControls;
-
-			entryFunctionName.Changed += OnUpdateText;
-			entryLocationFile.Changed += OnUpdateText;
-			entryExceptionType.Changed += OnUpdateText;
-			entryPrintExpression.Changed += OnUpdateText;
-
-			buttonOk.Clicked += OnSave;
-		}
-
-		void SetInitialFunctionBreakpointData (FunctionBreakpoint fb)
-		{
-			stopOnFunction.Active = true;
-			if (fb.ParamTypes != null) {
-				// FIXME: support non-C# syntax based on fb.Language
-				entryFunctionName.Text = fb.FunctionName + " (" + String.Join (", ", fb.ParamTypes) + ")";
-			} else
-				entryFunctionName.Text = fb.FunctionName;
-		}
-
-		void SetInitialBreakpointData (Breakpoint bp)
-		{
-			stopOnLocation.Active = true;
-			entryLocationFile.Text = bp.FileName;
-			entryLocationLine.Text = bp.Line.ToString ();
-			entryLocationColumn.Text = bp.Column.ToString ();
-
-			if (!String.IsNullOrEmpty (bp.ConditionExpression)) {
-				entryConditionalExpression.Text = bp.ConditionExpression;
-				conditionalHitType.SelectedItem = bp.BreakIfConditionChanges ? ConditionalHitWhen.ExpressionChanges : ConditionalHitWhen.ConditionIsTrue;
-			}
-
-			Project project = null;
-			if (!String.IsNullOrEmpty (bp.FileName))
-				project = IdeApp.Workspace.GetProjectContainingFile (bp.FileName);
-
-			if (project != null) {
-				// Check the startup project of the solution too, since the current project may be a library
-				SolutionEntityItem startup = project.ParentSolution.StartupItem;
-				entryConditionalExpression.Sensitive = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.ConditionalBreakpoints) ||
-				                                       DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.ConditionalBreakpoints);
-
-				bool canTrace = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.Tracepoints) ||
-				                DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.Tracepoints);
-
-				checkPrintExpression.Sensitive = canTrace;
-				entryPrintExpression.Sensitive = canTrace;
-			}
-		}
-
-		void SetInitialCatchpointData (Catchpoint cp)
-		{
-			entryExceptionType.Text = cp.ExceptionName;
-		}
-
-		void SetInitialData ()
-		{
-			// FIXME: Add support for not doing base add
-			checkIncludeSubclass.Active = true;
-			checkIncludeSubclass.Sensitive = false;
-
-			if (be != null) {
-				stopOnException.Sensitive = false;
-				stopOnFunction.Sensitive = false;
-				stopOnLocation.Sensitive = false;
-				entryLocationFile.ReadOnly = true;
-				entryLocationLine.ReadOnly = true;
-				entryLocationColumn.ReadOnly = true;
-				entryExceptionType.ReadOnly = true;
-
-				ignoreHitType.SelectedItem = be.HitCountMode;
-				ignoreHitCount.Value = be.HitCount;
-
-				if ((be.HitAction & HitAction.PrintExpression) != HitAction.None) {
-					checkPrintExpression.Active = true;
-					entryPrintExpression.Text = be.TraceExpression;
-				}
-				checkResumeExecution.Active |= (be.HitAction & HitAction.Break) == HitAction.None;
-			} else {
-				ignoreHitType.SelectedItem = HitCountMode.None;
-				conditionalHitType.SelectedItem = ConditionalHitWhen.ConditionIsTrue;
-
-				if (IdeApp.Workbench.ActiveDocument != null) {
-					entryLocationFile.Text = IdeApp.Workbench.ActiveDocument.FileName;
-					entryLocationLine.Text = IdeApp.Workbench.ActiveDocument.Editor.Caret.Line.ToString ();
-					entryLocationColumn.Text = IdeApp.Workbench.ActiveDocument.Editor.Caret.Column.ToString ();
-				}
-			}
-
-			var fb = be as FunctionBreakpoint;
-			if (fb != null)
-				SetInitialFunctionBreakpointData (fb);
-
-			var bp = be as Breakpoint;
-			if (bp != null)
-				SetInitialBreakpointData (bp);
-
-			var cp = be as Catchpoint;
-			if (cp != null)
-				SetInitialCatchpointData (cp);
-		}
-
-		void SaveFunctionBreakpoint (FunctionBreakpoint fb)
-		{
-			fb.FunctionName = parsedFunction;
-			fb.ParamTypes = parsedParamTypes;
-		}
-
-		void SaveBreakpoint (Breakpoint bp, bool isNew)
-		{
-			if (isNew) {
-				bp.SetColumn (Int32.Parse (entryLocationColumn.Text));
-				bp.SetLine (Int32.Parse (entryLocationLine.Text));
-			}
-
-			if (!String.IsNullOrEmpty (entryConditionalExpression.Text)) {
-				bp.ConditionExpression = entryConditionalExpression.Text;
-				bp.BreakIfConditionChanges = conditionalHitType.SelectedItem.Equals (ConditionalHitWhen.ExpressionChanges);
-			} else
-				bp.ConditionExpression = null;
-		}
-
-		void OnSave (object sender, EventArgs e)
-		{
-			bool isNew = false;
-			if (be == null) {
-				isNew = true;
-
-				if (stopOnFunction.Active)
-					be = new FunctionBreakpoint ("", "C#");
-				else if (stopOnLocation.Active)
-					be = new Breakpoint (entryLocationFile.Text, Int32.Parse (entryLocationLine.Text), Int32.Parse (entryLocationColumn.Text));
-				else if (stopOnException.Active)
-					be = new Catchpoint (entryExceptionType.Text);
-				else
-					return;
-			}
-
-			var fb = be as FunctionBreakpoint;
-			if (fb != null)
-				SaveFunctionBreakpoint (fb);
-
-			var bp = be as Breakpoint;
-			if (bp != null)
-				SaveBreakpoint (bp, isNew);
-
-			be.HitCountMode = (HitCountMode)ignoreHitType.SelectedItem;
-			be.HitCount = be.HitCountMode != HitCountMode.None ? (int)ignoreHitCount.Value : 0;
-
-			be.HitAction = HitAction.None;
-			if (checkPrintExpression.Active) {
-				be.HitAction |= HitAction.PrintExpression;
-				be.TraceExpression = entryPrintExpression.Text;
-			}
-			if (!checkResumeExecution.Active)
-				be.HitAction |= HitAction.Break;
-
-			be.CommitChanges ();
-		}
-
-		void OnUpdateControls (object sender, EventArgs e)
-		{
-			// Check which radio is selected.
-			hboxFunction.Sensitive = stopOnFunction.Active;
-			hboxLineColumn.Sensitive = stopOnLocation.Active;
-			hboxLocation.Sensitive = stopOnLocation.Active;
-			hboxException.Sensitive = stopOnException.Active;
-			// FIXME: Add support for not doing base add
-			//checkIncludeSubclass.Sensitive = stopOnException.Active;
-			hboxCondition.Sensitive = !stopOnException.Active;
-
-			// Check conditional
-			if (!String.IsNullOrEmpty (entryConditionalExpression.Text))
-				conditionalHitType.Show ();
-			else
-				conditionalHitType.Hide ();
-
-			// Check ignoring hit counts.
-			if (ignoreHitType.SelectedItem.Equals (HitCountMode.None))
-				ignoreHitCount.Hide ();
-			else
-				ignoreHitCount.Show ();
-
-			// Check printing an expression.
-			entryPrintExpression.Sensitive = checkPrintExpression.Active;
-			checkResumeExecution.Sensitive = checkPrintExpression.Active;
-			checkResumeExecution.Active &= checkPrintExpression.Active;
-
-			// And display warning icons
-			buttonOk.Sensitive = CheckValidity ();
-		}
-
-		void OnUpdateText (object sender, EventArgs e)
-		{
-			buttonOk.Sensitive = CheckValidity ();
-		}
-
-		bool CheckValidity ()
-		{
-			if (be is FunctionBreakpoint) {
-				string text = entryFunctionName.Text.Trim ();
-
-				if (stopOnFunction.Active) {
-					if (text.Length == 0) {
-						warningFunction.Show ();
-						warningFunction.TooltipText = GettextCatalog.GetString ("Function name not specified");
-						return false;
-					}
-
-					if (!TryParseFunction (text, out parsedFunction, out parsedParamTypes)) {
-						warningFunction.Show ();
-						warningFunction.TooltipText = GettextCatalog.GetString ("Invalid function syntax");
-						return false;
-					}
-				}
-			} else if (be is Breakpoint) {
-				if (!System.IO.File.Exists (entryLocationFile.Text)) {
-					warningLocation.Show ();
-					warningLocation.TooltipText = GettextCatalog.GetString ("File does not exist");
-					return false;
-				}
-
-				int val;
-				if (!Int32.TryParse (entryLocationLine.Text, out val)) {
-					warningLocation.Show ();
-					warningLocation.TooltipText = GettextCatalog.GetString ("Line is not a number");
-					return false;
-				}
-
-				if (!Int32.TryParse (entryLocationColumn.Text, out val)) {
-					warningLocation.Show ();
-					warningLocation.TooltipText = GettextCatalog.GetString ("Column is not a number");
-					return false;
-				}
-
-				if (stopOnLocation.Active) {
-					if (checkPrintExpression.Active && entryPrintExpression.Text.Length == 0) {
-						warningCondition.Show ();
-						warningCondition.TooltipText = GettextCatalog.GetString ("Trace expression not specified");
-						return false;
-					}
-				}
-			} else if (be is Catchpoint) {
-				if (!classes.Contains (entryExceptionType.Text)) {
-					warningException.Show ();
-					warningException.TooltipText = GettextCatalog.GetString ("Exception not identified");
-					return false;
-				}
-			}
-
-			warningFunction.Hide ();
-			warningLocation.Hide ();
-			warningException.Hide ();
-			warningCondition.Hide ();
-
-			return true;
-		}
-
-		static bool TryParseFunction (string signature, out string function, out string[] paramTypes)
-		{
-			int paramListStart = signature.IndexOf ('(');
-			int paramListEnd = signature.IndexOf (')');
-
-			if (paramListStart == -1 && paramListEnd == -1) {
-				function = signature;
-				paramTypes = null;
-				return true;
-			}
-
-			if (paramListEnd != signature.Length - 1) {
-				paramTypes = null;
-				function = null;
-				return false;
-			}
-
-			function = signature.Substring (0, paramListStart).Trim ();
-
-			paramListStart++;
-
-			if (!FunctionBreakpoint.TryParseParameters (signature, paramListStart, paramListEnd, out paramTypes)) {
-				paramTypes = null;
-				function = null;
-				return false;
-			}
-
-			return true;
-		}
-
-		void LoadExceptionList ()
-		{
-			classes.Add ("System.Exception");
-			if (IdeApp.ProjectOperations.CurrentSelectedProject != null) {
-				var dom = TypeSystemService.GetCompilation (IdeApp.ProjectOperations.CurrentSelectedProject);
-				foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ())
-					classes.Add (t.ReflectionName);
-			} else {
-				// no need to unload this assembly context, it's not cached.
-				var unresolvedAssembly = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(Uri).Assembly.Location);
-				var mscorlib = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(object).Assembly.Location);
-				if (unresolvedAssembly != null && mscorlib != null) {
-					var dom = new ICSharpCode.NRefactory.TypeSystem.Implementation.SimpleCompilation (unresolvedAssembly, mscorlib);
-					foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ())
-						classes.Add (t.ReflectionName);
-				}
-			}
-		}
-
-		public BreakEvent GetBreakEvent ()
-		{
-			return be;
-		}
-
-		void SetLayout ()
-		{
-			var vbox = new Xwt.VBox ();
-			vbox.MinHeight = 400;
-			vbox.MinWidth = 450;
-
-			vbox.PackStart (new Xwt.Label (GettextCatalog.GetString ("Pause program execution in the debugger")));
-
-			// Radio group
-			var vboxRadio = new Xwt.VBox {
-				MarginLeft = 12
-			};
-
-			// Function group
-			vboxRadio.PackStart (stopOnFunction);
-
-			hboxFunction = new Xwt.HBox {
-				MarginLeft = 12
-			};
-			hboxFunction.PackStart (new Xwt.Label (GettextCatalog.GetString ("Function:")));
-			hboxFunction.PackStart (entryFunctionName, true);
-			hboxFunction.PackEnd (warningFunction);
-
-			vboxRadio.PackStart (hboxFunction);
-
-			// Location group
-			vboxRadio.PackStart (stopOnLocation);
-
-			var vboxLocation = new Xwt.VBox {
-				MarginLeft = 12
-			};
-			hboxLocation = new Xwt.HBox ();
-			hboxLocation.PackStart (new Xwt.Label (GettextCatalog.GetString ("Location:")));
-			hboxLocation.PackStart (entryLocationFile, true);
-			hboxLocation.PackEnd (warningLocation);
-			vboxLocation.PackStart (hboxLocation);
-
-			hboxLineColumn = new Xwt.HBox ();
-			hboxLineColumn.PackStart (new Xwt.Label (GettextCatalog.GetString ("Line:")));
-			hboxLineColumn.PackStart (entryLocationLine);
-			hboxLineColumn.PackStart (new Xwt.Label (GettextCatalog.GetString ("Column:")));
-			hboxLineColumn.PackStart (entryLocationColumn);
-			vboxLocation.PackStart (hboxLineColumn);
-
-			vboxRadio.PackStart (vboxLocation);
-
-			// Exception group
-			vboxRadio.PackStart (stopOnException);
-
-			var vboxException = new Xwt.VBox {
-				MarginLeft = 12
-			};
-			hboxException = new Xwt.HBox ();
-			hboxException.PackStart (new Xwt.Label (GettextCatalog.GetString ("Type:")));
-			hboxException.PackStart (entryExceptionType, true);
-			hboxException.PackEnd (warningException);
-
-			vboxException.PackStart (hboxException);
-			vboxException.PackStart (checkIncludeSubclass);
-			vboxRadio.PackStart (vboxException);
-
-			vbox.PackStart (vboxRadio);
-
-			hboxCondition = new Xwt.HBox ();
-			hboxCondition.PackStart (new Xwt.Label (GettextCatalog.GetString ("Condition:")));
-			hboxCondition.PackStart (entryConditionalExpression, true);
-			hboxCondition.PackEnd (warningCondition);
-			hboxCondition.PackEnd (conditionalHitType);
-
-			vbox.PackStart (hboxCondition);
-
-			var hboxHitCount = new Xwt.HBox ();
-			hboxHitCount.PackStart (new Xwt.Label (GettextCatalog.GetString ("When hit break")));
-			hboxHitCount.PackStart (ignoreHitType);
-			hboxHitCount.PackStart (ignoreHitCount);
-
-			vbox.PackStart (hboxHitCount);
-
-			vbox.PackStart (checkPrintExpression);
-			var vboxExpression = new Xwt.VBox {
-				MarginLeft = 12
-			};
-			vboxExpression.PackStart (entryPrintExpression);
-			vboxExpression.PackStart (checkResumeExecution);
-
-			vbox.PackStart (vboxExpression);
-
-			Buttons.Add (new Xwt.DialogButton (Xwt.Command.Cancel));
-			Buttons.Add (buttonOk);
-
-			Content = vbox;
-
-			OnUpdateControls (null, null);
-		}
-	}
-}
\ No newline at end of file

Removed: main/src/addins/MonoDevelop.Debugger/gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs
===================================================================
@@ -1,486 +0,0 @@
-
-// This file has been generated by the GUI designer. Do not modify.
-namespace MonoDevelop.Debugger
-{
-	public partial class BreakpointPropertiesDialog
-	{
-		private global::Gtk.VBox vboxProperties;
-		private global::Gtk.Label label1;
-		private global::Gtk.Alignment alignLocation;
-		private global::Gtk.Table tableLocation;
-		private global::Gtk.Entry entryFileFunction;
-		private global::Gtk.HBox hboxLineColumn;
-		private global::Gtk.SpinButton spinLine;
-		private global::Gtk.HBox hboxColumn;
-		private global::Gtk.Label label9;
-		private global::Gtk.SpinButton spinColumn;
-		private global::Gtk.Label labelFileFunction;
-		private global::Gtk.Label labelLine;
-		private global::Gtk.Label label2;
-		private global::Gtk.Alignment alignCondition;
-		private global::Gtk.VBox vboxConditionOptions;
-		private global::Gtk.RadioButton radioBreakAlways;
-		private global::Gtk.RadioButton radioBreakWhenTrue;
-		private global::Gtk.RadioButton radioBreakWhenChanges;
-		private global::Gtk.Alignment alignConditionExpression;
-		private global::Gtk.HBox hboxConditionExpression;
-		private global::Gtk.Label labelConditionExpression;
-		private global::Gtk.Entry entryCondition;
-		private global::Gtk.Label labelHitCount;
-		private global::Gtk.Alignment alignHitCount;
-		private global::Gtk.VBox vboxHitCount;
-		private global::Gtk.Label labelWhenHit;
-		private global::Gtk.HBox hbox1;
-		private global::Gtk.ComboBox comboHitCountMode;
-		private global::Gtk.SpinButton spinHitCount;
-		private global::Gtk.Label label3;
-		private global::Gtk.Alignment alignAction;
-		private global::Gtk.VBox vboxAction;
-		private global::Gtk.Label label11;
-		private global::Gtk.RadioButton radioActionBreak;
-		private global::Gtk.RadioButton radioActionTrace;
-		private global::Gtk.Alignment alignTraceExpression;
-		private global::Gtk.HBox boxTraceExpression;
-		private global::Gtk.Label labelTraceExpression;
-		private global::Gtk.Entry entryTraceExpression;
-		private global::Gtk.Button buttonCancel;
-		private global::Gtk.Button buttonOk;
-		
-		protected virtual void Build ()
-		{
-			global::Stetic.Gui.Initialize (this);
-			// Widget MonoDevelop.Debugger.BreakpointPropertiesDialog
-			this.Name = "MonoDevelop.Debugger.BreakpointPropertiesDialog";
-			this.Title = global::Mono.Unix.Catalog.GetString ("Breakpoint Properties");
-			this.WindowPosition = ((global::Gtk.WindowPosition)(4));
-			this.Modal = true;
-			// Internal child MonoDevelop.Debugger.BreakpointPropertiesDialog.VBox
-			global::Gtk.VBox w1 = this.VBox;
-			w1.Name = "dialog1_VBox";
-			w1.BorderWidth = ((uint)(2));
-			// Container child dialog1_VBox.Gtk.Box+BoxChild
-			this.vboxProperties = new global::Gtk.VBox ();
-			this.vboxProperties.Name = "vboxProperties";
-			this.vboxProperties.Spacing = 6;
-			this.vboxProperties.BorderWidth = ((uint)(9));
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.label1 = new global::Gtk.Label ();
-			this.label1.Name = "label1";
-			this.label1.Xalign = 0F;
-			this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Location</b>");
-			this.label1.UseMarkup = true;
-			this.vboxProperties.Add (this.label1);
-			global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.label1]));
-			w2.Position = 0;
-			w2.Expand = false;
-			w2.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.alignLocation = new global::Gtk.Alignment (0F, 0.5F, 1F, 1F);
-			this.alignLocation.Name = "alignLocation";
-			this.alignLocation.LeftPadding = ((uint)(18));
-			// Container child alignLocation.Gtk.Container+ContainerChild
-			this.tableLocation = new global::Gtk.Table (((uint)(2)), ((uint)(2)), false);
-			this.tableLocation.Name = "tableLocation";
-			this.tableLocation.RowSpacing = ((uint)(6));
-			this.tableLocation.ColumnSpacing = ((uint)(6));
-			// Container child tableLocation.Gtk.Table+TableChild
-			this.entryFileFunction = new global::Gtk.Entry ();
-			this.entryFileFunction.CanFocus = true;
-			this.entryFileFunction.Name = "entryFileFunction";
-			this.entryFileFunction.IsEditable = true;
-			this.entryFileFunction.InvisibleChar = '●';
-			this.tableLocation.Add (this.entryFileFunction);
-			global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.tableLocation [this.entryFileFunction]));
-			w3.LeftAttach = ((uint)(1));
-			w3.RightAttach = ((uint)(2));
-			w3.YOptions = ((global::Gtk.AttachOptions)(4));
-			// Container child tableLocation.Gtk.Table+TableChild
-			this.hboxLineColumn = new global::Gtk.HBox ();
-			this.hboxLineColumn.Name = "hboxLineColumn";
-			this.hboxLineColumn.Spacing = 6;
-			// Container child hboxLineColumn.Gtk.Box+BoxChild
-			this.spinLine = new global::Gtk.SpinButton (1, 100, 1);
-			this.spinLine.CanFocus = true;
-			this.spinLine.Name = "spinLine";
-			this.spinLine.Adjustment.PageIncrement = 10;
-			this.spinLine.ClimbRate = 1;
-			this.spinLine.Numeric = true;
-			this.spinLine.Value = 1;
-			this.hboxLineColumn.Add (this.spinLine);
-			global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hboxLineColumn [this.spinLine]));
-			w4.Position = 0;
-			w4.Expand = false;
-			w4.Fill = false;
-			// Container child hboxLineColumn.Gtk.Box+BoxChild
-			this.hboxColumn = new global::Gtk.HBox ();
-			this.hboxColumn.Name = "hboxColumn";
-			this.hboxColumn.Spacing = 6;
-			// Container child hboxColumn.Gtk.Box+BoxChild
-			this.label9 = new global::Gtk.Label ();
-			this.label9.Name = "label9";
-			this.label9.LabelProp = global::Mono.Unix.Catalog.GetString ("Column:");
-			this.label9.Justify = ((global::Gtk.Justification)(1));
-			this.hboxColumn.Add (this.label9);
-			global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hboxColumn [this.label9]));
-			w5.Position = 0;
-			w5.Expand = false;
-			w5.Fill = false;
-			// Container child hboxColumn.Gtk.Box+BoxChild
-			this.spinColumn = new global::Gtk.SpinButton (1, 100, 1);
-			this.spinColumn.CanFocus = true;
-			this.spinColumn.Name = "spinColumn";
-			this.spinColumn.Adjustment.PageIncrement = 10;
-			this.spinColumn.ClimbRate = 1;
-			this.spinColumn.Numeric = true;
-			this.hboxColumn.Add (this.spinColumn);
-			global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hboxColumn [this.spinColumn]));
-			w6.Position = 1;
-			w6.Expand = false;
-			w6.Fill = false;
-			this.hboxLineColumn.Add (this.hboxColumn);
-			global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hboxLineColumn [this.hboxColumn]));
-			w7.Position = 1;
-			w7.Expand = false;
-			w7.Fill = false;
-			this.tableLocation.Add (this.hboxLineColumn);
-			global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.tableLocation [this.hboxLineColumn]));
-			w8.TopAttach = ((uint)(1));
-			w8.BottomAttach = ((uint)(2));
-			w8.LeftAttach = ((uint)(1));
-			w8.RightAttach = ((uint)(2));
-			w8.XOptions = ((global::Gtk.AttachOptions)(4));
-			w8.YOptions = ((global::Gtk.AttachOptions)(4));
-			// Container child tableLocation.Gtk.Table+TableChild
-			this.labelFileFunction = new global::Gtk.Label ();
-			this.labelFileFunction.Name = "labelFileFunction";
-			this.labelFileFunction.Xalign = 0F;
-			this.labelFileFunction.LabelProp = global::Mono.Unix.Catalog.GetString ("File:");
-			this.tableLocation.Add (this.labelFileFunction);
-			global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.tableLocation [this.labelFileFunction]));
-			w9.XOptions = ((global::Gtk.AttachOptions)(4));
-			w9.YOptions = ((global::Gtk.AttachOptions)(4));
-			// Container child tableLocation.Gtk.Table+TableChild
-			this.labelLine = new global::Gtk.Label ();
-			this.labelLine.Name = "labelLine";
-			this.labelLine.LabelProp = global::Mono.Unix.Catalog.GetString ("Line:");
-			this.tableLocation.Add (this.labelLine);
-			global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.tableLocation [this.labelLine]));
-			w10.TopAttach = ((uint)(1));
-			w10.BottomAttach = ((uint)(2));
-			w10.XOptions = ((global::Gtk.AttachOptions)(4));
-			w10.YOptions = ((global::Gtk.AttachOptions)(4));
-			this.alignLocation.Add (this.tableLocation);
-			this.vboxProperties.Add (this.alignLocation);
-			global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.alignLocation]));
-			w12.Position = 1;
-			w12.Expand = false;
-			w12.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.label2 = new global::Gtk.Label ();
-			this.label2.Name = "label2";
-			this.label2.Xalign = 0F;
-			this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Condition</b>");
-			this.label2.UseMarkup = true;
-			this.vboxProperties.Add (this.label2);
-			global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.label2]));
-			w13.Position = 2;
-			w13.Expand = false;
-			w13.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.alignCondition = new global::Gtk.Alignment (0F, 0.5F, 1F, 1F);
-			this.alignCondition.Name = "alignCondition";
-			this.alignCondition.LeftPadding = ((uint)(18));
-			// Container child alignCondition.Gtk.Container+ContainerChild
-			this.vboxConditionOptions = new global::Gtk.VBox ();
-			this.vboxConditionOptions.Name = "vboxConditionOptions";
-			this.vboxConditionOptions.Spacing = 6;
-			// Container child vboxConditionOptions.Gtk.Box+BoxChild
-			this.radioBreakAlways = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Always break"));
-			this.radioBreakAlways.CanFocus = true;
-			this.radioBreakAlways.Name = "radioBreakAlways";
-			this.radioBreakAlways.DrawIndicator = true;
-			this.radioBreakAlways.UseUnderline = true;
-			this.radioBreakAlways.Group = new global::GLib.SList (global::System.IntPtr.Zero);
-			this.vboxConditionOptions.Add (this.radioBreakAlways);
-			global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vboxConditionOptions [this.radioBreakAlways]));
-			w14.Position = 0;
-			w14.Expand = false;
-			w14.Fill = false;
-			// Container child vboxConditionOptions.Gtk.Box+BoxChild
-			this.radioBreakWhenTrue = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Break when condition is true"));
-			this.radioBreakWhenTrue.CanFocus = true;
-			this.radioBreakWhenTrue.Name = "radioBreakWhenTrue";
-			this.radioBreakWhenTrue.DrawIndicator = true;
-			this.radioBreakWhenTrue.UseUnderline = true;
-			this.radioBreakWhenTrue.Group = this.radioBreakAlways.Group;
-			this.vboxConditionOptions.Add (this.radioBreakWhenTrue);
-			global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vboxConditionOptions [this.radioBreakWhenTrue]));
-			w15.Position = 1;
-			w15.Expand = false;
-			w15.Fill = false;
-			// Container child vboxConditionOptions.Gtk.Box+BoxChild
-			this.radioBreakWhenChanges = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Break when the expression changes"));
-			this.radioBreakWhenChanges.CanFocus = true;
-			this.radioBreakWhenChanges.Name = "radioBreakWhenChanges";
-			this.radioBreakWhenChanges.DrawIndicator = true;
-			this.radioBreakWhenChanges.UseUnderline = true;
-			this.radioBreakWhenChanges.Group = this.radioBreakAlways.Group;
-			this.vboxConditionOptions.Add (this.radioBreakWhenChanges);
-			global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vboxConditionOptions [this.radioBreakWhenChanges]));
-			w16.Position = 2;
-			w16.Expand = false;
-			w16.Fill = false;
-			// Container child vboxConditionOptions.Gtk.Box+BoxChild
-			this.alignConditionExpression = new global::Gtk.Alignment (0F, 0.5F, 1F, 1F);
-			this.alignConditionExpression.Name = "alignConditionExpression";
-			this.alignConditionExpression.LeftPadding = ((uint)(18));
-			// Container child alignConditionExpression.Gtk.Container+ContainerChild
-			this.hboxConditionExpression = new global::Gtk.HBox ();
-			this.hboxConditionExpression.Name = "hboxConditionExpression";
-			this.hboxConditionExpression.Spacing = 6;
-			// Container child hboxConditionExpression.Gtk.Box+BoxChild
-			this.labelConditionExpression = new global::Gtk.Label ();
-			this.labelConditionExpression.Name = "labelConditionExpression";
-			this.labelConditionExpression.Xalign = 0F;
-			this.labelConditionExpression.LabelProp = global::Mono.Unix.Catalog.GetString ("Condition expression:");
-			this.hboxConditionExpression.Add (this.labelConditionExpression);
-			global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hboxConditionExpression [this.labelConditionExpression]));
-			w17.Position = 0;
-			w17.Expand = false;
-			w17.Fill = false;
-			// Container child hboxConditionExpression.Gtk.Box+BoxChild
-			this.entryCondition = new global::Gtk.Entry ();
-			this.entryCondition.CanFocus = true;
-			this.entryCondition.Name = "entryCondition";
-			this.entryCondition.IsEditable = true;
-			this.entryCondition.InvisibleChar = '●';
-			this.hboxConditionExpression.Add (this.entryCondition);
-			global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hboxConditionExpression [this.entryCondition]));
-			w18.Position = 1;
-			this.alignConditionExpression.Add (this.hboxConditionExpression);
-			this.vboxConditionOptions.Add (this.alignConditionExpression);
-			global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vboxConditionOptions [this.alignConditionExpression]));
-			w20.Position = 3;
-			w20.Expand = false;
-			w20.Fill = false;
-			this.alignCondition.Add (this.vboxConditionOptions);
-			this.vboxProperties.Add (this.alignCondition);
-			global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.alignCondition]));
-			w22.Position = 3;
-			w22.Expand = false;
-			w22.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.labelHitCount = new global::Gtk.Label ();
-			this.labelHitCount.Name = "labelHitCount";
-			this.labelHitCount.Xalign = 0F;
-			this.labelHitCount.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Hit Count</b>");
-			this.labelHitCount.UseMarkup = true;
-			this.vboxProperties.Add (this.labelHitCount);
-			global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.labelHitCount]));
-			w23.Position = 4;
-			w23.Expand = false;
-			w23.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.alignHitCount = new global::Gtk.Alignment (0F, 0.5F, 1F, 1F);
-			this.alignHitCount.Name = "alignHitCount";
-			this.alignHitCount.LeftPadding = ((uint)(18));
-			// Container child alignHitCount.Gtk.Container+ContainerChild
-			this.vboxHitCount = new global::Gtk.VBox ();
-			this.vboxHitCount.Name = "vboxHitCount";
-			this.vboxHitCount.Spacing = 6;
-			// Container child vboxHitCount.Gtk.Box+BoxChild
-			this.labelWhenHit = new global::Gtk.Label ();
-			this.labelWhenHit.Name = "labelWhenHit";
-			this.labelWhenHit.Xalign = 0F;
-			this.labelWhenHit.LabelProp = global::Mono.Unix.Catalog.GetString ("When the condition is hit:");
-			this.vboxHitCount.Add (this.labelWhenHit);
-			global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vboxHitCount [this.labelWhenHit]));
-			w24.Position = 0;
-			w24.Expand = false;
-			w24.Fill = false;
-			// Container child vboxHitCount.Gtk.Box+BoxChild
-			this.hbox1 = new global::Gtk.HBox ();
-			this.hbox1.Name = "hbox1";
-			this.hbox1.Spacing = 6;
-			// Container child hbox1.Gtk.Box+BoxChild
-			this.comboHitCountMode = global::Gtk.ComboBox.NewText ();
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Always break"));
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Break when the hit count is less than"));
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Break when the hit count is less than or equal to"));
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Break when the hit count is equal to"));
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Break when the hit count is greater than"));
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Break when the hit count is greater than or equal to"));
-			this.comboHitCountMode.AppendText (global::Mono.Unix.Catalog.GetString ("Break when the hit count is a multiple of"));
-			this.comboHitCountMode.Name = "comboHitCountMode";
-			this.comboHitCountMode.Active = 0;
-			this.hbox1.Add (this.comboHitCountMode);
-			global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.comboHitCountMode]));
-			w25.Position = 0;
-			w25.Expand = false;
-			w25.Fill = false;
-			// Container child hbox1.Gtk.Box+BoxChild
-			this.spinHitCount = new global::Gtk.SpinButton (0, 100000000, 1);
-			this.spinHitCount.CanFocus = true;
-			this.spinHitCount.Name = "spinHitCount";
-			this.spinHitCount.Adjustment.PageIncrement = 10;
-			this.spinHitCount.ClimbRate = 1;
-			this.spinHitCount.Numeric = true;
-			this.spinHitCount.Value = 1;
-			this.hbox1.Add (this.spinHitCount);
-			global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.spinHitCount]));
-			w26.Position = 1;
-			w26.Expand = false;
-			w26.Fill = false;
-			this.vboxHitCount.Add (this.hbox1);
-			global::Gtk.Box.BoxChild w27 = ((global::Gtk.Box.BoxChild)(this.vboxHitCount [this.hbox1]));
-			w27.Position = 1;
-			w27.Expand = false;
-			w27.Fill = false;
-			this.alignHitCount.Add (this.vboxHitCount);
-			this.vboxProperties.Add (this.alignHitCount);
-			global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.alignHitCount]));
-			w29.Position = 5;
-			w29.Expand = false;
-			w29.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.label3 = new global::Gtk.Label ();
-			this.label3.Name = "label3";
-			this.label3.Xalign = 0F;
-			this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Action</b>");
-			this.label3.UseMarkup = true;
-			this.vboxProperties.Add (this.label3);
-			global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.label3]));
-			w30.Position = 6;
-			w30.Expand = false;
-			w30.Fill = false;
-			// Container child vboxProperties.Gtk.Box+BoxChild
-			this.alignAction = new global::Gtk.Alignment (0F, 0.5F, 1F, 1F);
-			this.alignAction.Name = "alignAction";
-			this.alignAction.LeftPadding = ((uint)(18));
-			// Container child alignAction.Gtk.Container+ContainerChild
-			this.vboxAction = new global::Gtk.VBox ();
-			this.vboxAction.Name = "vboxAction";
-			this.vboxAction.Spacing = 6;
-			// Container child vboxAction.Gtk.Box+BoxChild
-			this.label11 = new global::Gtk.Label ();
-			this.label11.Name = "label11";
-			this.label11.Xalign = 0F;
-			this.label11.LabelProp = global::Mono.Unix.Catalog.GetString ("When the breakpoint is hit:");
-			this.vboxAction.Add (this.label11);
-			global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.vboxAction [this.label11]));
-			w31.Position = 0;
-			w31.Expand = false;
-			w31.Fill = false;
-			// Container child vboxAction.Gtk.Box+BoxChild
-			this.radioActionBreak = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Break"));
-			this.radioActionBreak.CanFocus = true;
-			this.radioActionBreak.Name = "radioActionBreak";
-			this.radioActionBreak.DrawIndicator = true;
-			this.radioActionBreak.UseUnderline = true;
-			this.radioActionBreak.Group = new global::GLib.SList (global::System.IntPtr.Zero);
-			this.vboxAction.Add (this.radioActionBreak);
-			global::Gtk.Box.BoxChild w32 = ((global::Gtk.Box.BoxChild)(this.vboxAction [this.radioActionBreak]));
-			w32.Position = 1;
-			w32.Expand = false;
-			w32.Fill = false;
-			// Container child vboxAction.Gtk.Box+BoxChild
-			this.radioActionTrace = new global::Gtk.RadioButton (global::Mono.Unix.Catalog.GetString ("Write expression to the output"));
-			this.radioActionTrace.CanFocus = true;
-			this.radioActionTrace.Name = "radioActionTrace";
-			this.radioActionTrace.DrawIndicator = true;
-			this.radioActionTrace.UseUnderline = true;
-			this.radioActionTrace.Group = this.radioActionBreak.Group;
-			this.vboxAction.Add (this.radioActionTrace);
-			global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.vboxAction [this.radioActionTrace]));
-			w33.Position = 2;
-			w33.Expand = false;
-			w33.Fill = false;
-			// Container child vboxAction.Gtk.Box+BoxChild
-			this.alignTraceExpression = new global::Gtk.Alignment (0F, 0.5F, 1F, 1F);
-			this.alignTraceExpression.Name = "alignTraceExpression";
-			this.alignTraceExpression.LeftPadding = ((uint)(18));
-			// Container child alignTraceExpression.Gtk.Container+ContainerChild
-			this.boxTraceExpression = new global::Gtk.HBox ();
-			this.boxTraceExpression.Name = "boxTraceExpression";
-			this.boxTraceExpression.Spacing = 6;
-			// Container child boxTraceExpression.Gtk.Box+BoxChild
-			this.labelTraceExpression = new global::Gtk.Label ();
-			this.labelTraceExpression.Name = "labelTraceExpression";
-			this.labelTraceExpression.LabelProp = global::Mono.Unix.Catalog.GetString ("Expression:");
-			this.boxTraceExpression.Add (this.labelTraceExpression);
-			global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.boxTraceExpression [this.labelTraceExpression]));
-			w34.Position = 0;
-			w34.Expand = false;
-			w34.Fill = false;
-			// Container child boxTraceExpression.Gtk.Box+BoxChild
-			this.entryTraceExpression = new global::Gtk.Entry ();
-			this.entryTraceExpression.CanFocus = true;
-			this.entryTraceExpression.Name = "entryTraceExpression";
-			this.entryTraceExpression.IsEditable = true;
-			this.entryTraceExpression.InvisibleChar = '●';
-			this.boxTraceExpression.Add (this.entryTraceExpression);
-			global::Gtk.Box.BoxChild w35 = ((global::Gtk.Box.BoxChild)(this.boxTraceExpression [this.entryTraceExpression]));
-			w35.Position = 1;
-			this.alignTraceExpression.Add (this.boxTraceExpression);
-			this.vboxAction.Add (this.alignTraceExpression);
-			global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vboxAction [this.alignTraceExpression]));
-			w37.Position = 3;
-			w37.Expand = false;
-			w37.Fill = false;
-			this.alignAction.Add (this.vboxAction);
-			this.vboxProperties.Add (this.alignAction);
-			global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vboxProperties [this.alignAction]));
-			w39.Position = 7;
-			w39.Expand = false;
-			w39.Fill = false;
-			w1.Add (this.vboxProperties);
-			global::Gtk.Box.BoxChild w40 = ((global::Gtk.Box.BoxChild)(w1 [this.vboxProperties]));
-			w40.Position = 0;
-			w40.Expand = false;
-			w40.Fill = false;
-			// Internal child MonoDevelop.Debugger.BreakpointPropertiesDialog.ActionArea
-			global::Gtk.HButtonBox w41 = this.ActionArea;
-			w41.Name = "dialog1_ActionArea";
-			w41.Spacing = 6;
-			w41.BorderWidth = ((uint)(5));
-			w41.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
-			// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
-			this.buttonCancel = new global::Gtk.Button ();
-			this.buttonCancel.CanDefault = true;
-			this.buttonCancel.CanFocus = true;
-			this.buttonCancel.Name = "buttonCancel";
-			this.buttonCancel.UseStock = true;
-			this.buttonCancel.UseUnderline = true;
-			this.buttonCancel.Label = "gtk-cancel";
-			this.AddActionWidget (this.buttonCancel, -6);
-			global::Gtk.ButtonBox.ButtonBoxChild w42 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w41 [this.buttonCancel]));
-			w42.Expand = false;
-			w42.Fill = false;
-			// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
-			this.buttonOk = new global::Gtk.Button ();
-			this.buttonOk.CanDefault = true;
-			this.buttonOk.CanFocus = true;
-			this.buttonOk.Name = "buttonOk";
-			this.buttonOk.UseStock = true;
-			this.buttonOk.UseUnderline = true;
-			this.buttonOk.Label = "gtk-ok";
-			w41.Add (this.buttonOk);
-			global::Gtk.ButtonBox.ButtonBoxChild w43 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w41 [this.buttonOk]));
-			w43.Position = 1;
-			w43.Expand = false;
-			w43.Fill = false;
-			if ((this.Child != null)) {
-				this.Child.ShowAll ();
-			}
-			this.DefaultWidth = 512;
-			this.DefaultHeight = 522;
-			this.Hide ();
-			this.radioBreakAlways.Toggled += new global::System.EventHandler (this.OnRadioBreakAlwaysToggled);
-			this.radioBreakWhenTrue.Toggled += new global::System.EventHandler (this.OnRadioBreakAlwaysToggled);
-			this.radioBreakWhenChanges.Toggled += new global::System.EventHandler (this.OnRadioBreakAlwaysToggled);
-			this.radioActionBreak.Toggled += new global::System.EventHandler (this.OnRadioActionBreakToggled);
-			this.radioActionTrace.Toggled += new global::System.EventHandler (this.OnRadioActionBreakToggled);
-			this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked);
-		}
-	}
-}

Modified: main/src/addins/MonoDevelop.Debugger/gtk-gui/gui.stetic
===================================================================
@@ -286,607 +286,6 @@
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Dialog" id="MonoDevelop.Debugger.BreakpointPropertiesDialog" design-size="512 522">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <property name="Title" translatable="yes">Breakpoint Properties</property>
-    <property name="WindowPosition">CenterOnParent</property>
-    <property name="Modal">True</property>
-    <property name="Buttons">2</property>
-    <property name="HelpButton">False</property>
-    <child internal-child="VBox">
-      <widget class="Gtk.VBox" id="dialog1_VBox">
-        <property name="MemberName" />
-        <property name="BorderWidth">2</property>
-        <child>
-          <widget class="Gtk.VBox" id="vboxProperties">
-            <property name="MemberName" />
-            <property name="Spacing">6</property>
-            <property name="BorderWidth">9</property>
-            <child>
-              <widget class="Gtk.Label" id="label1">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LabelProp" translatable="yes">&lt;b&gt;Location&lt;/b&gt;</property>
-                <property name="UseMarkup">True</property>
-              </widget>
-              <packing>
-                <property name="Position">0</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Alignment" id="alignLocation">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LeftPadding">18</property>
-                <child>
-                  <widget class="Gtk.Table" id="tableLocation">
-                    <property name="MemberName" />
-                    <property name="NRows">2</property>
-                    <property name="NColumns">2</property>
-                    <property name="RowSpacing">6</property>
-                    <property name="ColumnSpacing">6</property>
-                    <child>
-                      <widget class="Gtk.Entry" id="entryFileFunction">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="IsEditable">True</property>
-                        <property name="InvisibleChar">●</property>
-                      </widget>
-                      <packing>
-                        <property name="LeftAttach">1</property>
-                        <property name="RightAttach">2</property>
-                        <property name="AutoSize">False</property>
-                        <property name="YOptions">Fill</property>
-                        <property name="XExpand">True</property>
-                        <property name="XFill">True</property>
-                        <property name="XShrink">False</property>
-                        <property name="YExpand">False</property>
-                        <property name="YFill">True</property>
-                        <property name="YShrink">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.HBox" id="hboxLineColumn">
-                        <property name="MemberName" />
-                        <property name="Spacing">6</property>
-                        <child>
-                          <widget class="Gtk.SpinButton" id="spinLine">
-                            <property name="MemberName" />
-                            <property name="CanFocus">True</property>
-                            <property name="Lower">1</property>
-                            <property name="Upper">100</property>
-                            <property name="PageIncrement">10</property>
-                            <property name="StepIncrement">1</property>
-                            <property name="ClimbRate">1</property>
-                            <property name="Numeric">True</property>
-                            <property name="Value">1</property>
-                          </widget>
-                          <packing>
-                            <property name="Position">0</property>
-                            <property name="AutoSize">True</property>
-                            <property name="Expand">False</property>
-                            <property name="Fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="Gtk.HBox" id="hboxColumn">
-                            <property name="MemberName" />
-                            <property name="Spacing">6</property>
-                            <child>
-                              <widget class="Gtk.Label" id="label9">
-                                <property name="MemberName" />
-                                <property name="LabelProp" translatable="yes">Column:</property>
-                                <property name="Justify">Right</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">0</property>
-                                <property name="AutoSize">True</property>
-                                <property name="Expand">False</property>
-                                <property name="Fill">False</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="Gtk.SpinButton" id="spinColumn">
-                                <property name="MemberName" />
-                                <property name="CanFocus">True</property>
-                                <property name="Lower">1</property>
-                                <property name="Upper">100</property>
-                                <property name="PageIncrement">10</property>
-                                <property name="StepIncrement">1</property>
-                                <property name="ClimbRate">1</property>
-                                <property name="Numeric">True</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">1</property>
-                                <property name="AutoSize">True</property>
-                                <property name="Expand">False</property>
-                                <property name="Fill">False</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="Position">1</property>
-                            <property name="AutoSize">True</property>
-                            <property name="Expand">False</property>
-                            <property name="Fill">False</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="TopAttach">1</property>
-                        <property name="BottomAttach">2</property>
-                        <property name="LeftAttach">1</property>
-                        <property name="RightAttach">2</property>
-                        <property name="AutoSize">True</property>
-                        <property name="XOptions">Fill</property>
-                        <property name="YOptions">Fill</property>
-                        <property name="XExpand">False</property>
-                        <property name="XFill">True</property>
-                        <property name="XShrink">False</property>
-                        <property name="YExpand">False</property>
-                        <property name="YFill">True</property>
-                        <property name="YShrink">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.Label" id="labelFileFunction">
-                        <property name="MemberName" />
-                        <property name="Xalign">0</property>
-                        <property name="LabelProp" translatable="yes">File:</property>
-                      </widget>
-                      <packing>
-                        <property name="AutoSize">True</property>
-                        <property name="XOptions">Fill</property>
-                        <property name="YOptions">Fill</property>
-                        <property name="XExpand">False</property>
-                        <property name="XFill">True</property>
-                        <property name="XShrink">False</property>
-                        <property name="YExpand">False</property>
-                        <property name="YFill">True</property>
-                        <property name="YShrink">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.Label" id="labelLine">
-                        <property name="MemberName" />
-                        <property name="LabelProp" translatable="yes">Line:</property>
-                      </widget>
-                      <packing>
-                        <property name="TopAttach">1</property>
-                        <property name="BottomAttach">2</property>
-                        <property name="AutoSize">True</property>
-                        <property name="XOptions">Fill</property>
-                        <property name="YOptions">Fill</property>
-                        <property name="XExpand">False</property>
-                        <property name="XFill">True</property>
-                        <property name="XShrink">False</property>
-                        <property name="YExpand">False</property>
-                        <property name="YFill">True</property>
-                        <property name="YShrink">False</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="Position">1</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="label2">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LabelProp" translatable="yes">&lt;b&gt;Condition&lt;/b&gt;</property>
-                <property name="UseMarkup">True</property>
-              </widget>
-              <packing>
-                <property name="Position">2</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Alignment" id="alignCondition">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LeftPadding">18</property>
-                <child>
-                  <widget class="Gtk.VBox" id="vboxConditionOptions">
-                    <property name="MemberName" />
-                    <property name="Spacing">6</property>
-                    <child>
-                      <widget class="Gtk.RadioButton" id="radioBreakAlways">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="Label" translatable="yes">Always break</property>
-                        <property name="Active">True</property>
-                        <property name="DrawIndicator">True</property>
-                        <property name="HasLabel">True</property>
-                        <property name="UseUnderline">True</property>
-                        <property name="Group">group1</property>
-                        <signal name="Toggled" handler="OnRadioBreakAlwaysToggled" />
-                      </widget>
-                      <packing>
-                        <property name="Position">0</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.RadioButton" id="radioBreakWhenTrue">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="Label" translatable="yes">Break when condition is true</property>
-                        <property name="DrawIndicator">True</property>
-                        <property name="HasLabel">True</property>
-                        <property name="UseUnderline">True</property>
-                        <property name="Group">group1</property>
-                        <signal name="Toggled" handler="OnRadioBreakAlwaysToggled" />
-                      </widget>
-                      <packing>
-                        <property name="Position">1</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.RadioButton" id="radioBreakWhenChanges">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="Label" translatable="yes">Break when the expression changes</property>
-                        <property name="DrawIndicator">True</property>
-                        <property name="HasLabel">True</property>
-                        <property name="UseUnderline">True</property>
-                        <property name="Group">group1</property>
-                        <signal name="Toggled" handler="OnRadioBreakAlwaysToggled" />
-                      </widget>
-                      <packing>
-                        <property name="Position">2</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.Alignment" id="alignConditionExpression">
-                        <property name="MemberName" />
-                        <property name="Xalign">0</property>
-                        <property name="LeftPadding">18</property>
-                        <child>
-                          <widget class="Gtk.HBox" id="hboxConditionExpression">
-                            <property name="MemberName" />
-                            <property name="Spacing">6</property>
-                            <child>
-                              <widget class="Gtk.Label" id="labelConditionExpression">
-                                <property name="MemberName" />
-                                <property name="Xalign">0</property>
-                                <property name="LabelProp" translatable="yes">Condition expression:</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">0</property>
-                                <property name="AutoSize">True</property>
-                                <property name="Expand">False</property>
-                                <property name="Fill">False</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="Gtk.Entry" id="entryCondition">
-                                <property name="MemberName" />
-                                <property name="CanFocus">True</property>
-                                <property name="IsEditable">True</property>
-                                <property name="InvisibleChar">●</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">1</property>
-                                <property name="AutoSize">True</property>
-                              </packing>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="Position">3</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="Position">3</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="labelHitCount">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LabelProp" translatable="yes">&lt;b&gt;Hit Count&lt;/b&gt;</property>
-                <property name="UseMarkup">True</property>
-              </widget>
-              <packing>
-                <property name="Position">4</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Alignment" id="alignHitCount">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LeftPadding">18</property>
-                <child>
-                  <widget class="Gtk.VBox" id="vboxHitCount">
-                    <property name="MemberName" />
-                    <property name="Spacing">6</property>
-                    <child>
-                      <widget class="Gtk.Label" id="labelWhenHit">
-                        <property name="MemberName" />
-                        <property name="Xalign">0</property>
-                        <property name="LabelProp" translatable="yes">When the condition is hit:</property>
-                      </widget>
-                      <packing>
-                        <property name="Position">0</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.HBox" id="hbox1">
-                        <property name="MemberName" />
-                        <property name="Spacing">6</property>
-                        <child>
-                          <widget class="Gtk.ComboBox" id="comboHitCountMode">
-                            <property name="MemberName" />
-                            <property name="IsTextCombo">True</property>
-                            <property name="Items" translatable="yes">Always break
-Break when the hit count is less than
-Break when the hit count is less than or equal to
-Break when the hit count is equal to
-Break when the hit count is greater than
-Break when the hit count is greater than or equal to
-Break when the hit count is a multiple of</property>
-                            <property name="Active">0</property>
-                          </widget>
-                          <packing>
-                            <property name="Position">0</property>
-                            <property name="AutoSize">True</property>
-                            <property name="Expand">False</property>
-                            <property name="Fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="Gtk.SpinButton" id="spinHitCount">
-                            <property name="MemberName" />
-                            <property name="CanFocus">True</property>
-                            <property name="Upper">100000000</property>
-                            <property name="PageIncrement">10</property>
-                            <property name="StepIncrement">1</property>
-                            <property name="ClimbRate">1</property>
-                            <property name="Numeric">True</property>
-                            <property name="Value">1</property>
-                          </widget>
-                          <packing>
-                            <property name="Position">1</property>
-                            <property name="AutoSize">True</property>
-                            <property name="Expand">False</property>
-                            <property name="Fill">False</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="Position">1</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="Position">5</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="label3">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LabelProp" translatable="yes">&lt;b&gt;Action&lt;/b&gt;</property>
-                <property name="UseMarkup">True</property>
-              </widget>
-              <packing>
-                <property name="Position">6</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Alignment" id="alignAction">
-                <property name="MemberName" />
-                <property name="Xalign">0</property>
-                <property name="LeftPadding">18</property>
-                <child>
-                  <widget class="Gtk.VBox" id="vboxAction">
-                    <property name="MemberName" />
-                    <property name="Spacing">6</property>
-                    <child>
-                      <widget class="Gtk.Label" id="label11">
-                        <property name="MemberName" />
-                        <property name="Xalign">0</property>
-                        <property name="LabelProp" translatable="yes">When the breakpoint is hit:</property>
-                      </widget>
-                      <packing>
-                        <property name="Position">0</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.RadioButton" id="radioActionBreak">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="Label" translatable="yes">Break</property>
-                        <property name="Active">True</property>
-                        <property name="DrawIndicator">True</property>
-                        <property name="HasLabel">True</property>
-                        <property name="UseUnderline">True</property>
-                        <property name="Group">group2</property>
-                        <signal name="Toggled" handler="OnRadioActionBreakToggled" />
-                      </widget>
-                      <packing>
-                        <property name="Position">1</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.RadioButton" id="radioActionTrace">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="Label" translatable="yes">Write expression to the output</property>
-                        <property name="DrawIndicator">True</property>
-                        <property name="HasLabel">True</property>
-                        <property name="UseUnderline">True</property>
-                        <property name="Group">group2</property>
-                        <signal name="Toggled" handler="OnRadioActionBreakToggled" />
-                      </widget>
-                      <packing>
-                        <property name="Position">2</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.Alignment" id="alignTraceExpression">
-                        <property name="MemberName" />
-                        <property name="Xalign">0</property>
-                        <property name="LeftPadding">18</property>
-                        <child>
-                          <widget class="Gtk.HBox" id="boxTraceExpression">
-                            <property name="MemberName" />
-                            <property name="Spacing">6</property>
-                            <child>
-                              <widget class="Gtk.Label" id="labelTraceExpression">
-                                <property name="MemberName" />
-                                <property name="LabelProp" translatable="yes">Expression:</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">0</property>
-                                <property name="AutoSize">True</property>
-                                <property name="Expand">False</property>
-                                <property name="Fill">False</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <widget class="Gtk.Entry" id="entryTraceExpression">
-                                <property name="MemberName" />
-                                <property name="CanFocus">True</property>
-                                <property name="IsEditable">True</property>
-                                <property name="InvisibleChar">●</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">1</property>
-                                <property name="AutoSize">True</property>
-                              </packing>
-                            </child>
-                          </widget>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="Position">3</property>
-                        <property name="AutoSize">True</property>
-                        <property name="Expand">False</property>
-                        <property name="Fill">False</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="Position">7</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-    <child internal-child="ActionArea">
-      <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
-        <property name="MemberName" />
-        <property name="Spacing">6</property>
-        <property name="BorderWidth">5</property>
-        <property name="Size">2</property>
-        <property name="LayoutStyle">End</property>
-        <child>
-          <widget class="Gtk.Button" id="buttonCancel">
-            <property name="MemberName" />
-            <property name="CanDefault">True</property>
-            <property name="CanFocus">True</property>
-            <property name="UseStock">True</property>
-            <property name="Type">StockItem</property>
-            <property name="StockId">gtk-cancel</property>
-            <property name="ResponseId">-6</property>
-            <property name="label">gtk-cancel</property>
-          </widget>
-          <packing>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="Gtk.Button" id="buttonOk">
-            <property name="MemberName" />
-            <property name="CanDefault">True</property>
-            <property name="CanFocus">True</property>
-            <property name="UseStock">True</property>
-            <property name="Type">StockItem</property>
-            <property name="StockId">gtk-ok</property>
-            <property name="ResponseId">-1</property>
-            <signal name="Clicked" handler="OnButtonOkClicked" />
-            <property name="label">gtk-ok</property>
-          </widget>
-          <packing>
-            <property name="Position">1</property>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
   <widget class="Gtk.Dialog" id="MonoDevelop.Debugger.BusyEvaluatorDialog" design-size="381 126">
     <property name="MemberName" />
     <property name="Visible">False</property>
_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.