/
SketchWindow.xaml.cs
145 lines (124 loc) · 4.22 KB
/
SketchWindow.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BoxCreator
{
/// <summary>
/// Interaction logic for SketchWindow.xaml
/// </summary>
public partial class SketchWindow : Window
{
/// <summary>
/// Initializes a new instance of the <see cref="SketchWindow"/> class.
/// </summary>
public SketchWindow()
{
InitializeComponent();
}
/// <summary>
/// Add item button click handler. Creates and adds the item (text or image) to selected element.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
public void AddItemToSelectedElementClick(object sender, RoutedEventArgs e)
{
AddElementWindow addElementWindow = new AddElementWindow();
addElementWindow.ShowDialog();
FrameworkElement elem = addElementWindow.Element;
WallToEdit.AddElement(elem);
}
/// <summary>
/// Up button click handler. Move selected element at 1 px up.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
private void MoveUp(object sender, RoutedEventArgs e)
{
WallToEdit.MoveEditedElementUp();
}
private void MoveDown(object sender, RoutedEventArgs e)
{
WallToEdit.MoveEditedElementDown();
}
private void MoveLeft(object sender, RoutedEventArgs e)
{
WallToEdit.MoveEditedElementLeft();
}
private void MoveRight(object sender, RoutedEventArgs e)
{
WallToEdit.MoveEditedElementRight();
}
private void TurnLeft(object sender, RoutedEventArgs e)
{
WallToEdit.TurnEditedElementLeft();
}
private void TurnRight(object sender, RoutedEventArgs e)
{
WallToEdit.TurnEditedElementRight();
}
private void Enlarge(object sender, RoutedEventArgs e)
{
WallToEdit.EnlargeEditedElement();
}
private void Shrink(object sender, RoutedEventArgs e)
{
WallToEdit.ShrinkEditedElement();
}
/// <summary>
/// Gets or sets the wall which will be displayed on sketch window. This wall can be modified.
/// </summary>
/// <value>
/// The wall to edit.
/// </value>
public Wall WallToEdit { get; set; }
private void OkClick(object sender, RoutedEventArgs e)
{
cnsWallTable.CopyToWall(WallToEdit);
Close();
}
private void CnsWallTableLoaded(object sender, RoutedEventArgs e)
{
WallToEdit.EditableCanvas = cnsWallTable;
WallToEdit.CanvasWidth = int.Parse(cnsWallTable.Parent.GetValue(ActualWidthProperty).ToString());
WallToEdit.CanvasHeight = int.Parse(cnsWallTable.Parent.GetValue(ActualHeightProperty).ToString());
WallToEdit.CopyToWall(cnsWallTable, true);
Title = Title + " - edited wall (" + WallType.WallTypeEnumToString(WallToEdit.WallType) + ")";
foreach (ComboBoxItem cbi in cbWallColorSelection.Items)
{
if (WallToEdit.WallColor.ToString() == cbi.Tag.ToString())
{
cbWallColorSelection.SelectedItem = cbi;
break;
}
}
WallToEdit.CleanTransforms();
}
private void CancelClick(object sender, RoutedEventArgs e)
{
Close();
}
private void CbWallColorSelectionChanged(object sender, SelectionChangedEventArgs e)
{
ComboBox comboBox = sender as ComboBox;
if (comboBox != null)
{
ComboBoxItem comboBoxItem = comboBox.SelectedItem as ComboBoxItem;
string color = comboBoxItem.Tag.ToString();
cnsWallTable.WallColor = (Color)ColorConverter.ConvertFromString(color);
}
}
private void DeleteItemClick(object sender, RoutedEventArgs e)
{
WallToEdit.DeleteEditedElement();
}
}
}