Skip to content

Commit ed596e5

Browse files
committed
ToggleButton in toolbar
1 parent 17f3684 commit ed596e5

File tree

10 files changed

+123
-2
lines changed

10 files changed

+123
-2
lines changed

SimpleStateMachineNodeEditor/App.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050

5151
<!--#region Header-->
5252
<ResourceDictionary Source="Styles/MainWindow/ToolBar/TemplateSeparator.xaml"/>
53+
<ResourceDictionary Source="Styles/MainWindow/ToolBar/TemplateCheckBox.xaml"/>
5354
<ResourceDictionary Source="Styles/MainWindow/ToolBarTemplate.xaml"/>
5455
<ResourceDictionary Source="Styles/MainWindow/Header/StyleHeaderButton.xaml"/>
5556
<!--#endregion Header-->
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using System.Windows.Data;
5+
6+
namespace SimpleStateMachineNodeEditor.Helpers.Converters
7+
{
8+
public class InverseBooleanConverter: IValueConverter
9+
{
10+
#region IValueConverter Members
11+
12+
public object Convert(object value, Type targetType, object parameter,
13+
System.Globalization.CultureInfo culture)
14+
{
15+
if (targetType != typeof(bool))
16+
throw new InvalidOperationException("The target must be a boolean");
17+
18+
return !(bool)value;
19+
}
20+
21+
public object ConvertBack(object value, Type targetType, object parameter,
22+
System.Globalization.CultureInfo culture)
23+
{
24+
throw new NotSupportedException();
25+
}
26+
27+
#endregion
28+
}
29+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
3+
<DrawingBrush x:Key="IconCut" >
4+
<DrawingBrush.Drawing>
5+
<DrawingGroup>
6+
<DrawingGroup.Children>
7+
<GeometryDrawing Brush="{DynamicResource ColorIconsMain}" Geometry="M11,21H7V19H11V21
8+
M15.5,19H17V21H13V19H13.2L11.8,12.9L9.3,13.5C9.2,14 9,14.4 8.8,14.8C7.9,16.3 6,16.7 4.5,15.8C3,14.9 2.6,13 3.5,11.5C4.4,10 6.3,9.6 7.8,10.5C8.2,10.7 8.5,11.1 8.7,11.4L11.2,10.8L10.6,8.3C10.2,8.2 9.8,8 9.4,7.8C8,6.9 7.5,5 8.4,3.5C9.3,2 11.2,1.6 12.7,2.5C14.2,3.4 14.6,5.3 13.7,6.8C13.5,7.2 13.1,7.5 12.8,7.7L15.5,19
9+
M7,11.8C6.3,11.3 5.3,11.6 4.8,12.3C4.3,13 4.6,14 5.3,14.4C6,14.9 7,14.7 7.5,13.9C7.9,13.2 7.7,12.2 7,11.8
10+
M12.4,6C12.9,5.3 12.6,4.3 11.9,3.8C11.2,3.3 10.2,3.6 9.7,4.3C9.3,5 9.5,6 10.3,6.5C11,6.9 12,6.7 12.4,6
11+
M12.8,11.3C12.6,11.2 12.4,11.2 12.3,11.4C12.2,11.6 12.2,11.8 12.4,11.9C12.6,12 12.8,12 12.9,11.8C13.1,11.6 13,11.4 12.8,11.3
12+
M21,8.5L14.5,10L15,12.2L22.5,10.4L23,9.7L21,8.5
13+
M23,19H19V21H23V19
14+
M5,19H1V21H5V19Z"/>
15+
</DrawingGroup.Children>
16+
</DrawingGroup>
17+
</DrawingBrush.Drawing>
18+
</DrawingBrush>
19+
</ResourceDictionary>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
3+
<DrawingBrush x:Key="IconDeleteNode" >
4+
<DrawingBrush.Drawing>
5+
<DrawingGroup>
6+
<DrawingGroup.Children>
7+
<GeometryDrawing Brush="{DynamicResource ColorIconsMain}" Geometry="F1M15,3L15,15 1,15 1,6 2,6 2,14 14,14 14,6 8,6 8,3z" />
8+
<GeometryDrawing Brush="#FFA1260D" Geometry="F1M7.0605,2.0605L5.9995,0.999499999999999 4.0305,2.9695 2.0605,0.999499999999999 0.9995,2.0605 2.9695,4.0305 0.9995,5.9995 2.0605,7.0605 4.0305,5.0905 5.9995,7.0605 7.0605,5.9995 5.0905,4.0305z" />
9+
</DrawingGroup.Children>
10+
</DrawingGroup>
11+
</DrawingBrush.Drawing>
12+
</DrawingBrush>
13+
</ResourceDictionary>

SimpleStateMachineNodeEditor/Icons/Icons.xaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
<ResourceDictionary Source="ExpandDown.xaml"/>
2121
<ResourceDictionary Source="Theme.xaml"/>
2222
<ResourceDictionary Source="Restore.xaml"/>
23+
<ResourceDictionary Source="Cut.xaml"/>
24+
<ResourceDictionary Source="DeleteNode.xaml"/>
25+
<ResourceDictionary Source="Select.xaml"/>
2326
<ResourceDictionary Source="Minimize.xaml"/>
2427
<ResourceDictionary Source="Maximize.xaml"/>
2528
<ResourceDictionary Source="Exit.xaml"/>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
3+
<DrawingBrush x:Key="IconSelect">
4+
<DrawingBrush.Drawing>
5+
<DrawingGroup>
6+
<DrawingGroup.Children>
7+
8+
<GeometryDrawing Brush="{DynamicResource ColorIconsMain}" Geometry="M13,17H17V13H19V17H23V19H19V23H17V19H13V17"/>
9+
<GeometryDrawing Brush="{DynamicResource ColorIconsSecond}" Geometry="M11,17V19H9V17H11M7,17V19H5V17H7M19,9V11H17V9H19M19,5V7H17V5H19M15,5V7H13V5H15M11,5V7H9V5H11M7,5V7H5V5H7M7,13V15H5V13H7M7,9V11H5V9H7Z" />
10+
</DrawingGroup.Children>
11+
</DrawingGroup>
12+
</DrawingBrush.Drawing>
13+
</DrawingBrush>
14+
</ResourceDictionary>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:local="clr-namespace:SimpleStateMachineNodeEditor.Styles.MainWindow.ToolBar">
4+
5+
<Style x:Key="TemplateToggleButton" TargetType="{x:Type ToggleButton}">
6+
<Setter Property="Template">
7+
<Setter.Value>
8+
<ControlTemplate TargetType="{x:Type ToggleButton}">
9+
<Border x:Name="border" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true" Padding="{TemplateBinding Padding}">
10+
<ContentPresenter x:Name="contentPresenter" Focusable="True" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
11+
</Border>
12+
<ControlTemplate.Triggers>
13+
<Trigger Property="IsMouseOver" Value="True">
14+
<Setter TargetName="border" Property="Background" Value="{Binding BorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
15+
</Trigger>
16+
<Trigger Property="IsChecked" Value="True">
17+
<Setter TargetName="border" Property="Background" Value="{Binding BorderBrush, RelativeSource={RelativeSource TemplatedParent}}" />
18+
</Trigger>
19+
</ControlTemplate.Triggers>
20+
</ControlTemplate>
21+
</Setter.Value>
22+
</Setter>
23+
</Style>
24+
</ResourceDictionary>

SimpleStateMachineNodeEditor/View/MainWindow.xaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,22 @@
160160
<Button x:Name="ButtonExpandDownAll" ToolTip="Expand Down All" Style="{DynamicResource StyleHeaderButton}" Background="{DynamicResource ColorWindowHeader}" BorderBrush="{DynamicResource ColorWindowHeaderButtonBackgroundMouseOver}">
161161
<Rectangle Fill="{DynamicResource IconExpandDownAll}" Height="13" Width="13"/>
162162
</Button>
163+
<Separator Grid.Column="5" Style="{DynamicResource TemplateSeparator}" Height="Auto" BorderThickness="0,0,1,0" />
164+
<ToggleButton x:Name="ButtonAddNode" ToolTip="Add node" Style="{DynamicResource TemplateToggleButton}" Background="{DynamicResource ColorWindowHeader}" BorderBrush="{DynamicResource ColorWindowHeaderButtonBackgroundMouseOver}">
165+
<Rectangle Fill="{DynamicResource IconAddNode}" Height="13" Width="13"/>
166+
</ToggleButton>
167+
<ToggleButton Style="{DynamicResource TemplateToggleButton}" Background="{DynamicResource ColorWindowHeader}" BorderBrush="{DynamicResource ColorWindowHeaderButtonBackgroundMouseOver}">
168+
<Rectangle Fill="{DynamicResource IconDeleteNode}" Height="13" Width="13"/>
169+
</ToggleButton>
170+
<ToggleButton x:Name="ButtonDeleteNode" ToolTip="Delete Node" Style="{DynamicResource TemplateToggleButton}" Background="{DynamicResource ColorWindowHeader}" BorderBrush="{DynamicResource ColorWindowHeaderButtonBackgroundMouseOver}">
171+
<Rectangle Fill="{DynamicResource IconDeleteNode}" Height="13" Width="13"/>
172+
</ToggleButton>
173+
<ToggleButton x:Name="ButtonStartSelect" ToolTip="Start select" Style="{DynamicResource TemplateToggleButton}" Background="{DynamicResource ColorWindowHeader}" BorderBrush="{DynamicResource ColorWindowHeaderButtonBackgroundMouseOver}">
174+
<Rectangle Fill="{DynamicResource IconSelect}" Height="13" Width="13"/>
175+
</ToggleButton>
176+
<ToggleButton x:Name="ButtonStartCut" ToolTip="Start cut" Style="{DynamicResource TemplateToggleButton}" Background="{DynamicResource ColorWindowHeader}" BorderBrush="{DynamicResource ColorWindowHeaderButtonBackgroundMouseOver}">
177+
<Rectangle Fill="{DynamicResource IconCut}" Height="13" Width="13"/>
178+
</ToggleButton>
163179
</ToolBar>
164180

165181
</ToolBarTray>

SimpleStateMachineNodeEditor/View/NodesCanvas.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@
5858
</MenuItem>
5959
<MenuItem Header="Delete" x:Name="ItemDelete" InputGestureText="Delete" Style="{DynamicResource StyleContextMenuItem}">
6060
<MenuItem.Icon>
61-
<Rectangle Fill="{DynamicResource IconDeleteScheme}" Height="15" Width="15"/>
61+
<Rectangle Fill="{DynamicResource IconDeleteNode}" Height="15" Width="15"/>
6262
</MenuItem.Icon>
6363
</MenuItem>
6464
<Separator Background="#333337"/>
6565
<MenuItem Header="Collaps Up" x:Name="ItemCollapsUp" Style="{DynamicResource StyleContextMenuItem}">
6666
<MenuItem.Icon>
67-
<Rectangle Fill="{DynamicResource CollapseUpIcon}" Height="13" Width="13"/>
67+
<Rectangle Fill="{DynamicResource IconCollapseUp}" Height="13" Width="13"/>
6868
</MenuItem.Icon>
6969
</MenuItem>
7070
<MenuItem Header="Expand Down" x:Name="ItemExpandDown" Style="{DynamicResource StyleContextMenuItem}">

SimpleStateMachineNodeEditor/View/Selector.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ private void Update()
8181
{
8282
Mouse.Capture(this);
8383
Keyboard.Focus(this);
84+
Mouse.OverrideCursor = Cursors.Cross;
8485
}
8586
private void SetupEvents()
8687
{
@@ -103,6 +104,7 @@ private void OnMouseMoves(MouseEventArgs e)
103104
private void OnMouseLeftButtonUp(MouseEventArgs e)
104105
{
105106
this.ViewModel.Visible = null;
107+
Mouse.OverrideCursor = null;
106108
}
107109

108110
#endregion Setup Events

0 commit comments

Comments
 (0)