Skip to content

Commit f51d885

Browse files
committed
Added check marks on grid type menu items
1 parent 16298be commit f51d885

File tree

2 files changed

+31
-21
lines changed

2 files changed

+31
-21
lines changed

Src/ScreenGrid.Views/ScreenGridWindow.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
<ComboBox HorizontalAlignment="Left" VerticalAlignment="Center"
9898
Width="85" Height="20"
9999
FontSize="10"
100+
ToolTip="Grid lines color"
100101
ItemsSource="{Binding LineColors, Mode=OneTime}"
101102
SelectedItem="{Binding SelectedLineColor, Mode=TwoWay}">
102103
<ComboBox.ItemTemplate>

Src/ScreenGrid.Views/ScreenGridWindow.xaml.cs

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,10 @@
88
public partial class ScreenGridWindow : Window
99
{
1010
// TODO: Better separation of concerns (MVVM pattern)
11-
12-
// TODO: Fix 'Golden Spiral' grid
13-
// TODO: Disable rotate/flip buttons depends on grid type
14-
15-
// TODO: Find corners by colors change in uniform color
16-
// TODO: 'Auto-snap' option on/off
11+
// TODO: Disable rotate/flip buttons depending on grid type
1712
// TODO: Move window by cursor keys
1813
// TODO: Remove image files from resources
19-
20-
// TODO: show checkboxes in menu items
14+
// TODO: Resize window using sides handles
2115

2216
public ScreenGridWindow()
2317
{
@@ -32,20 +26,20 @@ public ScreenGridWindow()
3226
this.DataContext = this.vm;
3327
}
3428

35-
private ContextMenu cntxMenu;
29+
private ContextMenu mainMenu;
3630

3731
private ViewModels.ScreenGridViewModel vm;
3832

3933
private void Window_Loaded(object sender, RoutedEventArgs e)
4034
{
41-
this.cntxMenu = CreateContextMenu();
35+
this.CreateContextMenu();
4236
}
4337

4438
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
4539
{
4640
if (e.ChangedButton == MouseButton.Right)
4741
{
48-
this.cntxMenu.IsOpen = true;
42+
this.mainMenu.IsOpen = true;
4943
}
5044
else if (e.ChangedButton == MouseButton.Left)
5145
{
@@ -54,32 +48,47 @@ private void Window_MouseDown(object sender, MouseButtonEventArgs e)
5448
}
5549
}
5650

57-
private ContextMenu CreateContextMenu()
51+
private void CreateContextMenu()
5852
{
59-
var cntMenu = new ContextMenu();
53+
// TODO: use bindings to command with parameter
54+
this.mainMenu = new ContextMenu();
6055

6156
foreach (var gr in Models.Grids.GridModeItem.List)
6257
{
63-
var menuItem = new MenuItem() { Header = gr.Title, Tag = gr.GridMode, };
58+
var menuItem = new MenuItem
59+
{
60+
Header = gr.Title,
61+
Tag = gr.GridMode,
62+
};
63+
6464
menuItem.Click += (s, e) =>
6565
{
66+
// Uncheck all others
67+
foreach (var item in this.mainMenu.Items)
68+
{
69+
var mi = item as MenuItem;
70+
if ((mi != null) && (mi.Tag != null))
71+
{
72+
mi.IsChecked = false;
73+
}
74+
}
75+
76+
menuItem.IsChecked = true;
6677
this.vm.GridMode = (Models.Grids.GridType)((s as MenuItem).Tag);
6778
};
6879

69-
cntMenu.Items.Add(menuItem);
80+
this.mainMenu.Items.Add(menuItem);
7081
}
7182

72-
cntMenu.Items.Add(new Separator());
83+
this.mainMenu.Items.Add(new Separator());
7384

7485
var itMinimize = new MenuItem { Header = "Minimize" };
7586
itMinimize.Click += this.btnMinimize_Click;
76-
cntMenu.Items.Add(itMinimize);
87+
this.mainMenu.Items.Add(itMinimize);
7788

7889
var itClose = new MenuItem { Header = "Close" };
7990
itClose.Click += this.btnClose_Click;
80-
cntMenu.Items.Add(itClose);
81-
82-
return cntMenu;
91+
this.mainMenu.Items.Add(itClose);
8392
}
8493

8594
private void btnClose_Click(object sender, RoutedEventArgs e)
@@ -94,7 +103,7 @@ private void btnMinimize_Click(object sender, RoutedEventArgs e)
94103

95104
private void btnMenu_Click(object sender, RoutedEventArgs e)
96105
{
97-
this.cntxMenu.IsOpen = true;
106+
this.mainMenu.IsOpen = true;
98107
}
99108

100109
// TODO: public method

0 commit comments

Comments
 (0)