Browse Source

modify UI of control

add drag and drop to PinBookmark
pull/11/head
eusebiu 15 years ago
parent
commit
20e51d050f
  1. 15
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs
  2. 8
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  3. 5
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/DebuggerTooltipControl.xaml
  4. 2
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/DebuggerTooltipControl.xaml.cs
  5. 2
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/ITreeNode.cs
  6. 13
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinBookmark.cs
  7. 30
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinControlsDictionary.xaml
  8. 8
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinDebuggerControl.xaml
  9. 55
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinDebuggerControl.xaml.cs
  10. 2
      src/Main/Base/Project/Src/Services/Debugger/TreeNode.cs

15
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs

@ -31,7 +31,7 @@ namespace Debugger.AddIn.TreeModel @@ -31,7 +31,7 @@ namespace Debugger.AddIn.TreeModel
Expression expression;
bool canSetText;
GetValueException error;
string fullName;
string fullText;
public bool Evaluated {
@ -78,6 +78,9 @@ namespace Debugger.AddIn.TreeModel @@ -78,6 +78,9 @@ namespace Debugger.AddIn.TreeModel
get {
if (!evaluated) EvaluateExpression();
if(!string.IsNullOrEmpty(fullName))
return fullName;
if (expression is MemberReferenceExpression) {
var memberExpression = (MemberReferenceExpression)expression;
@ -111,15 +114,21 @@ namespace Debugger.AddIn.TreeModel @@ -111,15 +114,21 @@ namespace Debugger.AddIn.TreeModel
}
}
if (currentExpression is ThisReferenceExpression) {
stack.Push("this");
}
// create fullname
StringBuilder sb = new StringBuilder();
while(stack.Count > 0)
sb.Append(stack.Pop());
return sb.ToString();
fullName = sb.ToString();
return fullName;
}
return Name.Trim();
fullName = Name.Trim();
return fullName;
}
}

8
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -30,6 +30,8 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -30,6 +30,8 @@ namespace ICSharpCode.SharpDevelop.Debugging
BookmarkManager.Added += BookmarkAdded;
BookmarkManager.Removed += BookmarkRemoved;
IsDebuggerRunning = false;
}
static void GetDescriptors()
@ -80,6 +82,8 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -80,6 +82,8 @@ namespace ICSharpCode.SharpDevelop.Debugging
}
}
public static bool IsDebuggerRunning { get; set; }
/// <summary>
/// Returns true if debugger is already loaded.
/// </summary>
@ -112,6 +116,8 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -112,6 +116,8 @@ namespace ICSharpCode.SharpDevelop.Debugging
{
if (DebugStarted != null)
DebugStarted(null, e);
IsDebuggerRunning = true;
}
static void OnDebugStopped(object sender, EventArgs e)
@ -124,6 +130,8 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -124,6 +130,8 @@ namespace ICSharpCode.SharpDevelop.Debugging
LayoutConfiguration.CurrentLayoutName = oldLayoutConfiguration;
if (DebugStopped != null)
DebugStopped(null, e);
IsDebuggerRunning = false;
}
static MessageViewCategory debugCategory = null;

5
src/Main/Base/Project/Src/Services/Debugger/Tooltips/DebuggerTooltipControl.xaml

@ -144,7 +144,7 @@ @@ -144,7 +144,7 @@
BorderBrush="#FFDDDDDD"
BorderThickness="0 0 1 0">
<TextBlock
Margin="6 0"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Path=Name, Mode=OneWay}"
VerticalAlignment="Top"></TextBlock>
</Border>
@ -183,7 +183,6 @@ @@ -183,7 +183,6 @@
Style="{StaticResource TextStyle}"
IsEnabled="{Binding CanSetText}"
KeyUp="TextBox_KeyUp"
Margin="4 0"
Text="{Binding Path=Text}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
@ -193,7 +192,7 @@ @@ -193,7 +192,7 @@
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ToggleButton
IsChecked="{Binding IsChecked}"
IsChecked="{Binding IsPinned}"
DataContext="{Binding}"
Visibility="Collapsed"
Name="PinButton"

2
src/Main/Base/Project/Src/Services/Debugger/Tooltips/DebuggerTooltipControl.xaml.cs

@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
if (pin != null) {
foreach (var node in this.itemsSource) {
if (pin.ContainsNode(node))
node.IsChecked = true;
node.IsPinned = true;
}
}
}

2
src/Main/Base/Project/Src/Services/Debugger/Tooltips/ITreeNode.cs

@ -32,7 +32,7 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -32,7 +32,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
bool HasVisualizerCommands { get; }
bool IsChecked { get; set; }
bool IsPinned { get; set; }
bool SetText(string newValue);
}

13
src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinBookmark.cs

