Skip to content

Commit 850eaaf

Browse files
authored
Fixed context menu items and margins in text visualizers (#216)
1 parent d2783d9 commit 850eaaf

File tree

5 files changed

+32
-6
lines changed

5 files changed

+32
-6
lines changed

Sources/Visualization/Microsoft.Psi.Visualization.Windows/Views/VisualizationContainerView.xaml.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ private void OnContextMenuOpening(object sender, ContextMenuEventArgs e)
277277
// Run a hit test at the mouse cursor
278278
VisualTreeHelper.HitTest(
279279
this,
280-
null,
280+
new HitTestFilterCallback(this.ContestMenuHitTestFilter),
281281
new HitTestResultCallback(this.ContextMenuHitTestResult),
282282
new PointHitTestParameters(Mouse.GetPosition(this)));
283283

@@ -321,6 +321,17 @@ private void OnContextMenuOpening(object sender, ContextMenuEventArgs e)
321321
}
322322
}
323323

324+
// Filter to exclude invisible UI elements from hit test
325+
private HitTestFilterBehavior ContestMenuHitTestFilter(DependencyObject dependencyObject)
326+
{
327+
if (dependencyObject is UIElement element && !element.IsVisible)
328+
{
329+
return HitTestFilterBehavior.ContinueSkipSelfAndChildren;
330+
}
331+
332+
return HitTestFilterBehavior.Continue;
333+
}
334+
324335
// Return the result of the hit test to the callback.
325336
private HitTestResultBehavior ContextMenuHitTestResult(HitTestResult result)
326337
{

Sources/Visualization/Microsoft.Psi.Visualization.Windows/Views/Visuals2D/IFormattableVisualizationObjectView.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
</Border>
2828
<Border Grid.Row="1" Padding="5,2,0,0">
2929
<Grid>
30-
<TextBox Text="{Binding Path=FormattedData, Mode=OneWay}" IsReadOnly="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
30+
<TextBox Text="{Binding Path=FormattedData, Mode=OneWay}" Margin="{Binding Margin}" IsReadOnly="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
3131
</Grid>
3232
</Border>
3333
</Grid>

Sources/Visualization/Microsoft.Psi.Visualization.Windows/Views/Visuals2D/TextVisualizationObjectView.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
</Border>
2727
<Border Grid.Row="1" Padding="5,2,0,0">
2828
<Grid>
29-
<TextBox Text="{Binding Path=CurrentValue.Data, Mode=OneWay}" IsReadOnly="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
29+
<TextBox Text="{Binding Path=CurrentValue.Data, Mode=OneWay}" Margin="{Binding Margin}" IsReadOnly="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
3030
</Grid>
3131
</Border>
3232
</Grid>

Sources/Visualization/Microsoft.Psi.Visualization.Windows/VisualizationObjects/IFormattableVisualizationObject.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Microsoft.Psi.Visualization.VisualizationObjects
1919
[VisualizationPanelType(VisualizationPanelType.Canvas)]
2020
public class IFormattableVisualizationObject : StreamValueVisualizationObject<IFormattable>
2121
{
22-
private int margin = 10;
22+
private Thickness margin = new (5, 0, 0, 0);
2323
private string formatString = default;
2424
private string formattedData = default;
2525

@@ -32,8 +32,8 @@ public class IFormattableVisualizationObject : StreamValueVisualizationObject<IF
3232
/// </summary>
3333
[DataMember]
3434
[DisplayName("Margin")]
35-
[Description("The margin in pixels.")]
36-
public int Margin
35+
[Description("The left, top, right and bottom margin in pixels.")]
36+
public Thickness Margin
3737
{
3838
get { return this.margin; }
3939
set { this.Set(nameof(this.Margin), ref this.margin, value); }

Sources/Visualization/Microsoft.Psi.Visualization.Windows/VisualizationObjects/TextVisualizationObject.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Microsoft.Psi.Visualization.VisualizationObjects
55
{
6+
using System.ComponentModel;
67
using System.Runtime.Serialization;
78
using System.Windows;
89
using Microsoft.Psi.Visualization.Helpers;
@@ -16,8 +17,22 @@ namespace Microsoft.Psi.Visualization.VisualizationObjects
1617
[VisualizationPanelType(VisualizationPanelType.Canvas)]
1718
public class TextVisualizationObject : StreamValueVisualizationObject<string>
1819
{
20+
private Thickness margin = new (5, 0, 0, 0);
21+
1922
/// <inheritdoc />
2023
[IgnoreDataMember]
2124
public override DataTemplate DefaultViewTemplate => XamlHelper.CreateTemplate(this.GetType(), typeof(TextVisualizationObjectView));
25+
26+
/// <summary>
27+
/// Gets or sets the margin.
28+
/// </summary>
29+
[DataMember]
30+
[DisplayName("Margin")]
31+
[Description("The left, top, right and bottom margin in pixels.")]
32+
public Thickness Margin
33+
{
34+
get { return this.margin; }
35+
set { this.Set(nameof(this.Margin), ref this.margin, value); }
36+
}
2237
}
2338
}

0 commit comments

Comments
 (0)