summaryrefslogtreecommitdiff
path: root/src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2012-04-29 23:05:51 +0000
committerIan C <ianc@noddybox.co.uk>2012-04-29 23:05:51 +0000
commite0df170a198f6b875fbbe37a7fa8a3c5fdf3aa5c (patch)
tree19a50de8b19a311b61111ef5d608b2d519f4e753 /src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs
parent0232442759a7bc0254e1bc2afa852df448f09cb8 (diff)
Adding driver and test project.
Diffstat (limited to 'src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs')
-rw-r--r--src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs61
1 files changed, 25 insertions, 36 deletions
diff --git a/src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs b/src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs
index 6dac9b1..501fd2f 100644
--- a/src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs
+++ b/src/Noddybox.Emulation.Keyboard.Schema/KeyboardKey.cs
@@ -16,7 +16,7 @@
// Copyright (c) 2012 Ian Cowburn
//
using System;
-using System.Xml;
+using System.IO;
namespace Noddybox.Emulation.Keyboard.Schema
{
@@ -61,50 +61,39 @@ namespace Noddybox.Emulation.Keyboard.Schema
#endregion
- #region Xml members
+ #region Load/Save
/// <summary>
- /// Set up an XmlElement with the contents of this object.
+ /// Save this object to a stream.
/// </summary>
- /// <param name="doc">The document the element is to be attached to.</param>
- public void SetElement(XmlElement element)
+ /// <param name="stream">The stream to write to.</param>
+ public void Save(BinaryWriter stream)
{
- element.SetAttribute("KeySymbol", KeySymbol);
- element.SetAttribute("X", X.ToString());
- element.SetAttribute("Y", Y.ToString());
- element.SetAttribute("Width", Width.ToString());
- element.SetAttribute("Height", Height.ToString());
- element.SetAttribute("Sticky", Sticky.ToString());
+ stream.Write(KeySymbol);
+ stream.Write(X);
+ stream.Write(Y);
+ stream.Write(Width);
+ stream.Write(Height);
+ stream.Write(Sticky);
}
/// <summary>
- /// Create an instance of this object from an XmlElement.
+ /// Create an instance of this object from a stream.
/// </summary>
- /// <param name="doc">The document the element is to be attached to.</param>
- /// <returns>The XML element.</returns>
- public static KeyboardKey CreateFromElement(XmlElement element)
+ /// <param name="stream">The stream to read from.</param>
+ /// <returns>The KeyboardKey object.</returns>
+ public static KeyboardKey Load(BinaryReader stream)
{
- XmlAttribute symbol = element.Attributes["KeySymbol"];
- XmlAttribute x = element.Attributes["X"];
- XmlAttribute y = element.Attributes["Y"];
- XmlAttribute width = element.Attributes["Width"];
- XmlAttribute height = element.Attributes["Height"];
- XmlAttribute sticky = element.Attributes["Sticky"];
-
- if (symbol == null || x == null || y == null || width == null || height == null || sticky == null)
- {
- throw new ArgumentException("Element does not contain expected attributes");
- }
-
- return new KeyboardKey()
- {
- KeySymbol = symbol.Value,
- X = Convert.ToInt32(x.Value),
- Y = Convert.ToInt32(y.Value),
- Width = Convert.ToInt32(width.Value),
- Height = Convert.ToInt32(height.Value),
- Sticky = Convert.ToBoolean(sticky.Value)
- };
+ KeyboardKey key = new KeyboardKey();
+
+ key.KeySymbol = stream.ReadString();
+ key.X = stream.ReadInt32();
+ key.Y = stream.ReadInt32();
+ key.Width = stream.ReadInt32();
+ key.Height = stream.ReadInt32();
+ key.Sticky = stream.ReadBoolean();
+
+ return key;
}
#endregion