@ -50,6 +50,15 @@ namespace Services.Debugger.Tooltips @@ -50,6 +50,15 @@ namespace Services.Debugger.Tooltips
get { return tooltip; }
set { tooltip = value; }
}
public override bool CanDragDrop {
get { return true; }
}
public override void Drop(int lineNumber)
{
this.Location = new Location(ColumnNumber, lineNumber);
}
}
public static class PinBookmarkExtensions
@ -62,7 +71,7 @@ namespace Services.Debugger.Tooltips @@ -62,7 +71,7 @@ namespace Services.Debugger.Tooltips
throw new ArgumentNullException("Node is null");
foreach (var currentNode in mark.Nodes) {
if (node.Name.Trim() == currentNode.Name.Trim())
if (node.FullName.Trim() == currentNode.FullName.Trim())
return true;
}
@ -77,7 +86,7 @@ namespace Services.Debugger.Tooltips @@ -77,7 +86,7 @@ namespace Services.Debugger.Tooltips
throw new ArgumentNullException("Node is null");
foreach (var currentNode in mark.Nodes) {
if (node.Name.Trim() == currentNode.Name.Trim()) {
if (node.FullName.Trim() == currentNode.FullName.Trim()) {
mark.Nodes.Remove(currentNode);
return;
}

30
src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinControlsDictionary.xaml

@ -75,10 +75,10 @@ @@ -75,10 +75,10 @@
<Border Width="16" Height="16" Name="TheBorder" CornerRadius="0" BorderThickness="1" BorderBrush="Black" Background="{StaticResource SilverPressedBrushKey}">
<Canvas Name="TheCanvas">
<Line X1="4" X2="10" Y1="2" Y2="2" Stroke="Black" StrokeThickness="1"/>
<Line X1="10" X2="10" Y1="3" Y2="9" Stroke="Black" StrokeThickness="1"/>
<Line X1="2" X2="12" Y1="9" Y2="9" Stroke="Black" StrokeThickness="1"/>
<Rectangle Fill="Black" Width="3" Height="6" Canvas.Left="3" Canvas.Top="3"/>
<Line X1="7" X2="7" Y1="10" Y2="13" Stroke="Black" StrokeThickness="1"/>
<Line X1="9" X2="9" Y1="2" Y2="8" Stroke="Black" StrokeThickness="1"/>
<Line X1="2" X2="12" Y1="8" Y2="8" Stroke="Black" StrokeThickness="1"/>
<Rectangle Fill="Black" Width="2" Height="5" Canvas.Left="4" Canvas.Top="3"/>
<Line X1="7" X2="7" Y1="9" Y2="12" Stroke="Black" StrokeThickness="1"/>
</Canvas>
</Border>
<ControlTemplate.Triggers>
@ -126,11 +126,11 @@ @@ -126,11 +126,11 @@
<ControlTemplate x:Key="PinTooltipButtonTemplate" TargetType="ToggleButton">
<Border Width="16" Height="16" Name="TheBorder" CornerRadius="2" BorderBrush="Transparent" BorderThickness="1" Background="Transparent">
<Canvas RenderTransform="{StaticResource Rotate}" Name="TheCanvas">
<Line X1="4" X2="10" Y1="2" Y2="2" Name="Line1" Stroke="Silver" StrokeThickness="1"/>
<Line X1="10" X2="10" Y1="3" Y2="9" Name="Line2" Stroke="Silver" StrokeThickness="1"/>
<Line X1="2" X2="12" Y1="9" Y2="9" Name="Line3" Stroke="Silver" StrokeThickness="1"/>
<Rectangle Width="3" Height="6" Name="Rectangle" Fill="Silver" Canvas.Left="3" Canvas.Top="3"/>
<Line X1="7" X2="7" Y1="10" Y2="13" Name="Line4" Stroke="Silver" StrokeThickness="1"/>
<Line X1="4" X2="10" Y1="2" Y2="2" Stroke="Silver" StrokeThickness="1" Name="Line1"/>
<Line X1="9" X2="9" Y1="2" Y2="8" Stroke="Silver" StrokeThickness="1" Name="Line2"/>
<Line X1="2" X2="12" Y1="8" Y2="8" Stroke="Silver" StrokeThickness="1" Name="Line3"/>
<Rectangle Fill="Silver" Width="2" Height="7" Canvas.Left="4" Canvas.Top="2" Name="Rectangle"/>
<Line X1="7" X2="7" Y1="9" Y2="12" Stroke="Silver" StrokeThickness="1" Name="Line4"/>
</Canvas>
</Border>
<ControlTemplate.Triggers>
@ -158,7 +158,10 @@ @@ -158,7 +158,10 @@
Value="True" />
<Setter
Property="VerticalAlignment"
Value="Top" />
Value="Center" />
<Setter
Property="FontFamily" Value="Khmer UI" />
<Setter Property="FontSize" Value="12" />
<Setter
Property="KeyboardNavigation.TabNavigation"
Value="None" />
@ -184,6 +187,13 @@ @@ -184,6 +187,13 @@
</Setter>
</Style>
<Style TargetType="TextBlock" x:Key="TextBlockStyle">
<Setter Property="Margin" Value="4 0" />
<Setter
Property="FontFamily" Value="Khmer UI" />
<Setter Property="FontSize" Value="12" />
</Style>
<Style x:Key="PinThumbStyle" TargetType="Thumb">
<Setter Property="Template">
<Setter.Value>

8
src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinDebuggerControl.xaml

@ -156,14 +156,13 @@ @@ -156,14 +156,13 @@
<!-- Name -->
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border IsEnabled="False"
<Border
BorderBrush="#FFDDDDDD"
BorderThickness="0 0 1 0">
<TextBlock
FontFamily="Arial"
Margin="6 0"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Path=FullName, Mode=OneWay}"
VerticalAlignment="Top"></TextBlock>
VerticalAlignment="Center"></TextBlock>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
@ -177,7 +176,6 @@ @@ -177,7 +176,6 @@
<TextBox
Style="{StaticResource TextStyle}"
IsEnabled="false"
Margin="4 0"
Text="{Binding Path=Text}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

55
src/Main/Base/Project/Src/Services/Debugger/Tooltips/PinDebuggerControl.xaml.cs

@ -10,6 +10,7 @@ using System.Windows.Controls.Primitives; @@ -10,6 +10,7 @@ using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Bookmarks;
@ -32,14 +33,16 @@ namespace Services.Debugger.Tooltips @@ -32,14 +33,16 @@ namespace Services.Debugger.Tooltips
{
InitializeComponent();
if (!DebuggerService.IsDebuggerLoaded)
if (!DebuggerService.IsDebuggerRunning)
Opacity = MINIMUM_OPACITY;
PinCloseControl.Opacity = 0;
Loaded += OnLoaded;
this.PinCloseControl.Closed += PinCloseControl_Closed;
this.PinCloseControl.ShowingComment += PinCloseControl_ShowingComment;
this.PinCloseControl.PinningChanged += PinCloseControl_PinningChanged;
BookmarkManager.Removed += BookmarkManager_Removed;
DebuggerService.DebugStarted += delegate { Opacity = 1d; };
}
#region Properties
@ -214,29 +217,59 @@ namespace Services.Debugger.Tooltips @@ -214,29 +217,59 @@ namespace Services.Debugger.Tooltips
#endregion
void AnimateCloseControls(bool show)
{
DoubleAnimation animation = new DoubleAnimation();
animation.From = show ? 0 : 1;
animation.To = show ? 1 : 0;
animation.BeginTime = new TimeSpan(0, 0, show ? 0 : 1);
animation.Duration = new Duration(TimeSpan.FromMilliseconds(500));
animation.SetValue(Storyboard.TargetProperty, this.PinCloseControl);
animation.SetValue(Storyboard.TargetPropertyProperty, new PropertyPath(Rectangle.OpacityProperty));
Storyboard board = new Storyboard();
board.Children.Add(animation);
board.Begin(this);
}
void RefreshContentImage_MouseDown(object sender, MouseButtonEventArgs e)
{
// refresh content
ITreeNode node = ((Image)sender).DataContext as ITreeNode;
if (!DebuggerService.IsDebuggerRunning)
return;
}
protected override void OnMouseEnter(System.Windows.Input.MouseEventArgs e)
{
AnimateCloseControls(true);
Opacity = 1d;
Cursor = Cursors.Arrow;
base.OnMouseEnter(e);
}
protected override void OnMouseLeave(System.Windows.Input.MouseEventArgs e)
protected override void OnMouseMove(MouseEventArgs e)
{
Opacity = MINIMUM_OPACITY;
Cursor = Cursors.IBeam;
base.OnMouseLeave(e);
Opacity = 1d;
Cursor = Cursors.Arrow;
base.OnMouseMove(e);
}
void RefreshContentImage_MouseDown(object sender, MouseButtonEventArgs e)
protected override void OnMouseLeave(System.Windows.Input.MouseEventArgs e)
{
// refresh content
ITreeNode node = ((Image)sender).DataContext as ITreeNode;
if (!DebuggerService.IsDebuggerLoaded)
return;
if (DebuggerService.IsDebuggerRunning)
Opacity = 1;
else
Opacity = MINIMUM_OPACITY;
AnimateCloseControls(false);
Cursor = Cursors.IBeam;
base.OnMouseLeave(e);
}
}
}

2
src/Main/Base/Project/Src/Services/Debugger/TreeNode.cs

@ -101,7 +101,7 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -101,7 +101,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
}
}
public bool IsChecked { get; set; }
public bool IsPinned { get; set; }
public TreeNode()
{

Loading…
Cancel
Save