Cosmos/source/Cosmos.Build.Windows/BuildOptionsWindow.xaml.cs

77 lines
2.5 KiB
C#

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 Cosmos.Build.Windows {
public partial class BuildOptionsWindow : Window, IBuildConfiguration {
public BuildOptionsWindow() {
InitializeComponent();
KeyDown += new KeyEventHandler(BuildOptionsWindow_KeyDown);
Loaded += new RoutedEventHandler(BuildOptionsWindow_Loaded);
spanBuildPath.Inlines.Add(Builder.GetBuildPath());
// { ISO, PXE, QEMU, QEMU_With_Hard_Disk_Image, QEMU_GDB, QEMU_GDB_With_Hard_Disk_Image };
foreach (var xTarget in Enum.GetNames(typeof(Builder.Target))) {
lboxTargets.Items.Add((lboxTargets.Items.Count + 1).ToString() + ": " + xTarget.Replace('_', ' '));
}
}
void BuildOptionsWindow_Loaded(object sender, RoutedEventArgs e) {
//Stupid window always shows up behind console, bring it up.
this.Activate();
}
void BuildOptionsWindow_KeyDown(object sender, KeyEventArgs e) {
var xConverter = new KeyConverter();
char xChar = xConverter.ConvertToString(e.Key)[0];
if (Char.IsDigit(xChar)) {
int xValue = int.Parse(xChar.ToString());
if (xValue > 0) {
if (xValue <= lboxTargets.Items.Count) {
string xType = (string)(lboxTargets.Items[xValue - 1]);
Hide();
var xBuilder = new Builder();
mTarget = (Builder.Target)Enum.Parse(typeof(Builder.Target), xType.Remove(0, 3).Replace(' ', '_'));
Close();
}
}
e.Handled = true;
}
}
#region IBuildConfiguration Members
private Builder.Target mTarget;
public Builder.Target Target {
get {
return mTarget;
}
set {
}
}
public bool Compile {
get {
return buildCheckBox.IsChecked.Value;
}
set {
buildCheckBox.IsChecked = value;
}
}
#endregion
}
}