Browse Source

Using DragScroll viewer

pull/15/head
Eusebiu Marcu 15 years ago
parent
commit
124cd8e359
  1. 8
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/DrawSurface.xaml
  2. 49
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/DrawSurface.xaml.cs
  3. 4
      src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackPad.cs
  4. 3
      src/AddIns/Debugger/Debugger.AddIn/Visualizers/Controls/DragScrollViewer.cs

8
src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/DrawSurface.xaml

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<UserControl
x:Class="Debugger.AddIn.Pads.ParallelPad.DrawSurface" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Debugger.AddIn.Pads.ParallelPad"
xmlns:visControls="clr-namespace:Debugger.AddIn.Visualizers.Controls"
Background="White">
<UserControl.Resources>
<LinearGradientBrush
@ -123,10 +124,9 @@ @@ -123,10 +124,9 @@
Click="Reset_Click"
Template="{StaticResource ButtonTemplate}" />
</Canvas>
<ScrollViewer
<visControls:DragScrollViewer
x:Name="drawingSurface"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
Grid.Column="1">
<Grid
x:Name="ContentControl"
@ -142,6 +142,6 @@ @@ -142,6 +142,6 @@
OverlapRemovalConstraint="Automatic"
OverlapRemovalAlgorithmType="FSA" />
</Grid>
</ScrollViewer>
</visControls:DragScrollViewer>
</Grid>
</UserControl>

49
src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/DrawSurface.xaml.cs

@ -14,7 +14,6 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -14,7 +14,6 @@ namespace Debugger.AddIn.Pads.ParallelPad
{
public partial class DrawSurface : UserControl
{
private Point dragStartedPoint;
private ScaleTransform zoom = new ScaleTransform();
public DrawSurface()
@ -22,9 +21,6 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -22,9 +21,6 @@ namespace Debugger.AddIn.Pads.ParallelPad
InitializeComponent();
ContentControl.LayoutTransform = zoom;
this.PreviewMouseLeftButtonDown += DrawSurface_PreviewMouseLeftButtonDown;
this.PreviewMouseLeftButtonUp += DrawSurface_MouseLeftButtonUp;
}
public void SetGraph(ParallelStacksGraph graph)
@ -47,51 +43,6 @@ namespace Debugger.AddIn.Pads.ParallelPad @@ -47,51 +43,6 @@ namespace Debugger.AddIn.Pads.ParallelPad
}
}
#region Pan
void DrawSurface_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (e.OriginalSource is TextBlock || e.OriginalSource is Shape || e.OriginalSource is ScrollChrome)
return;
dragStartedPoint = e.GetPosition(drawingSurface);
drawingSurface.CaptureMouse();
this.PreviewMouseMove += DrawSurface_PreviewMouseMove;
e.Handled = true;
}
void DrawSurface_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
drawingSurface.ReleaseMouseCapture();
if (e.OriginalSource is Shape || e.OriginalSource is TextBlock)
return;
this.PreviewMouseMove -= DrawSurface_PreviewMouseMove;
Cursor = Cursors.Arrow;
}
void DrawSurface_PreviewMouseMove(object sender, MouseEventArgs e)
{
if (e.OriginalSource is TextBlock || e.OriginalSource is Shape || e.OriginalSource is ScrollChrome)
return;
if (!drawingSurface.IsMouseCaptured) return;
if (e.LeftButton == MouseButtonState.Pressed)
{
Cursor = Cursors.SizeAll;
var point = e.GetPosition(drawingSurface);
Vector v = point - dragStartedPoint;
ContentControl.Margin = new Thickness(
ContentControl.Margin.Left + v.X / 80,
ContentControl.Margin.Top + v.Y / 80, 0, 0);
e.Handled = true;
}
}
#endregion
#region Zoom
void SliderControl_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)

4
src/AddIns/Debugger/Debugger.AddIn/Pads/ParallelPad/ParallelStackPad.cs

@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
currentThreadStacks.Clear();
using(new PrintTimes("Parallel stack - create stacks refresh")) {
using(new PrintTimes("Create stacks")) {
try {
// create all simple ThreadStacks
foreach (Thread thread in debuggedProcess.Threads) {
@ -94,7 +94,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -94,7 +94,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
}
}
}
using(new PrintTimes("Parallel stack - run algorithm")) {
using(new PrintTimes("Run algorithm")) {
if (isMethodView)
{
// build method view for threads

3
src/AddIns/Debugger/Debugger.AddIn/Visualizers/Controls/DragScrollViewer.cs

@ -19,6 +19,9 @@ namespace Debugger.AddIn.Visualizers.Controls @@ -19,6 +19,9 @@ namespace Debugger.AddIn.Visualizers.Controls
public DragScrollViewer() : base()
{
this.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
this.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
this.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(DragScrollViewer_PreviewMouseDown);
this.PreviewMouseMove += new System.Windows.Input.MouseEventHandler(DragScrollViewer_PreviewMouseMove);
this.PreviewMouseUp += new System.Windows.Input.MouseButtonEventHandler(DragScrollViewer_PreviewMouseUp);

Loading…
Cancel
Save