# HG changeset patch
# User adminsh@apollo
# Date 1332344393 0
# Node ID 045dac5713399ddf9d56a58d1db66447cbffd8fd
# Parent 81f9b72a44ce2c64d523a8054062a4eaad2b649a
Working on data binding to a user control
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/App.xaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/App.xaml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,8 @@
+
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/App.xaml.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/App.xaml.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Windows;
+
+namespace Client
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Client.csproj
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Client.csproj Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,107 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}
+ WinExe
+ Properties
+ Client
+ Client
+ v4.0
+ Client
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ message.ico
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/MainWindow.xaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/MainWindow.xaml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,8 @@
+
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/MainWindow.xaml.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/MainWindow.xaml.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+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.Navigation;
+using System.Windows.Shapes;
+
+namespace Client
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Properties/AssemblyInfo.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Properties/AssemblyInfo.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Client")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Client")]
+[assembly: AssemblyCopyright("Copyright © 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set
+//CultureYouAreCodingWith in your .csproj file
+//inside a . For example, if you are using US english
+//in your source files, set the to en-US. Then uncomment
+//the NeutralResourceLanguage attribute below. Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Properties/Resources.Designer.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Properties/Resources.Designer.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.530
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Client.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Client.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Properties/Resources.resx
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Properties/Resources.resx Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Properties/Settings.Designer.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Properties/Settings.Designer.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.530
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Client.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Properties/Settings.settings
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Properties/Settings.settings Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Sockets/AsynchronousClient.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Sockets/AsynchronousClient.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,187 @@
+using System;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+
+namespace Client.Sockets
+{
+ public class AsynchronousClient
+ {
+ // The port number for the remote device.
+ private const int Port = 11000;
+
+ // ManualResetEvent instances signal completion.
+ private static readonly ManualResetEvent connectDone =
+ new ManualResetEvent(false);
+
+ private static readonly ManualResetEvent sendDone =
+ new ManualResetEvent(false);
+
+ private static readonly ManualResetEvent receiveDone =
+ new ManualResetEvent(false);
+
+ // The response from the remote device.
+ private static String response = String.Empty;
+
+ private static void StartClient()
+ {
+ // Connect to a remote device.
+ try
+ {
+ // Establish the remote endpoint for the socket.
+ // The name of the
+ // remote device is "host.contoso.com".
+ var ipHostInfo = Dns.GetHostEntry("host.contoso.com");
+ var ipAddress = ipHostInfo.AddressList[0];
+ var remoteEP = new IPEndPoint(ipAddress, Port);
+
+ // Create a TCP/IP socket.
+ var client = new Socket(
+ AddressFamily.InterNetwork,
+ SocketType.Stream,
+ ProtocolType.Tcp);
+
+ // Connect to the remote endpoint.
+ client.BeginConnect(
+ remoteEP,
+ ConnectCallback,
+ client);
+
+ connectDone.WaitOne();
+
+ // Send test data to the remote device.
+ Send(client, "This is a test");
+ sendDone.WaitOne();
+
+ // Receive the response from the remote device.
+ Receive(client);
+ receiveDone.WaitOne();
+
+ // Write the response to the console.
+ Console.WriteLine("Response received : {0}", response);
+
+ // Release the socket.
+ client.Shutdown(SocketShutdown.Both);
+ client.Close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ private static void ConnectCallback(IAsyncResult ar)
+ {
+ try
+ {
+ // Retrieve the socket from the state object.
+ var client = (Socket) ar.AsyncState;
+
+ // Complete the connection.
+ client.EndConnect(ar);
+
+ Console.WriteLine(
+ "Socket connected to {0}",
+ client.RemoteEndPoint);
+
+ // Signal that the connection has been made.
+ connectDone.Set();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ private static void Receive(Socket client)
+ {
+ try
+ {
+ // Create the state object.
+ var state = new StateObject {WorkSocket = client};
+
+ // Begin receiving the data from the remote device.
+ client.BeginReceive(state.Buffer, 0, StateObject.BufferSize, 0,
+ ReceiveCallback, state);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ private static void ReceiveCallback(IAsyncResult ar)
+ {
+ try
+ {
+ // Retrieve the state object and the client socket
+ // from the asynchronous state object.
+ var state = (StateObject) ar.AsyncState;
+ var client = state.WorkSocket;
+
+ // Read data from the remote device.
+ var bytesRead = client.EndReceive(ar);
+
+ if (bytesRead > 0)
+ {
+ // There might be more data, so store the data received so far.
+ state.Sb.Append(Encoding.ASCII.GetString(state.Buffer, 0, bytesRead));
+
+ // Get the rest of the data.
+ client.BeginReceive(state.Buffer, 0, StateObject.BufferSize, 0,
+ ReceiveCallback, state);
+ }
+ else
+ {
+ // All the data has arrived; put it in response.
+ if (state.Sb.Length > 1)
+ {
+ response = state.Sb.ToString();
+ }
+ // Signal that all bytes have been received.
+ receiveDone.Set();
+ }
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ private static void Send(Socket client, String data)
+ {
+ // Convert the string data to byte data using ASCII encoding.
+ var byteData = Encoding.ASCII.GetBytes(data);
+
+ // Begin sending the data to the remote device.
+ client.BeginSend(
+ byteData,
+ 0,
+ byteData.Length,
+ 0,
+ SendCallback,
+ client);
+ }
+
+ private static void SendCallback(IAsyncResult ar)
+ {
+ try
+ {
+ // Retrieve the socket from the state object.
+ var client = (Socket) ar.AsyncState;
+
+ // Complete sending the data to the remote device.
+ var bytesSent = client.EndSend(ar);
+ Console.WriteLine("Sent {0} bytes to server.", bytesSent);
+
+ // Signal that all bytes have been sent.
+ sendDone.Set();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+ }
+}
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/Sockets/StateObject.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Client/Sockets/StateObject.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,21 @@
+using System.Net.Sockets;
+using System.Text;
+
+namespace Client.Sockets
+{
+ // State object for receiving data from remote device.
+ public class StateObject
+ {
+ // Size of receive buffer
+ public const int BufferSize = 256;
+
+ // Receive buffer
+ public byte[] Buffer = new byte[BufferSize];
+
+ // Received data string
+ public StringBuilder Sb = new StringBuilder();
+
+ // Client socket
+ public Socket WorkSocket;
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Client/message.ico
Binary file Messaging/Client/message.ico has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Binding/BindingErrorTraceListener.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Binding/BindingErrorTraceListener.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,69 @@
+// http://www.switchonthecode.com/tutorials/wpf-snippet-detecting-binding-errors
+
+using System.Diagnostics;
+using System.Text;
+using System.Windows;
+
+namespace Common.Binding
+{
+ public class BindingErrorTraceListener : DefaultTraceListener
+ {
+ private static BindingErrorTraceListener _listener;
+
+
+ private readonly StringBuilder _message = new StringBuilder();
+
+ private BindingErrorTraceListener()
+ {
+ }
+
+ public override void Write(string message)
+ {
+ _message.Append(message);
+ }
+
+ public override void WriteLine(string message)
+ {
+ _message.Append(message);
+
+ var final = _message.ToString();
+ _message.Length = 0;
+
+ MessageBox.Show(final,
+ "Binding Error",
+ MessageBoxButton.OK,
+ MessageBoxImage.Error);
+ }
+
+ public static void CloseTrace()
+ {
+ if (_listener == null)
+ {
+ return;
+ }
+
+ _listener.Flush();
+ _listener.Close();
+ PresentationTraceSources.DataBindingSource.Listeners.Remove(_listener);
+ _listener = null;
+ }
+
+ [Conditional("DEBUG")]
+ public static void SetTrace()
+ {
+ SetTrace(SourceLevels.Error, TraceOptions.None);
+ }
+
+ public static void SetTrace(SourceLevels level, TraceOptions options)
+ {
+ if (_listener == null)
+ {
+ _listener = new BindingErrorTraceListener();
+ PresentationTraceSources.DataBindingSource.Listeners.Add(_listener);
+ }
+
+ _listener.TraceOutputOptions = options;
+ PresentationTraceSources.DataBindingSource.Switch.Level = level;
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Common.csproj
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Common.csproj Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,95 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}
+ Library
+ Properties
+ Common
+ Common
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\Libs\MvvmLight.4.0\GalaSoft.MvvmLight.WPF4.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MessageTile.xaml
+
+
+
+
+
+
+ Designer
+ MSBuild:Compile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Controls/MessageTile.xaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Controls/MessageTile.xaml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Controls/MessageTile.xaml.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Controls/MessageTile.xaml.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,80 @@
+using System;
+using System.ComponentModel;
+using System.Windows;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+
+namespace Common.Controls
+{
+ ///
+ /// Interaction logic for MessageTile.xaml
+ ///
+ public partial class MessageTile
+ {
+ public MessageTile()
+ {
+ InitializeComponent();
+ }
+
+ #region Dependency Properties
+
+ #region DisplayIcon
+
+ ///
+ /// Icon for the tile
+ ///
+ public static readonly DependencyProperty DisplayIconProperty =
+ DependencyProperty.Register("DisplayIcon",
+ typeof(BitmapImage),
+ typeof(MessageTile),
+ new PropertyMetadata(null));
+
+ [Bindable(true)]
+ public BitmapImage DisplayIcon
+ {
+ get { return (BitmapImage)this.GetValue(DisplayIconProperty); }
+ set { this.SetValue(DisplayIconProperty, value); }
+ }
+ #endregion
+
+ #region DisplayCount
+
+ ///
+ /// Display count for the tile
+ ///
+ public static readonly DependencyProperty DisplayCountProperty =
+ DependencyProperty.Register("DisplayCount",
+ typeof(int),
+ typeof(MessageTile),
+ new PropertyMetadata(0));
+
+ [Bindable(true)]
+ public int DisplayCount
+ {
+ get { return (int) this.GetValue(DisplayCountProperty); }
+ set { this.SetValue(DisplayCountProperty, value); }
+ }
+ #endregion
+
+ #region DisplayText
+
+ ///
+ /// Main Display text for the tile
+ ///
+ public static readonly DependencyProperty DisplayTextProperty =
+ DependencyProperty.Register("DisplayText",
+ typeof(string),
+ typeof(MessageTile),
+ new PropertyMetadata("Not set"));
+
+ [Bindable(true)]
+ public string DisplayText
+ {
+ get { return (string) this.GetValue(DisplayTextProperty); }
+ set { this.SetValue(DisplayTextProperty, value); }
+ }
+ #endregion
+
+ #endregion
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/Mail.png
Binary file Messaging/Common/Icons/Mail.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/add.png
Binary file Messaging/Common/Icons/add.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/back.png
Binary file Messaging/Common/Icons/back.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/basecircle.png
Binary file Messaging/Common/Icons/basecircle.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/cancel.png
Binary file Messaging/Common/Icons/cancel.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/check.png
Binary file Messaging/Common/Icons/check.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/delete.png
Binary file Messaging/Common/Icons/delete.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/download.png
Binary file Messaging/Common/Icons/download.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/edit.png
Binary file Messaging/Common/Icons/edit.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/favs.png
Binary file Messaging/Common/Icons/favs.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/heart.png
Binary file Messaging/Common/Icons/heart.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/i.png
Binary file Messaging/Common/Icons/i.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/minus.png
Binary file Messaging/Common/Icons/minus.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/next.png
Binary file Messaging/Common/Icons/next.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/parent.png
Binary file Messaging/Common/Icons/parent.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/pause.png
Binary file Messaging/Common/Icons/pause.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/play.png
Binary file Messaging/Common/Icons/play.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/questionmark.png
Binary file Messaging/Common/Icons/questionmark.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/refresh.png
Binary file Messaging/Common/Icons/refresh.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/save.png
Binary file Messaging/Common/Icons/save.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/search.png
Binary file Messaging/Common/Icons/search.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/settings.png
Binary file Messaging/Common/Icons/settings.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Icons/upload.png
Binary file Messaging/Common/Icons/upload.png has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Logger/Log.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Logger/Log.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,13 @@
+using Common.Messages;
+using GalaSoft.MvvmLight.Messaging;
+
+namespace Common.Logger
+{
+ public class Log
+ {
+ public static void Write(string body)
+ {
+ Messenger.Default.Send(new LogMessage() { Body = body });
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Messages/LogMessage.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Messages/LogMessage.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,9 @@
+using GalaSoft.MvvmLight.Messaging;
+
+namespace Common.Messages
+{
+ public class LogMessage : MessageBase
+ {
+ public string Body { get; set; }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Properties/AssemblyInfo.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Properties/AssemblyInfo.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Common")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Common")]
+[assembly: AssemblyCopyright("Copyright © 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("26093156-666a-4bb1-9fa4-bd08a9c4d83d")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Common/Settings.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Common/Settings.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,9 @@
+namespace Common
+{
+ public class Settings
+ {
+ public const int SocketsPortNumber = 10001;
+ public const string QueueName = "Queue#1";
+ //public const string Uri = @"amqp://user:pass@localhost:5672/vhost\";
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Elysium.Theme.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/Elysium.Theme.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Elysium.Theme.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/Elysium.Theme.1.3/Elysium.Theme.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,337 @@
+
+
+
+ Elysium.Theme
+
+
+
+
+ Indicates that marked element should be localized or not.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if a element should be localized; otherwise, false.
+
+
+
+ Returns whether the value of the given object is equal to the current .
+
+ The object to test the value equality of.
+
+ true if the value of the given object is equal to that of the current; otherwise, false.
+
+
+
+
+ Returns the hash code for this instance.
+
+ A hash code for the current .
+
+
+
+ Gets a value indicating whether a element should be localized.
+ true if a element should be localized; otherwise, false.
+
+
+
+
+ Indicates that marked method builds string by format pattern and (optional) arguments.
+ Parameter, which contains format string, should be given in constructor.
+ The format string should be in -like form
+
+
+
+
+ Initializes new instance of StringFormatMethodAttribute
+
+ Specifies which parameter of an annotated method should be treated as format-string
+
+
+
+ Gets format parameter name
+
+
+
+
+ Indicates that the function argument should be string literal and match one of the parameters of the caller function.
+ For example, has such parameter.
+
+
+
+
+ Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied.
+ To set the condition, mark one of the parameters with attribute
+
+
+
+
+
+ Indicates the condition parameter of the assertion method.
+ The method itself should be marked by attribute.
+ The mandatory argument of the attribute is the assertion type.
+
+
+
+
+
+ Initializes new instance of AssertionConditionAttribute
+
+ Specifies condition type
+
+
+
+ Gets condition type
+
+
+
+
+ Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues.
+ Otherwise, execution is assumed to be halted
+
+
+
+
+ Indicates that the marked parameter should be evaluated to true
+
+
+
+
+ Indicates that the marked parameter should be evaluated to false
+
+
+
+
+ Indicates that the marked parameter should be evaluated to null value
+
+
+
+
+ Indicates that the marked parameter should be evaluated to not null value
+
+
+
+
+ Indicates that the marked method unconditionally terminates control flow execution.
+ For example, it could unconditionally throw exception
+
+
+
+
+ Indicates that the value of marked element could be null sometimes, so the check for null is necessary before its usage
+
+
+
+
+ Indicates that the value of marked element could never be null
+
+
+
+
+ Indicates that the value of marked type (or its derivatives) cannot be compared using '==' or '!=' operators.
+ There is only exception to compare with null, it is permitted
+
+
+
+
+ When applied to target attribute, specifies a requirement for any type which is marked with
+ target attribute to implement or inherit specific type or types
+
+
+
+ [BaseTypeRequired(typeof(IComponent)] // Specify requirement
+ public class ComponentAttribute : Attribute
+ {}
+
+ [Component] // ComponentAttribute requires implementing IComponent interface
+ public class MyComponent : IComponent
+ {}
+
+
+
+
+
+ Initializes new instance of BaseTypeRequiredAttribute
+
+ Specifies which types are required
+
+
+
+ Gets enumerations of specified base types
+
+
+
+
+ Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
+ so this symbol will not be marked as unused (as well as by other usage inspections)
+
+
+
+
+ Gets value indicating what is meant to be used
+
+
+
+
+ Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections)
+
+
+
+
+ Gets value indicating what is meant to be used
+
+
+
+
+ Only entity marked with attribute considered used
+
+
+
+
+ Indicates implicit assignment to a member
+
+
+
+
+ Indicates implicit instantiation of a type with fixed constructor signature.
+ That means any unused constructor parameters won't be reported as such.
+
+
+
+
+ Indicates implicit instantiation of a type
+
+
+
+
+ Specify what is considered used implicitly when marked with or
+
+
+
+
+ Members of entity marked with attribute are considered used
+
+
+
+
+ Entity marked with attribute and all its members considered used
+
+
+
+
+ This attribute is intended to mark publicly available API which should not be removed and so is treated as used.
+
+
+
+
+ Tells code analysis engine if the parameter is completely handled when the invoked method is on stack.
+ If the parameter is delegate, indicates that delegate is executed while the method is executed.
+ If the parameter is enumerable, indicates that it is enumerated while the method is executed.
+
+
+
+
+ Indicates that method doesn't contain observable side effects.
+ The same as
+
+
+
+
+ This class facilitates associating a key binding in XAML markup to a command
+ defined in a View Model by exposing a Command dependency property.
+ The class derives from Freezable to work around a limitation in WPF when data-binding from XAML.
+
+
+
+
+ This class allows delegating the commanding logic to methods passed as parameters,
+ and enables a View to bind commands to objects that are not part of the element tree.
+
+
+
+
+ Constructor
+
+
+
+
+ Method to determine if the command can be executed
+
+
+
+
+ Execution of the command
+
+
+
+
+ Raises the CanExecuteChaged event
+
+
+
+
+ Protected virtual method to raise CanExecuteChanged event
+
+
+
+
+ Property to enable or disable CommandManager's automatic requery on this command
+
+
+
+
+ ICommand.CanExecuteChanged implementation
+
+
+
+
+ This class allows delegating the commanding logic to methods passed as parameters,
+ and enables a View to bind commands to objects that are not part of the element tree.
+
+ Type of the parameter passed to the delegates
+
+
+
+ Constructor
+
+
+
+
+ Method to determine if the command can be executed
+
+
+
+
+ Execution of the command
+
+
+
+
+ Raises the CanExecuteChaged event
+
+
+
+
+ Protected virtual method to raise CanExecuteChanged event
+
+
+
+
+ Property to enable or disable CommandManager's automatic requery on this command
+
+
+
+
+ ICommand.CanExecuteChanged implementation
+
+
+
+
+ This class contains methods for the CommandManager that help avoid memory leaks by
+ using weak references.
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Drawing.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Drawing.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Drawing.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Drawing.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,1770 @@
+
+
+
+ Microsoft.Expression.Drawing
+
+
+
+
+ Renders a callout shape supporting several shapes combined with a callout arrow.
+
+
+
+
+ Provides a base class of a composite shape that derives from and implements .
+
+
+ implements interface,
+ and supports rendering a geometry similar to , but the geometry can be rendered outside the layout boundary.
+
+ A typical implementation has a customized default template in generic.xaml which template-binds most shape properties to a .
+ It should also extend the property to customize the appearance of the .
+
+ This class also supports showing content together with the shape.
+
+
+
+
+ Provides an interface to describe the parameters of a Shape.
+
+
+ This interface is the data for communication between Shape and GeometrySource.
+ Typically, a concrete implementation of IShape will implement this interface and pass it into
+ GeometrySource.UpdateGeometry(), which will then consume the shape as a read-only data provider.
+
+
+
+
+ Provides the necessary interface to define a Shape.
+ Both primitive and composite shapes need to match this interface, although they might derive from different types of FrameworkElement.
+
+
+
+
+ Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously.
+
+
+
+ Gets or sets the that specifies how to paint the interior of the shape.
+ A that describes how the shape's interior is painted. The default is null.
+
+
+ Gets or sets the that specifies how the outline is painted.
+ A that specifies how the outline is painted.
+
+
+ Gets or sets the width of the stroke outline.
+ The width of the outline, in pixels.
+
+
+ Gets or sets a enumeration value that describes how the shape fills its allocated space.
+ One of the enumeration values. The default value at runtime depends on the type of .
+
+
+
+ Gets the rendered geometry presented by the rendering engine.
+
+
+
+
+ Gets the margin between logical bounds and actual geometry bounds.
+ This can be either positive (as in ) or negative (as in ).
+
+
+
+
+ Occurs when RenderedGeometry is changed.
+
+
+
+
+ Extends how the shape is drawn with creating geometry source.
+
+
+
+
+ Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously.
+
+
+
+ Provides the behavior for the Arrange portion of a Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior.
+ The actual size used once the element is arranged in layout.
+ The final area within the parent that this object should use to arrange itself and its children.
+ will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin.
+
+
+
+ Transforms a string content into with center alignment and multiple line support.
+
+
+ Use template-binding to instead of to enable this method.
+
+
+
+
+ Gets or sets the that specifies how to paint the interior of the shape.
+
+ A that describes how the shape's interior is painted.
+
+
+ Gets or sets the that specifies how the outline is painted.
+ A that specifies how the outline is painted.
+
+
+ Gets or sets the width of the stroke outline.
+ The width of the outline, in pixels.
+
+
+ Gets or sets a enumeration value that describes how the shape fills its allocated space.
+ One of the enumeration values.
+
+
+ Gets or sets a enumeration value that describes the at the start of a .
+ A value of the enumeration that specifies the shape at the start of a .
+
+
+ Gets or sets a enumeration value that describes the at the end of a line.
+ One of the enumeration values for .
+
+
+ Gets or sets a enumeration value that specifies the type of join that is used at the vertices of a .
+ A value of the enumeration that specifies the join appearance.
+
+
+ Gets or sets a limit on the ratio of the miter length to half the of a element.
+ The limit on the ratio of the miter length to the of a element. This value is always a positive number that is greater than or equal to 1.
+
+
+ Gets or sets a collection of values that indicate the pattern of dashes and gaps that is used to outline shapes.
+ A collection of values that specify the pattern of dashes and gaps.
+
+
+ Gets or sets a enumeration value that specifies how the ends of a dash are drawn.
+ One of the enumeration values for . The default is .
+
+
+ Gets or sets a that specifies the distance within the dash pattern where a dash begins.
+ A that represents the distance within the dash pattern where a dash begins. The default value is 0.
+
+
+
+ Gets the rendered geometry presented by the rendering engine.
+
+
+
+
+ Gets the margin between the logical bounds and the actual geometry bounds.
+ This can be either positive (as in ) or negative (as in ).
+
+
+
+
+ Gets or sets the internal content that converts a string into a center-aligned, multiple-line TextBlock.
+
+
+
+
+ Occurs when RenderedGeometry is changed.
+
+
+
+
+ Gets or sets the position of the callout relative to the top and left corner.
+
+
+
+
+ Gets or sets the callout style.
+
+
+
+
+ Provides a base class of a composite shape that derives from and implements .
+
+
+ implements interface,
+ and supports rendering a geometry similar to , but the geometry can be rendered outside the layout boundary.
+
+ A typical implementation has a customized default template in generic.xaml which template-binds most shape properties to a .
+ It should also extend the property to customize the appearance of the .
+
+
+
+
+ Extends how the shape is drawn with creating geometry source.
+
+
+
+
+ Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously.
+
+
+
+ Provides the behavior for the Arrange portion of a Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior.
+ The actual size used once the element is arranged in layout.
+ The final area within the parent that this object should use to arrange itself and its children.
+ will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin.
+
+
+
+ Gets or sets the that specifies how to paint the interior of the shape.
+
+ A that describes how the shape's interior is painted.
+
+
+ Gets or sets the that specifies how the outline is painted.
+ A that specifies how the outline is painted.
+
+
+ Gets or sets the width of the stroke outline.
+ The width of the outline, in pixels.
+
+
+ Gets or sets a enumeration value that describes how the shape fills its allocated space.
+ One of the enumeration values.
+
+
+ Gets or sets a enumeration value that describes the at the start of a .
+ A value of the enumeration that specifies the shape at the start of a .
+
+
+ Gets or sets a enumeration value that describes the at the end of a line.
+ One of the enumeration values for .
+
+
+ Gets or sets a enumeration value that specifies the type of join that is used at the vertices of a .
+ A value of the enumeration that specifies the join appearance.
+
+
+ Gets or sets a limit on the ratio of the miter length to half the of a element.
+ The limit on the ratio of the miter length to the of a element. This value is always a positive number that is greater than or equal to 1.
+
+
+ Gets or sets a collection of values that indicate the pattern of dashes and gaps that is used to outline shapes.
+ A collection of values that specify the pattern of dashes and gaps.
+
+
+ Gets or sets a enumeration value that specifies how the ends of a dash are drawn.
+ One of the enumeration values for . The default is .
+
+
+ Gets or sets a that specifies the distance within the dash pattern where a dash begins.
+ A that represents the distance within the dash pattern where a dash begins. The default value is 0.
+
+
+
+ Gets the rendered geometry presented by the rendering engine.
+
+
+
+
+ Gets the margin between the logical bounds and the actual geometry bounds.
+ This can be either positive (as in ) or negative (as in ).
+
+
+
+
+ Occurs when RenderedGeometry is changed.
+
+
+
+
+ Renders a bent line segment with optional arrow heads on both ends.
+
+
+
+ Provides the behavior for the Measure pass of Silverlight layout. Classes can override this method to define their own Measure pass behavior.
+ The size that this object determines it requires during layout, based on its calculations of child object allotted sizes, or possibly on other considerations such as fixed container size.
+ The available size that this object can give to child objects. Infinity () can be specified as a value to indicate that the object will size to whatever content is available.
+
+ A default can render at anysize.
+ The will stretch to the layout boundary and render to the outside if necessary.
+
+
+
+
+ Gets or sets the amount of bend for the arrow.
+
+ The bend amount between 0 and 1.
+
+
+
+ Gets or sets how the arrow head is rendered at the start of the line.
+
+
+
+
+ Gets or sets how the arrow head is rendered at the end of the line.
+
+
+
+
+ Gets or sets from which corner to start drawing the arrow.
+
+
+
+
+ Gets or sets the length of the arrow in pixels.
+
+
+
+
+ Provides an items control that displays one selected item, and allows panning between items using touch gestures.
+
+
+
+
+ The constructor for PanningItems.
+
+
+
+
+ Called when the PanningItems template is applied.
+
+
+
+
+ Gets or sets the orientation of items in the control.
+
+
+
+
+ Gets or sets the flick tolerance. This can be a value between 0 and 1.
+ It represents the percentage of the size of the PanningItems needed to be covered by the flick gesture to trigger an items change.
+
+
+
+
+ Gets or sets the item before the selected item.
+
+
+
+
+ Gets or sets the item after the selected item.
+
+
+
+
+ Gets or sets whether the contents of the items control will loop, so that the first item will follow the last item.
+
+
+
+
+ Gets or sets the value of the slider controlling the panning motion.
+
+
+
+
+ Helper class to work with PathGeometry.
+
+
+
+
+ Converts a string in the path mini-language into a PathGeometry.
+
+ A string in the path mini-language.
+
+
+
+ Converts the given geometry into a single PathGeometry.
+
+
+
+
+ Updates the given geometry as PathGeometry with a polyline matching a given point list.
+
+
+
+
+ Parses abbreviated geometry sytax.
+
+
+
+
+ Helper class to convert an ArcSegment to BezierSegment(s).
+
+
+ Helper class to work with PathSegment and all variations.
+
+
+ Strategy classes to handle different types of PathSegment.
+
+
+
+
+ Converts an arc segment into Bezier format.
+ Returns BezierSegment, PolyBezierSegment, LineSegment, or null.
+ When returning null, the arc degenerates into the start point.
+
+
+
+
+ Avoid calling the three-parameter constructor, since it always sets a local value for IsStroked.
+
+
+
+
+
+
+ Updates the SegmentCollection with a given polyline matching a given point list.
+ Tries to keep changes minimum and returns false if nothing has been changed.
+
+
+
+
+ Updates the collection[index] segment with a poly-Bezier segment matching a given point list.
+ A given point list must contain 3*N points for N Bezier segments.
+
+
+
+
+ Tests if a given path segment is empty.
+
+
+
+
+ Gets the point count in a given path segment.
+
+
+
+
+ Gets the last point of a given path segment.
+
+
+
+
+ Gets the point of a given index in a given segment.
+ If input is (-1), returns the last point.
+
+
+
+
+ Flattens a given segment and adds resulting points into a given point list.
+
+ The segment to be flatten.
+ The resulting points list.
+ The start point of the segment.
+ The error tolerance. Must be positive. Can be zero. Fallback to default tolerance.
+
+
+
+ ArcToBezier, computes the Bezier approximation of an arc.
+
+
+ This utility computes the Bezier approximation for an elliptical arc as
+ it is defined in the SVG arc spec. The ellipse from which the arc is
+ carved is axis-aligned in its own coordinates, and defined there by its
+ x and y radii. The rotation angle defines how the ellipse's axes are
+ rotated relative to the x axis. The start and end points define one of 4
+ possible arcs; the sweep and large-arc flags determine which one of
+ these arcs will be chosen.
+
+ Returning cPieces = 0 indicates a line instead of an arc
+ cPieces = -1 indicates that the arc degenerates to a point
+
+
+
+
+ Gets the number of Bezier arcs, and sine/cosine of each.
+
+
+ This is a private utility used by ArcToBezier. Breaks the arc into
+ pieces so that no piece will span more than 90 degrees. The input
+ points are on the unit circle.
+
+
+
+
+ GetBezierDistance returns the distance as a fraction of the radius.
+
+
+ Get the distance from a circular arc's end points to the control points
+ of the Bezier arc that approximates it, as a fraction of the arc's
+ radius.
+
+ Since the result is relative to the arc's radius, it depends strictly on
+ the arc's angle. The arc is assumed to be of 90 degrees or less, so the
+ angle is determined by the cosine of that angle, which is derived from
+ rDot = the dot product of two radius vectors. We need the Bezier curve
+ that agrees with the arc's points and tangents at the ends and midpoint.
+ Here we compute the distance from the curve's endpoints to its control
+ points.
+
+ Since we are looking for the relative distance, we can work on the unit
+ circle. Place the center of the circle at the origin, and put the X axis
+ as the bisector between the 2 vectors. Let a be the angle between the
+ vectors. Then the X coordinates of the 1st and last points are cos(a/2).
+ Let x be the X coordinate of the 2nd and 3rd points. At t=1/2 we have a
+ point at (1,0). But the terms of the polynomial there are all equal:
+
+ (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8,
+
+ so from the Bezier formula there we have:
+
+ 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)),
+
+ hence
+
+ x = (4 - cos(a/2)) / 3
+
+ The X difference between that and the 1st point is:
+
+ DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3.
+
+ But DX = distance / sin(a/2), hence the distance is
+
+ dist = (4/3)*(1 - cos(a/2)) / sin(a/2).
+
+ Rather than the angle a, we are given rDot = R^2 * cos(a), so we
+ multiply top and bottom by R:
+
+ dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2)
+
+ and use some trig:
+ ________________
+ cos(a/2) = \/(1 + cos(a)) / 2
+ ______________________
+ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2
+ ________________
+ = \/(R^2 + rDot) / 2
+
+ Let A = (R^2 + rDot)/2.
+ ____________________
+ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2)
+ _______
+ = \/R^2 - A
+
+ so:
+ _
+ 4 R - \/A
+ dist = - * ------------
+ 3 _______
+ \/R^2 - A
+
+ History:
+ 5/29/2001 MichKa
+ Created it.
+
+
+
+
+ Returns false if the radius is too small compared to the chord length (returns true on NaNs)
+ radius is modified to the value that is accepted.
+
+
+
+
+ A utility class to flatten Bezier curves.
+
+
+
+
+ Flattens a Bezier cubic curve and adds the resulting polyline to the third parameter.
+
+ The four Bezier cubic control points.
+ The maximum distance between two corresponding points on the true curve
+ and on the flattened polyline. Must be strictly positive.
+ Where to add the flattened polyline.
+ True to skip the first control point when adding the flattened polyline.
+ Where to add the value of the Bezier curve parameter associated with
+ each of the polyline vertices.
+ If is empty, the first control point
+ and its associated parameter are always added.
+
+
+
+ Flattens a Bezier quadratic curve and adds the resulting polyline to the third parameter.
+ Uses degree elevation for Bezier curves to reuse the code for the cubic case.
+
+ The three Bezier quadratic control points.
+ The maximum distance between two corresponding points on the true curve
+ and on the flattened polyline. Must be strictly positive.
+ Where to add the flattened polyline.
+ Whether to skip the first control point when adding the flattened polyline.
+ Where to add the value of the Bezier curve parameter associated with
+ each of the polyline vertices.
+ If is empty, the first control point and
+ its associated parameter are always added.
+
+
+
+ Extension methods that support non-geometry types.
+
+
+
+
+ Allows the application of an action delegate (often a very simple lambda) against an entire sequence.
+
+
+
+
+ Allows the application of an action delegate (often a very simple lambda) against an entire sequence.
+
+
+
+
+ Allows the application of an action delegate (often a very simple lambda) against an entire sequence with the index of each item.
+
+
+
+
+ Ensures the count of a list to a given count. Creates with a given factory or removes items when necessary.
+ If Input IList is a List, AddRange or RemoveRange is used when there's no factory.
+
+
+
+
+ Ensures the count of a list is at least the given count. Creates with a given factory.
+
+
+
+
+ Add a range of items to the end of a collection.
+ If a collection is a list, List.AddRange is used.
+
+
+
+
+ Gets the last item of a given list.
+
+
+
+
+ Removes the last item from the given list.
+
+
+
+
+ Makes a copy of obj and all it's public properties, including all collection properties.
+
+
+
+
+ Sets the value if different. Avoids setting a local value if possible.
+ Returns true when the value has been changed.
+
+
+
+
+ Clears the dependency property when it is locally set on the given dependency object.
+ Returns false if the dependeny property is not locally set.
+
+
+
+
+ Finds all visual descendants of a given type and condition using breadth-first search.
+
+
+
+
+ Gets all visual children in IEnumerable.
+
+
+
+
+ Unifies the interface of PropertyMetadata in WPF and Silverlight.
+ Provides the necessary notification about render, arrange, or measure.
+
+
+
+
+ This private Ctor should only be used by AttachCallback.
+
+
+
+
+ Chain InternalCallback() to attach the instance of DrawingPropertyMetadata on property callback.
+ In Silverlight, the property metadata is thrown away after setting. Use callback to remember it.
+
+
+
+
+ Before chaining the original callback, trigger DrawingPropertyChangedEvent.
+
+
+
+
+ Extension methods for geometry-related data structures (Point/Vector/Size/Rect).
+
+
+
+
+ Resizes the rectangle to a relative size while keeping the center invariant.
+
+
+
+
+ Gets the difference vector between two points.
+
+
+
+
+ Memberwise plus for Point.
+
+
+
+
+ Memberwise minus for Point.
+
+
+
+
+ Converts a string of mini-languages to a .
+
+ See: Path Markup Syntax(http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx)
+ The string of path mini-languages for describing geometric paths.
+ A converted from the the path mini-languages.
+
+
+
+ Flattens a and adds result points to a given .
+
+ The input .
+ The point list to which result points will append.
+ A positive number specifying the maximum allowed error from the result points to the input path figure. A Value of zero allows the algorithm to pick the tolerance automatically.
+
+
+
+ Gets the normalized arc in a (0,0)(1,1) box.
+ Zero degrees is mapped to [0.5, 0] (up), and clockwise.
+
+
+
+
+ Gets the absolute arc point in a given bound with a given relative radius.
+
+
+
+
+ Gets the angle on an arc relative to a (0,0)(1,1) box.
+ Zero degrees is mapped to [0.5, 0] (up), and clockwise.
+
+
+
+
+ Gets the angle on an arc from a given absolute point relative to a bound.
+
+
+
+
+ Computes the transform that moves "Rect from" to "Rect to".
+
+
+
+
+ Computes the transform from the coordinate space of one UIElement to another.
+
+ The source element.
+ The destination element.
+ The transform between the UIElements, or null if it cannot be computed.
+
+
+
+ Maps a relative point to an absolute point using the mapping from a given bound to a (0,0)(1,1) box.
+
+
+
+
+ Maps an absolute point to a relative point using the mapping from a (0,0)(1,1) box to a given bound.
+
+
+
+
+ Computes the bound after stretching within a given logical bound.
+ If stretch to uniform, use given aspectRatio.
+ If aspectRatio is empty, it's equivalent to Fill.
+ If stretch is None, it's equivalent to Fill or Uniform.
+
+
+
+
+ Returns the mid point of two points.
+
+ The first point.
+ The second point.
+ The mid point between and .
+
+
+
+ Returns the dot product of two vectors.
+
+ The first vector.
+ The second vector.
+ The dot product of and .
+
+
+
+ Returns the dot product of two points.
+
+
+
+
+ Returns the distance between two points.
+
+ The first point.
+ The second point.
+ The distance between and .
+
+
+
+ Returns the square of the distance between two points.
+
+ The first point.
+ The second point.
+ The square of the distance between and .
+
+
+
+ Determinant of the cross product. Equivalent to directional area.
+
+
+
+
+ Computes the normal direction vector of given line segments.
+
+
+
+
+ Computes the perpendicular vector, 90-degrees, counter-clockwise.
+ Vector to the right perpendicular results in a vector to up.
+
+
+
+
+ Returns whether the two geometries are identical.
+
+
+
+
+ Ensures the value is an instance of result type (T). If not, replace with a new instance of type (T).
+
+
+
+
+ Ensures the list[index] is an instance of result type (T). If not, replace with a new instance of type (T).
+
+
+
+
+ Helper class that provides static properties and methods related to floating point arithmetic.
+
+
+
+
+ The minimum distance to consider that two values are same.
+ Note: internal floating point in MIL/SL is float, not double.
+
+
+
+
+ The value of the angle of a full circle.
+
+
+
+
+ The inner radius for a pentagram polygon shape, at precision of three digits in percentage.
+ (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, which is 0.47210998990512996761913067272407
+
+
+
+
+ Determines whether a System.Double value is small enough to be considered
+ equivalent to zero.
+
+
+ True if value is smaller than DoubleTolerance;
+ otherwise, False.
+
+
+
+ Returns the value that's within the given range.
+ A given min/max that is null equals no limit.
+
+
+
+
+ Computes the Euclidean norm of the vector (x, y).
+
+ The first component.
+ The second component.
+ The Euclidean norm of the vector (x, y).
+
+
+
+ Computes a real number from the mantissa and exponent.
+
+
+
+ The value of x * 2^exp if successful.
+
+
+
+ Tests a double.
+
+ The double to test.
+ True if x is not a NaN and is not equal to plus or minus infinity;
+ otherwise, False.
+
+
+
+ Helper class to work with PathFigure.
+
+
+
+
+ Flattens the given figure and adds result points to the given point list.
+
+ The error tolerance. Must be positive. Can be zero. Fallback to default tolerance.
+
+
+
+ Iterates all segments inside a given figure, and returns the correct start point for each segment.
+
+
+
+
+ Synchronizes the figure to the given list of points as a single polyline segment.
+ Tries to keep the change to a minimum and returns false if nothing has been changed.
+
+
+
+
+ Synchronizes the given figure to be a closed ellipse with two arc segments.
+
+
+
+
+ A Tuple data structure for PathSegment and the corresponding StartPoint.
+
+
+
+
+ Represents a polyline with a list of connecting points.
+ A closed polygon is represented by repeating the first point at the end.
+ The differences, normals, angles, and lengths are computed on demand.
+
+
+
+
+ Constructs a polyline with two or more points.
+
+
+
+
+ The forward difference vector of polyline.
+ Points[i] + Differences[i] = Points[i+1]
+
+
+
+ Compute the normal vector of given location (lerp(index, index+1, fraction).
+ If the location is within range of cornerRadius, interpolate the normal direction.
+
+ The range of normal smoothless. If zero, no smoothness and return the exact normal on index.
+
+
+
+ The polyline is closed when the first and last points are repeated.
+
+
+
+
+ The count of points in this polyline.
+
+
+
+
+ The total arc length of this polyline.
+
+
+
+
+ The point array of this polyline.
+
+
+
+
+ The length between line segments, Points[i] to Points[i+1].
+
+
+
+
+ The list of normal vectors for each segment.
+ Normals[i] is the normal of segment p[i] to p[i + 1].
+ Normals[N-1] == Normals[N-2].
+
+
+
+
+ The list of Cos(angle) between two line segments on point p[i].
+ Note: The value is cos(angle) = Dot(u, v). Not in degrees.
+
+
+
+
+ The list of accumulated length from points[i] to points[0].
+
+
+
+
+ The data structure to communicate with the PathMarch algorithm.
+
+
+
+
+ Gets the interpolated position of this MarchLocation on a given point list.
+
+
+
+
+ Get the interpolated normal direction of this MarchLocation on a given normal vector list.
+
+
+
+
+ Gets the arc length of this MarchLocation to the start of the entire polyline.
+
+
+
+
+ The reason why this location is sampled.
+
+
+
+
+ The index of the point on a polyline point list.
+
+
+
+
+ Ratio: [0, 1], which is always before / (before + after).
+
+
+
+
+ Arc length before a stop point. Non-negative and less than Length[index].
+
+
+
+
+ Arc length after the stop point. Non-negative and less than Length[index].
+
+
+
+
+ Remaining length within a step to hit next stop. Positive to go forward. Negative to go backward.
+
+
+
+
+ Helper class to work with list of points
+
+
+
+
+ March the given polyline with a given interval and output each stop through callback.
+
+ The polyline points to march on.
+ The arc length to march before stopping at the first point.
+ The max angle between edges to be considered a corner vertex.
+ Callback when marching algorithm stop at a point. The callback returns the arc length for next stop.
+ If the asked length is negative, march backwards. If callback returns NaN, finish marching.
+
+
+
+ Reorders the given list of polylines so that the polyline with a given arc length in the list is the first.
+ Polylines that preceded this line are concatenated to the end of the list, with the first polyline at the very end.
+
+ A list of polylines.
+ The arc length in the entire list of polylines at which to find the start line.
+ The arc length into that line is returned in this variable.
+ The reordered and wrapped list.
+
+
+
+ A random generator that supports uniform and Gaussian distributions.
+
+
+
+
+ Generates a pair of independent, standard, normally distributed random numbers,
+ zero expectation, unit variance, using polar form of the Box-Muller transformation.
+
+
+
+
+ Private constructor. Force to use factory methods.
+
+
+
+
+ Creates a line segment
+
+
+
+
+ Creates a cubic bezier segment from quatratic curve (3 control points)
+
+
+
+
+ Creates a cubic bezier segment with 4 control points.
+
+
+
+
+ Control points of path segment. Length is variant.
+ Line segment has 2 points, Cubic bezier has 4 points.
+
+
+
+
+ Compares two transforms for an exact match. Transforms with the same value but different structure (e.g. Translate(0,0) and Rotate(0) are not considered equivalent).
+
+ The first transform.
+ The second transform.
+
+
+
+
+ Specifies the unit of thickness.
+
+
+
+
+ Unit in pixels.
+
+
+
+
+ Unit in percentage relative to the bounding box.
+
+
+
+
+ Provides the base class of a source of geometry.
+ Generates and caches the geometry based on the input parameters and the layout bounds.
+
+
+ A typical implementation will extend the UpdateCachedGeometry() to update this.cachedGeometry.
+ This base class will then handle the invalidation, pipeline to the geometry effects, and then cache relative to the layout bounds.
+ An implementation should try to reuse the cached geometry as much as possible to avoid reconstruction in the rendering thread.
+ An implementation can extend the ComputeLogicalBounds to handle Stretch differently.
+
+ The type of geometry source parameter on which the base class is working on.
+
+
+
+ Provides an interface to describe the source of a geometry.
+
+
+ This interface is designed to expose the geometry source in a non-generic way.
+ Typical implementation should subclass GeometrySource instead of implementing this interface directly.
+
+
+
+
+ Notifies that the geometry has been invalidated because of external changes.
+
+
+ Geometry is typically invalidated when parameters are changed.
+ If any geometry has been invalidated externally, the geometry will be recomputed even if the layout bounds change.
+
+
+
+
+ Update the geometry using the given parameters and the layout bounds.
+ Returns false if nothing has been updated.
+
+
+
+
+ Gets or sets the resulting geometry after the latest UpdateGeometry().
+
+
+
+
+ Gets the bounding box where the geometry should stretch to.
+ The actual geometry might be smaller or larger than this.
+ should already take stroke thickness and stretch into consideration.
+
+
+
+
+ Gets the actual bounds of FrameworkElement.
+ includes logical bounds, stretch, and stroke thickness.
+
+
+
+
+ Specifics the geometry from the previous geometry effect process.
+
+
+
+
+ Notifies that the geometry has been invalidated because of external changes.
+
+
+ The geometry is typically invalidated when parameters are changed.
+ If any geometry has been invalidated externally, the geometry will be recomputed regardless if the layout bounds change.
+
+
+
+
+ Update the geometry based on the given parameters and layoutBounds.
+ Returns false if the geometry hasn't been changed.
+
+
+
+
+ Extends the way to provide geometry by implementing this function.
+ Returns true when any of the geometry is changed.
+
+
+
+
+ Extends the way to handle stretch mode.
+ The default is to always use Stretch.Fill and center stroke.
+
+
+
+
+ Apply the geometry effect when dirty or forced and update this.Geometry.
+ Otherwise, keep this.Geometry as this.cachedGeometry.
+
+
+
+
+ Gets or sets the resulting geometry after the latest UpdateGeometry().
+
+
+
+
+ Gets the bounding box that the geometry should stretch to.
+ The actual geometry might be smaller or larger than this.
+ should already take stroke thickness and stretch into consideration.
+
+
+
+
+
+ Gets the actual bounds of FrameworkElement.
+ includes logical bounds, stretch and stroke thickness.
+
+
+
+
+
+ Arc recognizes Stretch.None as the same as Stretch.Fill, assuming aspect ratio = 1:1.
+
+
+
+
+ Normalize thickness, both relative to the bounding box and the absolute pixel.
+ Relative thickness = 0 -> full circle radius or clamped.
+ Relative thickness = 1 -> shrank to a dot, or degenerated.
+
+
+
+
+ The arc is degenerated to a line pointing to center / normal inward.
+
+
+
+
+ Compute a list of angle pairs, defining the ranges in which arc sample should locate.
+ The return value have 2, 4, or 6 double values, each pair defines a range and they are in the order
+ to span the angles from given start to end angles. The ranges will break at the self-intersect angle.
+ If input start/end are within the invalid range between self intersect angle, it will be moved to neighboring self intersect.
+
+
+
+
+ Move angle to 0-90 range.
+
+
+
+
+ Compute all pieces of inner curves with each pair of input angles, and connect them with poly Bezier segments.
+ The new segments are output to given figure.Segments list from the given index. The start point is output seperately.
+
+
+
+
+ Compute one piece of inner curve with given angle range, and output one piece of smooth curve in format of poly Beizer semgents.
+
+
+
+
+ Compute the parameter (angle) of the self-intersect point for given ellipse with given thickness.
+ The result is always in first quadrant, and might be 0 or 90 indicating no self-intersect.
+ Basic algorithm is to binary search for the angle that sample point is not in first quadrant.
+
+
+
+
+ Specifies the direction the arrow points.
+
+
+
+
+ The arrow points to the left.
+
+
+
+
+ The arrow points to the right.
+
+
+
+
+ The arrow points up.
+
+
+
+
+ The arrow points down.
+
+
+
+
+ B
+ /|
+ / C--D
+ A |
+ \ C--D
+ \|
+ B
+ Algorithm only uses Width/Height assuming top-left at 0,0.
+
+
+
+
+ Specifies the rendering style of a callout shape.
+
+
+
+
+ A rectangular callout.
+
+
+
+
+ A rectangular callout with rounded corners.
+
+
+
+
+ A oval-shaped callout.
+
+
+
+
+ A cloud-shaped callout.
+
+
+
+
+ Updates the edge line, and then connects to the anchor point if necessary.
+
+
+
+
+ Updates the polyline segment, and then connects start, anchor, and end points with the callout style.
+
+
+
+
+ Updates the line segment to a given point.
+
+
+
+
+ Computes the corner points in a clockwise direction, with eight points for the four corners.
+
+
+
+
+ The corner arc is always smaller than a 90-degree arc.
+
+
+
+
+ Provides the base class for GeometryEffect that transforms a geometry into another geometry.
+
+
+ This class provides the basic implementation of processing the rendered geometry of a IShape before it's passed to rendering.
+ A typical implementation will extend the virtual function to transform the input geometry.
+ is typically attached to as an attached property and activated when geometry is updated.
+ The of a will replace the rendered geometry in .
+
+
+
+
+ Gets the geometry effect as an attached property on a given dependency object.
+
+
+
+
+ Sets the geometry effect as an attached property on a given dependency object.
+
+
+
+
+ Makes a deep copy of the using its current values.
+
+
+
+
+ Makes a deep copy of the geometry effect. Implements CloneCurrentValue in Silverlight.
+
+ A clone of the current instance of the geometry effect.
+
+
+
+ Tests if the given geometry effect is equivalent to the current instance.
+
+ A geometry effect to compare with.
+ Returns true when two effects render with the same appearance.
+
+
+
+ Specifics the geometry from the previous geometry effect process.
+
+
+
+
+ Invalidates the geometry effect without actually computing the geometry.
+ Notifies all parent shapes or effects to invalidate accordingly.
+
+
+
+
+ Processes the geometry effect on a given input geometry.
+ Stores the result in GeometryEffect.OutputGeometry.
+
+ Returns false if nothing has been changed.
+
+
+
+ Extends the way of updating cachedGeometry based on a given input geometry.
+
+
+
+
+ Notified when detached from a parent chain.
+
+
+
+
+ Notified when attached to a parent chain.
+
+
+
+
+ Invalidates the geometry on a given dependency object when
+ the object is a valid parent type (IShape or GeometryEffect).
+
+
+
+
+ Implement the Freezable in WPF.
+
+
+
+
+ The default geometry effect that only passes through the input geometry.
+
+
+
+
+ Gets the output geometry of this geometry effect.
+
+
+
+
+ Parent can be either IShape or GeometryEffectGroup.
+
+
+
+
+ Provides the conversion between string and geometry effects.
+
+
+ This class enables the brief syntax in XAML like GeometryEffect="Sketch"
.
+ Creates a clone of the instance of the geometry effect so it can be used as a resource.
+
+
+
+
+ Builds a preset list of supported geometry effects.
+
+
+
+
+ A GeometryEffect that can be converted from a string type.
+
+
+
+
+ A GeometryEffect that can be converted to a string type.
+
+
+
+
+ Converts a string to a geometry effect. The fallback value is null.
+
+
+
+
+ Converts a geometry effect into a string. The fallback value is null.
+
+
+
+
+ Specifies the reason of being called.
+
+
+
+
+ Geometry has been invalidated because a property has been changed.
+
+
+
+
+ Geometry has been invalidated because a property is being animated.
+
+
+
+
+ Geometry has been invalidated because a child has been invalidated.
+
+
+
+
+ Geometry has been invalidated because a parent has been invalidated.
+
+
+
+
+ Geometry has been invalidated because a new template has been applied.
+
+
+
+
+ Provides helper extension methods to work with IGeometrySource and parameters.
+
+
+
+
+ Specifies the arrow head type.
+
+
+
+
+ No arrow head.
+
+
+
+
+ A triangle arrow head.
+
+
+
+
+ A stealth triangle arrow head.
+
+
+
+
+ An open triangle arrow head.
+
+
+
+
+ An oval arrow head.
+
+
+
+
+ Specifies the corner location.
+
+
+
+
+ On the top left of the bounding box.
+
+
+
+
+ On the top right of the bounding box.
+
+
+
+
+ On the bottom right of the bounding box.
+
+
+
+
+ On the bottom left of the bounding box.
+
+
+
+
+ Polygon recognizes Stretch.None as the same as Stretch.Fill.
+
+
+
+
+ A geometry effect that transforms any geometry into a Sketch style as in SketchFlow.
+
+
+
+
+ Makes a deep copy of the geometry effect.
+
+ A clone of the current instance of the geometry effect.
+
+
+
+ Tests if the given geometry effect is equivalent to the current instance.
+
+ A geometry effect to compare with.
+ Returns true when two effects render with the same appearance.
+
+
+
+ Updating cachedGeometry based on the given input geometry.
+
+ An input geometry.
+ Returns true when anything on cachedGeometry has been updated.
+
+
+
+ Use the same random seed on creation to keep visual flickering to a minimum.
+
+
+
+
+ Iterates all simple segments in given path figure including the closing chord.
+
+
+
+
+ Renders an arc shape supporting Arc, Ring, and Pie mode controlled by ArcThickness.
+
+
+
+
+ Platform-neutral implementation of Shape deriving from WPF:Shape or SL:Path.
+
+
+ Provides the WPF implementation of Shape that derives from the platform Shape.
+
+
+
+
+ Extends how the shape is drawn with creating geometry source.
+
+
+
+
+ Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously.
+
+
+
+ Provides the behavior for the Measure portion of Silverlight layout pass. Classes can override this method to define their own Measure pass behavior.
+ The size that this object determines it requires during layout, based on its calculations of child object allotted sizes, or possibly on other considerations such as fixed container size.
+ The available size that this object can provide to child objects. Infinity () can be specified as a value to indicate that the object will size to whatever content is available.
+
+ In WPF, measure override works from Shape.DefiningGeometry which is not always as expected
+ see bug 99497 for details where WPF is not having correct measure by default.
+
+ In Silverlight, measure override on Path does not work the same as primitive shape works.
+
+ We should return the smallest size this shape can correctly render without clipping.
+ By default a shape can render as small as a dot, therefore returning the strokethickness.
+
+
+
+ Provides the behavior for the Arrange portion of Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior.
+ The actual size used once the element is arranged in layout.
+ The final area within the parent that this object should use to arrange itself and its children.
+ will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin.
+
+
+
+ Occurs when RenderedGeometry is changed.
+
+
+
+
+ Gets the margin between logical bounds and actual geometry bounds.
+ This can be either positive (as in ) or negative (as in ).
+
+
+
+
+ Gets or sets the start angle.
+
+ The start angle in degrees. Zero degrees is pointing up.
+
+
+
+ Gets or sets the end angle.
+
+ The end angle in degrees. Zero degrees is pointing up.
+
+
+
+ Gets or sets the arc thickness.
+
+ The arc thickness in pixels or percentage depending on "ArcThicknessUnit".
+
+
+
+ Gets or sets the arc thickness unit.
+
+ The arc thickness unit in pixels or percentage.
+
+
+
+ Renders a block arrow shape that supports resizable arrow head and body.
+
+
+
+
+ Gets or sets the orientation.
+
+ The orientation where the arrow is pointing to.
+
+
+
+ Gets or sets the arrow head angle.
+
+ The arrow head angle in degrees.
+
+
+
+ Gets or sets the size of the arrow body.
+
+ The size of the arrow body in pixels.
+
+
+
+ Renders a regular polygon shape or corresponding star shape with variable number of points.
+
+
+
+
+ Gets or sets the number of points of the .
+
+
+
+
+ Gets or sets the the distance between the center and the innermost point.
+
+ The distance between the center and the innermost point.
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Interactions.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Interactions.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Interactions.resources.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Interactions.resources.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Interactions.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/Elysium.Theme.1.3/Microsoft.Expression.Interactions.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,1295 @@
+
+
+
+ Microsoft.Expression.Interactions
+
+
+
+
+ A basic implementation of ICommand that wraps a method that takes no parameters or a method that takes one parameter.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The action.
+ Use this constructor to provide an action that ignores the ICommand parameter.
+
+
+
+ Initializes a new instance of the class.
+
+ An action that takes an object parameter.
+ Use this constructor to provide an action that uses the object parameter passed by the Execute method.
+
+
+
+ Defines the method that determines whether the command can execute in its current state.
+
+ Data used by the command. If the command does not require data to be passed, then this object can be set to null.
+
+ Always returns true.
+
+
+
+
+ Defines the method to be called when the command is invoked.
+
+ Data used by the command. If the command does not require data to be passed, then this object can be set to null.
+
+
+
+ Occurs when changes occur that affect whether the command should execute. Will not be fired by ActionCommand.
+
+
+
+
+ Calls a method on a specified object when invoked.
+
+
+
+
+ Invokes the action.
+
+ The parameter of the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Called after the action is attached to an AssociatedObject.
+
+ Override this to hook up functionality to the AssociatedObject.
+
+
+
+ Called when the action is getting detached from its AssociatedObject, but before it has actually occurred.
+
+ Override this to unhook functionality from the AssociatedObject.
+
+
+
+ The object that exposes the method of interest. This is a dependency property.
+
+
+
+
+ The name of the method to invoke. This is a dependency property.
+
+
+
+
+ An action that will change a specified property to a specified value when invoked.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Invokes the action.
+
+ The parameter of the action. If the action does not require a parameter, then the parameter may be set to a null reference.
+ A property with could not be found on the Target.
+ Could not set to the value specified by .
+
+
+
+ Gets or sets the name of the property to change. This is a dependency property.
+
+ The name of the property to change.
+
+
+
+ Gets or sets the value to set. This is a dependency property.
+
+ The value to set.
+
+
+
+ Gets or sets the duration of the animation that will occur when the ChangePropertyAction is invoked. This is a dependency property.
+ If the duration is unset, no animation will be applied.
+
+
+
+
+ Increment by Value if true; otherwise, set the value directly. If the property cannot be incremented, it will instead try to set the value directly.
+
+
+
+
+ Represents one ternary condition.
+
+
+
+
+ Method that evaluates the condition. Note that this method can throw ArgumentException if the operator is
+ incompatible with the type. For instance, operators LessThan, LessThanOrEqual, GreaterThan, and GreaterThanOrEqual
+ require both operators to implement IComparable.
+
+ Returns true if the condition has been met; otherwise, returns false.
+
+
+
+ Ensure that any binding on DP operands are up-to-date.
+
+
+
+
+ Gets or sets the left operand.
+
+
+
+
+ Gets or sets the right operand.
+
+
+
+
+ Gets or sets the comparison operator.
+
+
+
+
+ Enumeration of different comparison operators.
+
+
+
+
+ This method evaluates operands.
+
+ Left operand from the LeftOperand property.
+ Operator from Operator property.
+ Right operand from the RightOperand property.
+ Returns true if the condition is met; otherwise, returns false.
+
+
+
+ Evaluates both operands that implement the IComparable interface.
+
+ Left operand from the LeftOperand property.
+ Operator from Operator property.
+ Right operand from the RightOperand property.
+ Returns true if the condition is met; otherwise, returns false.
+
+
+
+ Forward chaining.
+
+
+
+
+ Represents a conditional expression that is set on a ConditionBehavior.Condition property.
+ Contains a list of conditions that gets evaluated in order to return true or false for ICondition.Evaluate().
+
+
+
+
+ An interface that a given object must implement in order to be
+ set on a ConditionBehavior.Condition property.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Goes through the Conditions collection and evalutes each condition based on
+ ForwardChaining property.
+
+ Returns true if conditions are met; otherwise, returns false.
+
+
+
+ Gets or sets forward chaining for the conditions.
+ If forward chaining is set to ForwardChaining.And, all conditions must be met.
+ If forward chaining is set to ForwardChaining.Or, only one condition must be met.
+
+
+
+
+ Return the Condition collections.
+
+
+
+
+ A behavior that attaches to a trigger and controls the conditions
+ to fire the actions.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ The event handler that is listening to the preview invoke event that is fired by
+ the trigger. Setting PreviewInvokeEventArgs.Cancelling to True will
+ cancel the invocation.
+
+ The trigger base object.
+ An object of type PreviewInvokeEventArgs where e.Cancelling can be set to True.
+
+
+
+ Gets or sets the IConditon object on behavior.
+
+ The name of the condition to change.
+
+
+
+ Helper class for managing binding expressions on dependency objects.
+
+
+
+
+ Ensure that all DP on an action with binding expressions are
+ up to date. DataTrigger fires during data binding phase. Since
+ actions are children of the trigger, any bindings on the action
+ may not be up-to-date. This routine is called before the action
+ is invoked in order to guarantee that all bindings are up-to-date
+ with the most current data.
+
+
+
+
+ Ensures that all binding expression on actions are up to date
+
+
+
+
+ This helper function ensures that, if a dependency property on a dependency object
+ has a binding expression, the binding expression is up-to-date.
+
+
+
+
+
+
+ Toggles between two states based on a conditional statement.
+
+
+
+
+ Called after the behavior is attached to an AssociatedObject.
+
+ Override this to hook up functionality to the AssociatedObject.
+
+
+
+ A helper function to take the place of FrameworkElement.IsLoaded, as this property isn't available in Silverlight.
+
+ The element of interest.
+ Returns true if the element has been loaded; otherwise, returns false.
+
+
+
+ Gets or sets the binding that produces the property value of the data object. This is a dependency property.
+
+
+
+
+ Gets or sets the value to be compared with the property value of the data object. This is a dependency property.
+
+
+
+
+ Gets or sets the name of the visual state to transition to when the condition is met. This is a dependency property.
+
+
+
+
+ Gets or sets the name of the visual state to transition to when the condition is not met. This is a dependency property.
+
+
+
+
+ Trigger designed to be bound to a data store property. Fires when the property changes.
+
+
+
+
+ Represents a trigger that performs actions when the bound data have changed.
+
+ UA_REVIEW:chabiss
+
+
+
+ Called when the binding property has changed.
+ UA_REVIEW:chabiss
+
+ argument.
+
+
+
+ Called after the trigger is attached to an AssociatedObject.
+ UA_REVIEW:chabiss
+
+
+
+
+ Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+ UA_REVIEW:chabiss
+
+
+
+
+ A binding object that the trigger will listen to, and that causes the trigger to fire when it changes.
+
+ UA_REVIEW:chabiss
+
+
+
+ Represents a trigger that performs actions when the bound data meets a specified condition.
+
+
+
+
+ Called when the binding property has changed.
+ UA_REVIEW:chabiss
+
+ argument.
+
+
+
+ Gets or sets the value to be compared with the property value of the data object. This is a dependency property.
+
+
+
+
+ Gets or sets the type of comparison to be performed between the specified values. This is a dependency property.
+
+
+
+
+ ExtendedVisualStateManager is a custom VisualStateManager that can smooth out the animation of layout properties.
+ With this custom VisualStateManager, states can include changes to properties like Grid.Column, can change element heights to or from Auto, and so on.
+ These changes will be smoothed out over time using the GeneratedDuration and GeneratedEasingFunction of the appropriate transition.
+ See the "VisualStateManager overrides" region below for a general description of the algorithm.
+
+
+
+
+ A VisualStateGroup that can use FluidLayout or not.
+
+
+
+
+ Visibility is shadowed by a custom attached property at runtime.
+
+
+
+
+ A VisualStateGroup keeps a list of these original values in an attached property.
+
+
+
+
+ For every state, the layout-specific properties get extracted and then are attached to the state. These properties are removed from the state itself.
+
+
+
+
+ Remember the current state.
+
+
+
+
+ The TransitionEffect to use when the state changes.
+
+
+
+
+ The TransitionEffectStoryboard in use during the state change.
+
+
+
+
+ The cached background in use during the state change.
+
+
+
+
+ The cached background in use during the state change.
+
+
+
+
+ The cached background in use during the state change.
+
+
+
+
+ This is the set of elements that are currently in motion.
+
+
+
+
+ This is the storyboard that is animating the transition.
+
+
+
+
+ This list contains all the known layout properties.
+
+
+
+
+ Stop the animation and replace the layout changes that were made to support that animation.
+
+
+
+
+ Locate the transition that VisualStateManager will use to animate the change, so that the layout animation can match the duration and easing.
+
+ The group in which the transition is taking place.
+ The state that you are coming from.
+ The state you are going to.
+ The transition
+
+
+
+ Remove all layout-affecting properties from the Storyboard for the state and cache them in an attached property.
+
+ The state you are moving to.
+ A Storyboard containing the layout properties in that state.
+
+
+
+ The set of target elements is the set of all elements that might have moved in a layout transition. This set is the closure of:
+ - Elements with layout properties animated in the state.
+ - Siblings of elements in the set.
+ - Parents of elements in the set.
+
+ Subsequent code will check these rectangles both before and after the layout change.
+
+ The control whose layout is changing state.
+ The storyboard containing the layout changes.
+ Any previous values from previous state navigations that might be reverted.
+ The set of elements currently in motion, if there is a state change transition ongoing.
+ The full set of elements whose layout may have changed.
+
+
+
+ Gets a set of rectangles for all the elements in the target list.
+
+ The set of elements to consider.
+ The set of elements currently in motion.
+ A Dictionary mapping elements to their Rects.
+
+
+
+ Get the layout rectangle of an element, by getting the layout slot and then computing which portion of the slot is being used.
+
+ The element whose layout Rect will be retrieved.
+ The layout Rect of that element.
+
+
+
+ Get the opacities of elements at the time of the state change, instead of visibilities, because the state change may be in process and the current value is the most important.
+
+ The control whose state is changing.
+ The storyboard with the layout properties.
+ The set of original values.
+
+
+
+
+ Go through the layout Storyboard and set all the properties by using SetValue to enable calling UpdateLayout without
+ ticking the timeline, which would cause a render.
+ All values that are overwritten will be stored in the collection of OriginalValueRecords so that they can be replaced later.
+
+ The control whose state is changing.
+ The Storyboard holding the layout properties.
+ The store of original values.
+
+
+
+ Take all the elements that will be moving as a result of the layout animation, and wrap them in Canvas panels so that
+ they do not affect their sibling elements.
+
+ The set of elements that will be moving.
+
+
+
+ Take all the elements that have been moving as a result of the layout animation, and unwrap them from their Canvas panels.
+
+ The set of elements that have been moving.
+
+
+
+ Copy the layout properties from the source element to the target element, clearing them from the source.
+
+ The source of the layout properties.
+ The destination of the layout properties.
+
+
+
+ Create the actual Storyboard that will be used to animate the transition. Use all previously calculated results.
+
+ The duration of the animation.
+ The easing function to be used in the animation.
+ The set of elements that will be moving.
+ The old opacities of the elements whose visibility properties are changing.
+ The Storyboard.
+
+
+
+ OriginalValueRecord remembers the original value of a property that was changed in a state.
+
+
+
+
+ This enumerated type indicates whether a FluidMoveBehavior applies to the element to which it is attached, or to the children of that element.
+ "Self" is useful when there is a single element that should behave in a special manner; "Children" is useful when the same behavior should apply to all
+ children of a WrapPanel or to the ItemsHost panel of an ItemsControl.
+
+
+
+
+ This enumerated type indicates whether an element is identified by itself, or by its DataContext.
+ DataContext identification allows movement from one data-driven location to another.
+
+
+
+
+ Dependency property for the scope of the behavior. See FluidMoveScope for more details.
+
+
+
+
+ Dependency property for the active state of the behavior.
+
+
+
+
+ Dependency property that provides the ability to use the element as its own tag, or the binding on the element.
+
+
+
+
+ Dependency property for the extra path to add to the binding when UsaBindingAsTag is true.
+
+
+
+
+ Identity tag used to detect element motion between containers.
+
+
+
+
+ Indicates whether the behavior applies just to this element, or to all children of the element (if the element is a Panel).
+
+
+
+
+ Indicates whether the behavior is currently active.
+
+
+
+
+ Indicates whether to use the element as its own tag, or to use the binding on the element as the tag.
+
+
+
+
+ Extra path to add to the binding when TagType is specified.
+
+
+
+
+ Private structure that stores all relevant data pertaining to a tagged item.
+
+
+
+
+ Behavior that watches an element (or a set of elements) for layout changes, and moves the element smoothly to the new position when needed.
+ This behavior does not animate the size or visibility of an element; it only animates the offset of that element within its parent container.
+
+
+
+
+ Dependency property for the duration of the move.
+
+
+
+
+ Dependency property for the tag type to use just before the object is loaded.
+
+
+
+
+ Dependency property for the extra path to add to the binding when UsaBindingAsTag is true.
+
+
+
+
+ Identity tag used to detect element motion between containers.
+
+
+
+
+ Dependency property for the FloatAbove flag.
+
+
+
+
+ Dependency property for the EasingFunction to use for the horizontal component of the move.
+
+
+
+
+ Dependency property for the EasingFunction to use for the vertical component of the move.
+
+
+
+
+ Remember the popup/adorner being used, in case of element motion between containers when FloatAbove is true.
+
+
+
+
+ Opacity cache used when floating a Popup.
+
+
+
+
+ Marks the animation transform.
+
+
+
+
+ The duration of the move.
+
+
+
+
+ Spawning point for this item.
+
+
+
+
+ Extra path to add to the binding when TagType is specified.
+
+
+
+
+ Flag that says whether elements are allowed to float above their containers (in a Popup or Adorner) when changing containers.
+
+
+
+
+ EasingFunction to use for the horizontal component of the move.
+
+
+
+
+ EasingFunction to use for the vertical component of the move.
+
+
+
+
+ Simple helper class to allow any UIElements to be used as an Adorner.
+
+
+
+
+ An action that will transition a FrameworkElement to a specified VisualState when invoked.
+
+
+ If the TargetName property is set, this action will attempt to change the state of the targeted element. If not, it walks
+ the element tree in an attempt to locate an alternative target that defines states. ControlTemplate and UserControl are
+ two common possibilities.
+
+
+
+
+ Called when the target changes. If the TargetName property isn't set, this action has custom behavior.
+
+
+
+ Could not locate an appropriate FrameworkElement with states.
+
+
+
+ This method is called when some criteria is met and the action is invoked.
+
+
+ Could not change the target to the specified StateName.
+
+
+
+ Determines whether or not to use a VisualTransition to transition between states.
+
+
+
+
+ The name of the VisualState.
+
+
+
+
+ A Trigger that is triggered by a keyboard event. If the target Key and Modifiers are detected, it fires.
+
+
+
+
+ The key that must be pressed for the trigger to fire.
+
+
+
+
+ The modifiers that must be active for the trigger to fire (the default is no modifiers pressed).
+
+
+
+
+ If true, the Trigger only listens to its trigger Source object, which means that element must have focus for the trigger to fire.
+ If false, the Trigger listens at the root, so any unhandled KeyDown/Up messages will be caught.
+
+
+
+
+ Determines whether or not to listen to the KeyDown or KeyUp event.
+
+
+
+
+ An action that will launch a process to open a file or Uri. For files, this action will launch the default program
+ for the given file extension. A Uri will open in a web browser.
+
+
+
+
+ This method is called when some criteria is met and the action is invoked.
+
+
+
+
+
+ The file or Uri to open.
+
+
+
+
+ Repositions the attached element in response to mouse drag gestures on the element.
+
+
+
+
+ Dependency property for the X position of the dragged element, relative to the left of the root element.
+
+
+
+
+ Dependency property for the Y position of the dragged element, relative to the top of the root element.
+
+
+
+
+ Dependency property for the ConstrainToParentBounds property. If true, the dragged element will be constrained to stay within the bounds of its parent container.
+
+
+
+
+ Attempts to update the position of the associated element to the specified coordinates.
+
+ The desired position of the element in root coordinates.
+
+
+
+ Applies a relative position translation to the associated element.
+
+ The X component of the desired translation in root coordinates.
+ The Y component of the desired translation in root coordinates.
+
+
+
+ Applies the given translation to the RenderTransform of the associated element.
+
+ The X component of the translation in parent coordinates.
+ The Y component of the translation in parent coordinates.
+
+
+
+ Does a recursive deep copy of the specified transform.
+
+ The transform to clone.
+ A deep copy of the specified transform, or null if the specified transform is null.
+ Thrown if the type of the Transform is not recognized.
+
+
+
+ Updates the X and Y properties based on the current rendered position of the associated element.
+
+
+
+
+ Check if one Rect is contained by another.
+
+ The containing Rect.
+ The contained Rect.
+ True if rect1 contains rect2; otherwise, False.
+
+
+
+ Transforms as vector.
+
+ The transform.
+ The X component of the vector.
+ The Y component of the vector.
+ A point containing the values of X and Y transformed by transform as a vector.
+
+
+
+ Gets the transform offset.
+
+ The transform.
+ The offset of the transform.
+
+
+
+ Called after the behavior is attached to an AssociatedObject.
+
+ Override this to hook up functionality to the AssociatedObject.
+
+
+
+ Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred.
+
+ Override this to unhook functionality from the AssociatedObject.
+
+
+
+ Occurs when a drag gesture is initiated.
+
+
+
+
+ Occurs when a drag gesture update is processed.
+
+
+
+
+ Occurs when a drag gesture is finished.
+
+
+
+
+ Gets or sets the X position of the dragged element, relative to the left of the root element. This is a dependency property.
+
+
+
+
+ Gets or sets the Y position of the dragged element, relative to the top of the root element. This is a dependency property.
+
+
+
+
+ Gets or sets a value indicating whether the dragged element is constrained to stay within the bounds of its parent container. This is a dependency property.
+
+
+ True if the dragged element should be constrained to its parents bounds; otherwise, False.
+
+
+
+
+ Gets the on-screen position of the associated element in root coordinates.
+
+ The on-screen position of the associated element in root coordinates.
+
+
+
+ Gets the element bounds in element coordinates.
+
+ The element bounds in element coordinates.
+
+
+
+ Gets the parent element of the associated object.
+
+ The parent element of the associated object.
+
+
+
+ Gets the root element of the scene in which the associated object is located.
+
+ The root element of the scene in which the associated object is located.
+
+
+
+ Gets and sets the RenderTransform of the associated element.
+
+
+
+
+ An action that will play a sound to completion.
+
+
+ This action is intended for use with short sound effects that don't need to be stopped or controlled. If you're trying
+ to create a music player or game, it may not meet your needs.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When the action is invoked, this method is used to customize the dynamically created MediaElement.
+
+
+ This method may be useful for Action authors who wish to extend PlaySoundAction. If you want to control the
+ MediaElement Balance property, you could inherit from PlaySoundAction and override this method.
+
+
+
+
+
+ This method is called when some criteria are met and the action should be invoked.
+
+
+ Each invocation of the Action plays a new sound. Although the implementation is subject-to-change, the caller should
+ anticipate that this will create a new MediaElement that will be cleaned up when the sound completes or if the media
+ fails to play.
+
+
+
+
+
+ A Uri defining the location of the sound file. This is used to set the source property of the MediaElement. This is a dependency property.
+
+
+ The sound can be any file format supported by MediaElement. In the case of a video, it will play only the
+ audio portion.
+
+
+
+
+ Control the volume of the sound. This is used to set the Volume property of the MediaElement. This is a dependency property.
+
+
+
+
+ An action that will remove the targeted element from the tree when invoked.
+
+
+ This action may fail. The action understands how to remove elements from common parents but not from custom collections or direct manipulation
+ of the visual tree.
+
+
+
+
+ An action that will change the value of a property from a data store object.
+ This class is identical to ChangePropertyAction. The only difference is that the data store picker is loaded
+ for this action.
+
+
+
+
+ An abstract class that provides the ability to target a Storyboard.
+
+
+ For action authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a
+ special editing experience for classes that inherit from this action, thereby improving the designer experience.
+
+
+
+
+ This method is called when the Storyboard property is changed.
+
+
+
+
+
+ The targeted Storyboard. This is a dependency property.
+
+
+
+
+ An action that will change the state of a targeted storyboard when invoked.
+
+
+
+
+ This method is called when some criteria is met and the action should be invoked. This method will attempt to
+ change the targeted storyboard in a way defined by the ControlStoryboardOption.
+
+
+
+
+
+ An abstract class that provides the ability to target a Storyboard.
+
+
+ For Trigger authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a
+ special editing experience for classes that inherit from this trigger, thereby improving the designer experience.
+
+
+
+
+ This method is called when the Storyboard property is changed.
+
+
+
+
+ The targeted Storyboard. This is a dependency property.
+
+
+
+
+ A trigger that listens for the completion of a Storyboard.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ A trigger that is triggered by a specified event occurring on its source and fires after a delay when that event is fired.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the number of milliseconds to wait between ticks. This is a dependency property.
+
+
+
+
+ Gets or sets the total number of ticks to be fired before the trigger is finished. This is a dependency property.
+
+
+
+
+ Defines a transition effect shader that transitions from one visual to another visual
+ using an interpolated value between 0 and 1.
+
+
+
+
+ Brush-valued properties that turn into sampler-properties in the shader.
+ Represents the image present in the final state of the transition.
+
+
+
+
+ Brush-valued properties that turn into sampler-properties in the shader.
+ Represents the image present in the initial state of the transition.
+
+
+
+
+ A Dependency property as the backing store for Progress.
+ Also used to represent the state of a transition from start to finish (range between 0 and 1).
+
+
+
+
+ Creates a modifiable clone (deep copy) of the using its current values.
+
+
+
+
+ Makes a deep copy of the transition effect. Implements CloneCurrentValue in Silverlight.
+
+ A clone of current instance of transition effect.
+
+
+
+ Updates the shader's variables to the default values.
+
+
+
+
+ Gets or sets the Input variable within the shader.
+
+
+
+
+ Gets or sets the OldImage variable within the shader.
+
+
+
+
+ Gets or sets the Progress variable within the shader.
+
+
+
+
+ Allows the user to use common touch gestures to translate, zoom, and rotate the attached object.
+
+
+
+
+ Called after the behavior is attached to an AssociatedObject.
+
+ Override this to hook up functionality to the AssociatedObject.
+
+
+
+ Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred.
+
+ Override this to unhook functionality from the AssociatedObject.
+
+
+
+ Gets or sets a value specifying which zooming and translation variants to support.
+
+
+
+
+ Gets or sets a number describing the rate at which the translation will decrease.
+
+
+
+
+ Gets or sets a number describing the rate at which the rotation will decrease.
+
+
+
+
+ Gets or sets the value indicating whether the zoom and translate position of the attached object is limited by the bounds of the parent object.
+
+
+
+
+ Gets or sets a number indicating the minimum zoom value allowed.
+
+
+
+
+ Gets or sets a number indicating the maximum zoom value allowed.
+
+
+
+
+ This class provides various platform agnostic standard operations for working with VisualStateManager.
+
+
+
+
+ Transitions the control between two states.
+
+ The element to transition between states.
+ The state to transition to.
+ True to use a System.Windows.VisualTransition to transition between states; otherwise, false.
+ True if the control successfully transitioned to the new state; otherwise, false.
+ Control is null.
+ StateName is null.
+
+
+
+ Gets the value of the VisualStateManager.VisualStateGroups attached property.
+
+ The element from which to get the VisualStateManager.VisualStateGroups.
+
+
+
+
+ Find the nearest parent which contains visual states.
+
+ The element from which to find the nearest stateful control.
+ The nearest stateful control if True; else null.
+ True if a parent contains visual states; else False.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Could not find method named '{0}' on object of type '{1}' that matches the expected signature..
+
+
+
+
+ Looks up a localized string similar to More than one potential addition operator was found on type '{0}'..
+
+
+
+
+ Looks up a localized string similar to Cannot animate a property change on a type '{0}' Target. Property changes can only be animated on types derived from DependencyObject..
+
+
+
+
+ Looks up a localized string similar to Cannot find a property named "{0}" on type "{1}"..
+
+
+
+
+ Looks up a localized string similar to The Increment property cannot be set to True if the Duration property is set..
+
+
+
+
+ Looks up a localized string similar to The '{0}' property cannot be incremented because its value cannot be read..
+
+
+
+
+ Looks up a localized string similar to Cannot assign value of type "{0}" to property "{1}" of type "{2}". The "{1}" property can be assigned only values of type "{2}"..
+
+
+
+
+ Looks up a localized string similar to Property "{0}" defined by type "{1}" does not expose a set method and therefore cannot be modified..
+
+
+
+
+ Looks up a localized string similar to Cannot find state named '{0}' on type '{1}'. Ensure that the state exists and that it can be accessed from this context..
+
+
+
+
+ Looks up a localized string similar to Target {0} does not define any VisualStateGroups. .
+
+
+
+
+ Looks up a localized string similar to LeftOperand of type "{0}" cannot be used with operator "{1}"..
+
+
+
+
+ Looks up a localized string similar to LeftOperand of type "{1}" and RightOperand of type "{0}" cannot be used with operator "{2}"..
+
+
+
+
+ Looks up a localized string similar to RightOperand of type "{0}" cannot be used with operator "{1}"..
+
+
+
+
+ Looks up a localized string similar to The target of the RemoveElementAction is not supported..
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Windows.Shell.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/Microsoft.Windows.Shell.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/Microsoft.Windows.Shell.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/Elysium.Theme.1.3/Microsoft.Windows.Shell.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,647 @@
+
+
+
+ Microsoft.Windows.Shell
+
+
+
+ Represents the base class for the and classes.
+
+
+ Gets or sets the name of the category the is grouped with in the Windows 7 taskbar Jump List.
+ The name of the category the is grouped with. The default is null.
+
+
+ Describes why a could not be added to the Jump List by the Windows shell.
+
+
+ The reason is not specified.
+
+
+ The references an invalid file path, or the operating system does not support Jump Lists.
+
+
+ The application is not registered to handle the file name extension of the .
+
+
+ The item was previously in the Jump List but was removed by the user.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class that has the specified parameters.
+ The list of Jump List items that could not be added to the Jump List by the Windows shell.
+ The list of reasons why the rejected Jump List items could not be added to the Jump List.
+ The count of does not equal the count of rejection .
+
+
+ Gets the list of Jump List items that could not be added to the Jump List by the Windows shell.
+ The list of Jump List items that could not be added to the Jump List by the Windows shell.
+
+
+ Gets the list of reasons why the rejected Jump List items could not be added to the Jump List.
+ The list of reasons why the rejected Jump List items could not be added to the Jump List.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class that has the specified parameters.
+ The list of Jump List items that were removed by the user since was last called.
+
+
+ Gets the list of Jump List items that have been removed by the user since the method was last called.
+ The list of Jump List items that have been removed by the user since the method was last called.
+
+
+ Represents a list of items and tasks displayed as a menu on a Windows 7 taskbar button.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The collection of objects that are displayed in the Jump List.
+ A value that indicates whether frequently used items are displayed in the Jump List.
+ A value that indicates whether recently used items are displayed in the Jump List.
+
+
+ Adds the specified jump path to the Recent category of the Jump List.
+ The to add to the Jump List.
+
+
+ Adds the specified jump task to the Recent category of the Jump List.
+ The to add to the Jump List.
+
+
+ Adds the specified item path to the Recent category of the Jump List.
+ The path to add to the Jump List.
+
+
+ Sends the to the Windows shell in its current state.
+ The is not completely initialized.
+
+
+ Signals the start of the initialization.
+ This call to is nested in a previous call to .
+
+
+ Signals the end of the initialization.
+ This call to is not paired with a call to .
+
+
+ Returns the object associated with an application.
+ The object associated with the specified application.
+ The application associated with the .
+
+
+ Gets the collection of objects that are displayed in the Jump List.
+ The collection of objects displayed in the Jump List. The default is an empty collection.
+
+
+ Occurs when jump items are not successfully added to the Jump List by the Windows shell.
+
+
+ Occurs when jump items previously in the Jump List are removed from the list by the user.
+
+
+ Sets the object associated with an application.
+ The application associated with the .
+ The to associate with the application.
+
+
+ Gets or sets a value that indicates whether frequently used items are displayed in the Jump List.
+ true if frequently used items are displayed in the Jump List; otherwise, false. The default is false.
+
+
+ Gets or sets a value that indicates whether recently used items are displayed in the Jump List.
+ true if recently used items are displayed in the Jump List; otherwise, false. The default is false.
+
+
+ Represents a link to a file that is displayed in a Windows 7 taskbar Jump List.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the path to the file to be included in the Jump List.
+ The path to the file to be included in the Jump List.
+
+
+ Represents a shortcut to an application in the Windows 7 taskbar Jump List.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the path to the application.
+ The path to the application. The default is null.
+
+
+ Gets or sets the arguments passed to the application on startup.
+ The arguments passed to the application on startup. The default is null.
+
+
+ Gets or sets the text displayed in the tooltip for the task in the Jump List.
+ The text displayed in the tooltip for the task. The default is null.
+
+
+ Gets or sets the zero-based index of an icon embedded in a resource.
+ The zero-based index of the icon, or -1 if no icon is used. The default is 0.
+
+
+ Gets or sets the path to a resource that contains the icon to display in the Jump List.
+ The path to a resource that contains the icon. The default is null.
+
+
+ Gets or sets the text displayed for the task in the Jump List.
+ The text displayed for the task in the Jump List. The default is null.
+
+
+ Gets or sets the working directory of the application on startup.
+ The working directory of the application on startup. The default is null.
+
+
+ Specifies constants that indicate which edges of the window frame are not owned by the client.
+
+
+ All edges are owned by the client (value = 0).
+
+
+ The left edge is not owned by the client (value = 1).
+
+
+ The top edge is not owned by the client (value = 2).
+
+
+ The right edge is not owned by the client (value = 4).
+
+
+ The bottom edge is not owned by the client (value = 8).
+
+
+ Specifies constants that indicate the direction of the resize grip behavior on an input element.
+
+
+ No resize behavior is specified.
+
+
+ The window resizes from its top-left corner.
+
+
+ The window resizes from its top edge.
+
+
+ The window resizes from its top-right corner.
+
+
+ The window resizes from its right edge.
+
+
+ The window resizes from its bottom-right corner.
+
+
+ The window resizes from its bottom edge.
+
+
+ The window resizes from its bottom-left corner.
+
+
+ The windows resizes from its left edge.
+
+
+ Defines routed commands that are common to window management.
+
+
+ Closes the specified window.
+ The window to close.
+
+
+ Gets a command that closes a window.
+ A command that closes a window.
+
+
+ Maximizes the specified window.
+ The window to maximize.
+
+
+ Gets a command that maximizes a window.
+ A command that maximizes a window.
+
+
+ Minimizes the specified window.
+ The window to minimize.
+
+
+ Gets a command that maximizes a window.
+ A command that maximizes a window.
+
+
+ Restores the specified widow.
+ The window to restore.
+
+
+ Gets a command that restores a window.
+ A command that restores a window.
+
+
+ Displays the system menu for the specified window.
+ The window to have its system menu displayed.
+ The location of the system menu.
+
+
+ Gets a command that displays the system menu.
+ A command that displays the system menu.
+
+
+ Contains properties that you can use to query system settings of the non-client area of a window.
+
+
+ Gets an instance of the class.
+ An instance of the class.
+
+
+ Gets a value that indicates whether the high contrast feature is being used.
+ true if the high contrast feature is being used; otherwise, false.
+
+
+ Gets a value that indicates whether glass window frames are being used.
+ true if glass window frames are being used; otherwise, false.
+
+
+ Occurs when one of the properties changes.
+
+
+ Gets the recommended size, in pixels, of a small icon.
+ The recommended size, in pixels, of a small icon.
+
+
+ Gets the color theme name.
+ The color theme name.
+
+
+ Gets the theme name.
+ The theme name.
+
+
+ Gets a that indicates the default location of the minimize, maximize, and close buttons.
+ An object that indicates the default location of the minimize, maximize, and close buttons.
+
+
+ Gets the height of the area that contains the minimize, maximize, and close buttons.
+ The height of the area that contains the minimize, maximize, and close buttons.
+
+
+ Gets the degree to which the corners of a window are rounded.
+ The degree to which the corners of a window are rounded.
+
+
+ Gets the brush that paints the glass window frame.
+ The brush that paints the glass window frame.
+
+
+ Gets the color that is used to paint the glass window frame.
+ The color that is used to paint the glass window frame.
+
+
+ Gets the size of the non-client area of the window.
+ The size of the non-client area of the window, in device-independent pixels (1/96th of an inch).
+
+
+ Gets the size of the resizing border around the window.
+ The size of the resizing border around the window, in device-independent pixels (1/96th of an inch).
+
+
+ Represents information about how the taskbar thumbnail is displayed.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the text for the taskbar item tooltip.
+ The text for the taskbar item tooltip. The default is an empty string.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets the value of the attached property for an object.
+ The object’s property value.
+ The object from which the property value is read.
+
+
+ Gets or sets the image that is displayed over the program icon in the taskbar button.
+ The image that is displayed over the program icon in the taskbar button. The default is null.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates how the progress indicator is displayed in the taskbar button.
+ An enumeration value that indicates how the progress indicator is displayed in the taskbar button. The default is .
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates the fullness of the progress indicator in the taskbar button.
+ A value that indicates the fullness of the progress indicator in the taskbar button. The default is 0.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Sets the value of the attached property for an object.
+ The object to which the attached property is written.
+ The value to set.
+
+
+ Gets or sets a that is attached to a window.
+ The that is attached to the window.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets the collection of objects that are associated with the .
+ The collection of objects that are associated with the . The default is an empty collection.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that specifies the part of the application window's client area that is displayed in the taskbar thumbnail.
+ A value that specifies the part of the application window's client area that is displayed in the taskbar thumbnail. The default is an empty .
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Specifies the state of the progress indicator in the Windows taskbar.
+
+
+ No progress indicator is displayed in the taskbar button.
+
+
+ A pulsing green indicator is displayed in the taskbar button.
+
+
+ A green progress indicator is displayed in the taskbar button.
+
+
+ A red progress indicator is displayed in the taskbar button.
+
+
+ A yellow progress indicator is displayed in the taskbar button.
+
+
+ Represents information about how to display a button in the Windows 7 taskbar thumbnail.
+
+
+ Initializes a new instance of the class.
+
+
+ Occurs when the thumbnail button is clicked.
+
+
+ Gets or sets the command to invoke when this thumbnail button is clicked.
+ The command to invoke when this thumbnail button is clicked. The default is null.
+
+
+ Gets or sets the parameter to pass to the property.
+ The parameter to pass to the property. The default is null.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets the element on which to raise the specified command.
+ The element on which to raise the specified command. The default is null.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets the text to display for the thumbnail button tooltip.
+ The text to display for the thumbnail button tooltip. The default is an empty string.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates whether the taskbar thumbnail closes when the thumbnail button is clicked.
+ true if the thumbnail closes; otherwise, false. The default is false.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets the image that is displayed on the thumbnail button.
+ The image that is displayed on the thumbnail button. The default is null.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates whether a border and highlight is displayed around the thumbnail button.
+ true if a border and highlight is displayed around the thumbnail button; otherwise, false. The default is true.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates whether the thumbnail button is enabled.
+ true if the thumbnail button is enabled; otherwise, false. The default is true.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates whether the user can interact with the thumbnail button.
+ true if the user can interact with the thumbnail button; otherwise, false. The default is true.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that specifies the display state of the thumbnail button.
+ An enumeration value that specifies the display state of the thumbnail button. The default is .
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Represents a collection of objects that are associated with a .
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the collection.
+ The new instance of the collection.
+
+
+ Represents an object that describes the customizations to the non-client area of a window.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the height of the caption area at the top of a window.
+ The height of the caption area.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates the amount that the corners of a window are rounded.
+ A value that describes the amount that corners are rounded.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Creates a new instance of the class.
+ The new instance of this class.
+
+
+ Gets the value of the attached property from the specified input element.
+ The value of the attached property.
+ The input element from which to read the property value.
+
+ is null.
+
+ is not a .
+
+
+ Gets the value of the attached property from the specified input element.
+ The value of the attached property.
+ The input element from which to read the property value.
+
+ is null.
+
+ is not a .
+
+
+ Gets the value of the attached property from the specified .
+ The instance of that is attached to the specified .
+ The from which to read the property value.
+
+ is null.
+
+
+ Gets a uniform thickness of -1.
+ A uniform thickness of -1 in all cases.
+
+
+ Gets or sets a value that indicates the width of the glass border around a window.
+ The width of the glass border around a window.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates whether WPF hit-testing is enabled on the part of an element that is in the non-client area of a window.
+ true if hit testing is enabled in the non-client area; otherwise, false. The registered default is false. For more information about what can influence the value, see Dependency Property Value Precedence.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates which edges of the window frame are not owned by the client.
+ A bitwise combination of the enumeration values that specify which edges of the frame are not owned by the client.The registered default is . For more information about what can influence the value, see Dependency Property Value Precedence.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates the width of the border that is used to resize a window.
+ The width of the border that is used to resize a window.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets a value that indicates the direction of the resize grip behavior on an input element.
+ One of the enumeration values that indicates the direction of the resize grip. The registered default is . For more information about what can influence the value, see Dependency Property Value Precedence.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Sets the value of the attached property on the specified input element.
+ The element on which to set the attached property.
+ The property value to set.
+
+ is null.
+
+ is not a .
+
+
+ Sets the value of the attached property on the specified input element.
+ The element on which to set the attached property.
+ The property value to set.
+
+ is null.
+
+ is not a .
+
+
+ Sets the value of the attached property on the specified .
+ The on which to set the attached property.
+ The instance of to set.
+
+ is null.
+
+
+ Gets or sets a value that indicates whether the Windows Aero caption buttons are shown.
+ The registered default is true. For more information about what can influence the value, see Dependency Property Value Precedence.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+ Gets or sets the instance of that is attached to a window.
+ The instance of attached to window. The registered default is null. For more information about what can influence the value, see Dependency Property Value Precedence.
+
+
+ Identifies the dependency property.
+ The identifier for the dependency property.
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/System.Windows.Interactivity.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/System.Windows.Interactivity.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/System.Windows.Interactivity.resources.dll
Binary file Messaging/Libs/Elysium.Theme.1.3/System.Windows.Interactivity.resources.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/Elysium.Theme.1.3/System.Windows.Interactivity.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/Elysium.Theme.1.3/System.Windows.Interactivity.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,1072 @@
+
+
+
+ System.Windows.Interactivity
+
+
+
+
+ Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ An interface for an object that can be attached to another object.
+
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+ Represents the object the instance is attached to.
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+ Cannot add the instance to a collection more than once.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ The IAttachedObject is already attached to a different object.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ The object on which the collection is hosted.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Encapsulates state information and zero or more ICommands into an attachable object.
+
+ The type the can be attached to.
+
+ Behavior is the base class for providing attachable state and commands to an object.
+ The types the Behavior can be attached to can be controlled by the generic parameter.
+ Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers
+ from the AssociatedObject.
+
+
+
+
+ Encapsulates state information and zero or more ICommands into an attachable object.
+
+ This is an infrastructure class. Behavior authors should derive from Behavior<T> instead of from this class.
+
+
+
+ Called after the behavior is attached to an AssociatedObject.
+
+ Override this to hook up functionality to the AssociatedObject.
+
+
+
+ Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred.
+
+ Override this to unhook functionality from the AssociatedObject.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ The Behavior is already hosted on a different element.
+ dependencyObject does not satisfy the Behavior type constraint.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ The type to which this behavior can be attached.
+
+
+
+
+ Gets the object to which this behavior is attached.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the object to which this is attached.
+
+
+
+
+ Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+
+ Creates a new instance of the BehaviorCollection.
+
+ The new instance.
+
+
+
+ Enumerates possible values for reusable property value editors.
+
+
+
+
+ Uses the element picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the storyboard picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the state picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the element-binding picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the property-binding picker, if supported, to edit this property at design time.
+
+
+
+
+ Associates the given editor type with the property on which the CustomPropertyValueEditor is applied.
+
+ Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name).
+
+
+
+ Initializes a new instance of the class.
+
+ The custom property value editor.
+
+
+
+ Gets or sets the custom property value editor.
+
+ The custom property value editor.
+
+
+
+ Provides design tools information about what to instantiate for a given action or command.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type this attribute applies to.
+ The type of to instantiate.
+ A single argument for the specified .
+ is not derived from TriggerBase.
+ This constructor is useful if the specifed has a single argument. The
+ resulting code will be CLS compliant.
+
+
+
+ Initializes a new instance of the class.
+
+ The type this attribute applies to.
+ The type of to instantiate.
+ The constructor arguments for the specified .
+ is not derived from TriggerBase.
+
+
+
+ Instantiates this instance.
+
+ The specified by the DefaultTriggerAttribute.
+
+
+
+ Gets the type that this DefaultTriggerAttribute applies to.
+
+ The type this DefaultTriggerAttribute applies to.
+
+
+
+ Gets the type of the to instantiate.
+
+ The type of the to instantiate.
+
+
+
+ Gets the parameters to pass to the constructor.
+
+ The parameters to pass to the constructor.
+
+
+
+ This method will use the VisualTreeHelper.GetParent method to do a depth first walk up
+ the visual tree and return all ancestors of the specified object, including the object itself.
+
+ The object in the visual tree to find ancestors of.
+ Returns itself an all ancestors in the visual tree.
+
+
+
+ EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor.
+
+
+
+
+ Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach.
+
+ The event to attach and detach from.
+ The target object the event is defined on. Null if the method is static.
+ The delegate to attach to the event.
+
+
+
+ Detaches the handler from the event.
+
+
+
+
+ A trigger that listens for a specified event on its source and fires when that event is fired.
+
+
+
+
+ Represents a trigger that can listen to an element other than its AssociatedObject.
+
+ The type that this trigger can be associated with.
+
+ EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to.
+ This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a
+ change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source
+ element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be
+ constrained by the generic type parameter. If you need control over the type of the
+ AssociatedObject, set a TypeConstraintAttribute on your derived type.
+
+
+
+
+ Represents a trigger that can listen to an object other than its AssociatedObject.
+
+ This is an infrastructure class. Trigger authors should derive from EventTriggerBase<T> instead of this class.
+
+
+
+ Represents an object that can invoke Actions conditionally.
+
+ This is an infrastructure class. Trigger authors should derive from Trigger<T> instead of this class.
+
+
+
+ Invoke all actions associated with this trigger.
+
+ Derived classes should call this to fire the trigger.
+
+
+
+ Called after the trigger is attached to an AssociatedObject.
+
+
+
+
+ Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Creates a new instance of the TriggerBase derived class.
+
+ The new instance.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ Cannot host the same trigger on more than one object at a time.
+ dependencyObject does not satisfy the trigger type constraint.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ Gets the object to which the trigger is attached.
+
+ The associated object.
+
+
+
+ Gets the type constraint of the associated object.
+
+ The associated object type constraint.
+
+
+
+ Gets the actions associated with this trigger.
+
+ The actions associated with this trigger.
+
+
+
+ Event handler for registering to PreviewInvoke.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Specifies the name of the Event this EventTriggerBase is listening for.
+
+
+
+
+
+ Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger.
+
+ The instance containing the event data.
+ Override this to provide more granular control over when actions associated with this trigger will be invoked.
+
+
+
+ Called when the source changes.
+
+ The old source.
+ The new source.
+ This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects.
+
+
+
+ Called after the trigger is attached to an AssociatedObject.
+
+
+
+
+ Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+ Could not find eventName on the Target.
+
+
+
+ Gets the type constraint of the associated object.
+
+ The associated object type constraint.
+ Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.
+
+
+
+ Gets the source type constraint.
+
+ The source type constraint.
+
+
+
+ Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+
+ The target object.
+
+
+
+ Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used. This is a dependency property.
+
+ The name of the source element.
+
+
+
+ Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject.
+
+ The resolved source object.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+ The element pointed to by does not satisify the type constraint.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called when the source property changes.
+
+ Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject.
+ The old source.
+ The new source.
+
+
+
+ Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject.
+
+ The resolved source object.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the event.
+
+
+
+ Gets or sets the name of the event to listen for. This is a dependency property.
+
+ The name of the event.
+
+
+
+ Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications.
+
+
+
+
+ This property is used as the internal backing store for the public Triggers attached property.
+
+
+ This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the
+ collection, ensuring the collection exists and is set before it is used.
+
+
+
+
+ This property is used as the internal backing store for the public Behaviors attached property.
+
+
+ This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the
+ collection, ensuring the collection exists and is set before it is used.
+
+
+
+
+ Gets the TriggerCollection containing the triggers associated with the specified object.
+
+ The object from which to retrieve the triggers.
+ A TriggerCollection containing the triggers associated with the specified object.
+
+
+
+ Gets the associated with a specified object.
+
+ The object from which to retrieve the .
+ A containing the behaviors associated with the specified object.
+
+
+ Cannot host the same BehaviorCollection on more than one object at a time.
+
+
+ Cannot host the same TriggerCollection on more than one object at a time.
+
+
+
+ A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight.
+
+ The element of interest.
+ True if the element has been loaded; otherwise, False.
+
+
+
+ Gets or sets a value indicating whether to run as if in design mode.
+
+
+ True if [should run in design mode]; otherwise, False.
+
+ Not to be used outside unit tests.
+
+
+
+ Executes a specified ICommand when invoked.
+
+
+
+
+ Represents an attachable object that encapsulates a unit of functionality.
+
+ The type to which this action can be attached.
+
+
+
+ Represents an attachable object that encapsulates a unit of functionality.
+
+ This is an infrastructure class. Action authors should derive from TriggerAction<T> instead of this class.
+
+
+
+ Attempts to invoke the action.
+
+ The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Invokes the action.
+
+ The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Called after the action is attached to an AssociatedObject.
+
+
+
+
+ Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ When implemented in a derived class, creates a new instance of the derived class.
+
+ The new instance.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ Cannot host the same TriggerAction on more than one object at a time.
+ dependencyObject does not satisfy the TriggerAction type constraint.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ Gets or sets a value indicating whether this action will run when invoked. This is a dependency property.
+
+
+ True if this action will be run when invoked; otherwise, False.
+
+
+
+
+ Gets the object to which this action is attached.
+
+ The associated object.
+
+
+
+ Gets the associated object type constraint.
+
+ The associated object type constraint.
+
+
+
+ Gets or sets a value indicating whether this instance is attached.
+
+ True if this instance is attached; otherwise, False.
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the object to which this is attached.
+
+ The associated object.
+
+
+
+ Gets the associated object type constraint.
+
+ The associated object type constraint.
+
+
+
+ Invokes the action.
+
+ The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Gets or sets the name of the command this action should invoke.
+
+ The name of the command this action should invoke.
+ This property will be superseded by the Command property if both are set.
+
+
+
+ Gets or sets the command this action should invoke. This is a dependency property.
+
+ The command to execute.
+ This property will take precedence over the CommandName property if both are set.
+
+
+
+ Gets or sets the command parameter. This is a dependency property.
+
+ The command parameter.
+ This is the value passed to ICommand.CanExecute and ICommand.Execute.
+
+
+
+ Provides data about which objects were affected when resolving a name change.
+
+
+
+
+ Helper class to handle the logic of resolving a TargetName into a Target element
+ based on the context provided by a host element.
+
+
+
+
+ Attempts to update the resolved object from the name within the context of the namescope reference element.
+
+ The old resolved object.
+
+ Resets the existing target and attempts to resolve the current TargetName from the
+ context of the current Host. If it cannot resolve from the context of the Host, it will
+ continue up the visual tree until it resolves. If it has not resolved it when it reaches
+ the root, it will set the Target to null and write a warning message to Debug output.
+
+
+
+
+ Occurs when the resolved element has changed.
+
+
+
+
+ Gets or sets the name of the element to attempt to resolve.
+
+ The name to attempt to resolve.
+
+
+
+ The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted.
+
+
+
+
+ Gets or sets the reference element from which to perform the name resolution.
+
+ The reference element.
+
+
+
+ Gets or sets a value indicating whether the reference element load is pending.
+
+
+ True if [pending reference element load]; otherwise, False.
+
+
+ If the Host has not been loaded, the name will not be resolved.
+ In that case, delay the resolution and track that fact with this property.
+
+
+
+
+ Represents an action that can be targeted to affect an object other than its AssociatedObject.
+
+ The type constraint on the target.
+
+ TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to.
+ This allows a user to invoke the action on an element other than the one it is attached to in response to a
+ trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching
+ for the associated element. The type of the Target element can be constrained by the generic type parameter. If
+ you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type.
+
+
+
+
+ Represents an action that can be targeted to affect an object other than its AssociatedObject.
+
+ This is an infrastructure class. Action authors should derive from TargetedTriggerAction<T> instead of this class.
+
+
+
+ Called when the target changes.
+
+ The old target.
+ The new target.
+ This function should be overriden in derived classes to hook and unhook functionality from the changing source objects.
+
+
+
+ Called after the action is attached to an AssociatedObject.
+
+
+
+
+ Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+
+ The target object.
+
+
+
+ Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property.
+
+ The name of the target object.
+
+
+
+ Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+
+ The target object.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+ The Target element does not satisfy the type constraint.
+
+
+
+ Gets the associated object type constraint.
+
+ The associated object type constraint.
+ Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.
+
+
+
+ Gets the target type constraint.
+
+ The target type constraint.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called when the target property changes.
+
+ Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject.
+ The old target.
+ The new target.
+
+
+
+ Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+
+ The target.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+
+
+
+ Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+
+ Creates a new instance of the TriggerActionCollection.
+
+ The new instance.
+
+
+
+ Represents an object that can invoke actions conditionally.
+
+ The type to which this trigger can be attached.
+
+ TriggerBase is the base class for controlling actions. Override OnAttached() and
+ OnDetaching() to hook and unhook handlers on the AssociatedObject. You may
+ constrain the types that a derived TriggerBase may be attached to by specifying
+ the generic parameter. Call InvokeActions() to fire all Actions associated with
+ this TriggerBase.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the object to which the trigger is attached.
+
+ The associated object.
+
+
+
+ Gets the type constraint of the associated object.
+
+ The associated object type constraint.
+
+
+
+ Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger.
+
+ This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke.
+
+
+
+ Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+
+ Creates a new instance of the .
+
+ The new instance.
+
+
+
+ Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The constraint type.
+
+
+
+ Gets the constraint type.
+
+ The constraint type.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Cannot set the same BehaviorCollection on multiple objects..
+
+
+
+
+ Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time..
+
+
+
+
+ Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another..
+
+
+
+
+ Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects..
+
+
+
+
+ Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time..
+
+
+
+
+ Looks up a localized string similar to The command "{0}" does not exist or is not publicly exposed on {1}..
+
+
+
+
+ Looks up a localized string similar to "{0}" is not a valid type for the TriggerType parameter. Make sure "{0}" derives from TriggerBase..
+
+
+
+
+ Looks up a localized string similar to Cannot add the same instance of "{0}" to a "{1}" more than once..
+
+
+
+
+ Looks up a localized string similar to The event "{0}" on type "{1}" has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate..
+
+
+
+
+ Looks up a localized string similar to Cannot find an event named "{0}" on type "{1}"..
+
+
+
+
+ Looks up a localized string similar to An object of type "{0}" cannot have a {3} property of type "{1}". Instances of type "{0}" can have only a {3} property of type "{2}"..
+
+
+
+
+ Looks up a localized string similar to Cannot attach type "{0}" to type "{1}". Instances of type "{0}" can only be attached to objects of type "{2}"..
+
+
+
+
+ Looks up a localized string similar to Unable to resolve TargetName "{0}"..
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.Extras.WPF4.dll
Binary file Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.Extras.WPF4.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.Extras.WPF4.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.Extras.WPF4.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,416 @@
+
+
+
+ GalaSoft.MvvmLight.Extras.WPF4
+
+
+
+
+ Implements a universal converter able to take a lambda expression (as the parameter)
+ and to run this expression dynamically at runtime to convert the value.
+ Usage: Store an instance of UniversalConverter into the application's resources
+ and use this instance in XAML, for example with:
+ {Binding MyProperty,
+ Converter={StaticResource UniversalConverter},
+ ConverterParameter='b=>!b'}
+
+
+
+
+ Converts a value into another using an expression (lambda) passed as a string
+ and evaluated at runtime.
+ The process is optimized and already created expression cached for further use.
+
+ The value to be converted.
+ This parameter
+ is not used.
+ The lambda expression to be evaluated at runtime,
+ expressed as a string. For example expressions such as 'b=>!b' or
+ 'myValue=>myValue?Visibility.Visible:Visibility.Collapsed' (or more
+ complex expressions) can be used.
+ This parameter is not used.
+ The result of the conversion.
+
+
+
+ This method is not implemented.
+
+ Unused parameter.
+ Unused parameter.
+ Unused parameter.
+ Unused parameter.
+ This method is not implemented.
+
+
+
+ This can be
+ used to bind any event on any FrameworkElement to an .
+ Typically, this element is used in XAML to connect the attached element
+ to a command located in a ViewModel. This trigger can only be attached
+ to a FrameworkElement or a class deriving from FrameworkElement.
+ To access the EventArgs of the fired event, use a RelayCommand<EventArgs>
+ and leave the CommandParameter and CommandParameterValue empty!
+
+
+
+
+ Identifies the dependency property
+
+
+
+
+ Identifies the dependency property
+
+
+
+
+ Identifies the dependency property
+
+
+
+
+ Called when this trigger is attached to a FrameworkElement.
+
+
+
+
+ This method is here for compatibility
+ with the Silverlight version.
+
+ The FrameworkElement to which this trigger
+ is attached.
+
+
+
+ This method is here for compatibility
+ with the Silverlight 3 version.
+
+ The command that must be executed when
+ this trigger is invoked.
+
+
+
+ Provides a simple way to invoke this trigger programatically
+ without any EventArgs.
+
+
+
+
+ Executes the trigger.
+ To access the EventArgs of the fired event, use a RelayCommand<EventArgs>
+ and leave the CommandParameter and CommandParameterValue empty!
+
+ The EventArgs of the fired event.
+
+
+
+ Gets or sets the ICommand that this trigger is bound to. This
+ is a DependencyProperty.
+
+
+
+
+ Gets or sets an object that will be passed to the
+ attached to this trigger. This is a DependencyProperty.
+
+
+
+
+ Gets or sets an object that will be passed to the
+ attached to this trigger. This property is here for compatibility
+ with the Silverlight version. This is NOT a DependencyProperty.
+ For databinding, use the property.
+
+
+
+
+ Gets or sets a value indicating whether the attached element must be
+ disabled when the property's CanExecuteChanged
+ event fires. If this property is true, and the command's CanExecute
+ method returns false, the element will be disabled. If this property
+ is false, the element will not be disabled when the command's
+ CanExecute method changes. This is a DependencyProperty.
+
+
+
+
+ Gets or sets a value indicating whether the attached element must be
+ disabled when the property's CanExecuteChanged
+ event fires. If this property is true, and the command's CanExecute
+ method returns false, the element will be disabled. This property is here for
+ compatibility with the Silverlight version. This is NOT a DependencyProperty.
+ For databinding, use the property.
+
+
+
+
+ Specifies whether the EventArgs of the event that triggered this
+ action should be passed to the bound RelayCommand. If this is true,
+ the command should accept arguments of the corresponding
+ type (for example RelayCommand<MouseButtonEventArgs>).
+
+
+
+
+ A very simple IOC container with basic functionality needed to register and resolve
+ instances. If needed, this class can be replaced by another more elaborate
+ IOC container implementing the IServiceLocator interface.
+ The inspiration for this class is at https://gist.github.com/716137 but it has
+ been extended with additional features.
+
+
+
+
+ Checks whether at least one instance of a given class is already created in the container.
+
+ The class that is queried.
+ True if at least on instance of the class is already created, false otherwise.
+
+
+
+ Checks whether the instance with the given key is already created for a given class
+ in the container.
+
+ The class that is queried.
+ The key that is queried.
+ True if the instance with the given key is already registered for the given class,
+ false otherwise.
+
+
+
+ Registers a given type for a given interface.
+
+ The interface for which instances will be resolved.
+ The type that must be used to create instances.
+
+
+
+ Registers a given type.
+
+ The type that must be used to create instances.
+
+
+
+ Registers a given instance for a given type.
+
+ The type that is being registered.
+ The instance that must be returned when the given type
+ is resolved.
+
+
+
+ Registers a given instance for a given type and a given key.
+
+ The type that is being registered.
+ The instance that must be returned when the given type
+ and the given key are resolved.
+ The key for which the given instance is registered.
+
+
+
+ Resets the instance in its original states. This deletes all the
+ registrations.
+
+
+
+
+ Unregisters a class from the cache and removes all the previously
+ created instances.
+
+ The class that must be removed.
+
+
+
+ Removes the given instance from the cache. The class itself remains
+ registered and can be used to create other instances.
+
+ The type of the instance to be removed.
+ The instance that must be removed.
+
+
+
+ Removes the instance corresponding to the given key from the cache. The class itself remains
+ registered and can be used to create other instances.
+
+ The type of the instance to be removed.
+ The key corresponding to the instance that must be removed.
+
+
+
+ When used with the SimpleIoc container, specifies which constructor
+ should be used to instantiate when GetInstance is called.
+ If there is only one constructor in the class, this attribute is
+ not needed.
+
+
+
+
+ A very simple IOC container with basic functionality needed to register and resolve
+ instances. If needed, this class can be replaced by another more elaborate
+ IOC container implementing the IServiceLocator interface.
+ The inspiration for this class is at https://gist.github.com/716137 but it has
+ been extended with additional features.
+
+
+
+
+ Checks whether at least one instance of a given class is already created in the container.
+
+ The class that is queried.
+ True if at least on instance of the class is already created, false otherwise.
+
+
+
+ Checks whether the instance with the given key is already created for a given class
+ in the container.
+
+ The class that is queried.
+ The key that is queried.
+ True if the instance with the given key is already registered for the given class,
+ false otherwise.
+
+
+
+ Registers a given type for a given interface.
+
+ The interface for which instances will be resolved.
+ The type that must be used to create instances.
+
+
+
+ Registers a given type.
+
+ The type that must be used to create instances.
+
+
+
+ Registers a given instance for a given type.
+
+ The type that is being registered.
+ The factory method able to create the instance that
+ must be returned when the given type is resolved.
+
+
+
+ Registers a given instance for a given type and a given key.
+
+ The type that is being registered.
+ The factory method able to create the instance that
+ must be returned when the given type is resolved.
+ The key for which the given instance is registered.
+
+
+
+ Resets the instance in its original states. This deletes all the
+ registrations.
+
+
+
+
+ Unregisters a class from the cache and removes all the previously
+ created instances.
+
+ The class that must be removed.
+
+
+
+ Removes the given instance from the cache. The class itself remains
+ registered and can be used to create other instances.
+
+ The type of the instance to be removed.
+ The instance that must be removed.
+
+
+
+ Removes the instance corresponding to the given key from the cache. The class itself remains
+ registered and can be used to create other instances.
+
+ The type of the instance to be removed.
+ The key corresponding to the instance that must be removed.
+
+
+
+ Gets the service object of the specified type.
+
+
+ A service object of type .
+ -or-
+ null if there is no service object of type .
+
+ An object that specifies the type of service object to get.
+
+
+
+ Provides a way to get all the instances of a given type available in the
+ cache.
+
+ The class of which all instances
+ must be returned.
+ All the instances of the given type.
+
+
+
+ Provides a way to get all the instances of a given type available in the
+ cache.
+
+ The class of which all instances
+ must be returned.
+ All the instances of the given type.
+
+
+
+ Provides a way to get an instance of a given type. If no instance had been instantiated
+ before, a new instance will be created. If an instance had already
+ been created, that same instance will be returned.
+ If the class has not been registered before, this method
+ returns null!
+
+ The class of which an instance
+ must be returned.
+ An instance of the given type.
+
+
+
+ Provides a way to get an instance of a given type corresponding
+ to a given key. If no instance had been instantiated with this
+ key before, a new instance will be created. If an instance had already
+ been created with the same key, that same instance will be returned.
+ If the class has not been registered before, this method
+ returns null!
+
+ The class of which an instance must be returned.
+ The key uniquely identifying this instance.
+ An instance corresponding to the given type and key.
+
+
+
+ Provides a way to get an instance of a given type. If no instance had been instantiated
+ before, a new instance will be created. If an instance had already
+ been created, that same instance will be returned.
+ If the class has not been registered before, this method
+ returns null!
+
+ The class of which an instance
+ must be returned.
+ An instance of the given type.
+
+
+
+ Provides a way to get an instance of a given type corresponding
+ to a given key. If no instance had been instantiated with this
+ key before, a new instance will be created. If an instance had already
+ been created with the same key, that same instance will be returned.
+ If the class has not been registered before, this method
+ returns null!
+
+ The class of which an instance must be returned.
+ The key uniquely identifying this instance.
+ An instance corresponding to the given type and key.
+
+
+
+ This class' default instance.
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.WPF4.dll
Binary file Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.WPF4.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.WPF4.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/MvvmLight.4.0/GalaSoft.MvvmLight.WPF4.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,1332 @@
+
+
+
+ GalaSoft.MvvmLight.WPF4
+
+
+
+
+ The Messenger is a class allowing objects to exchange messages.
+
+
+
+
+ The Messenger is a class allowing objects to exchange messages.
+
+
+
+
+ Registers a recipient for a type of message TMessage. The action
+ parameter will be executed when a corresponding message is sent.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Registers a recipient for a type of message TMessage.
+ The action parameter will be executed when a corresponding
+ message is sent. See the receiveDerivedMessagesToo parameter
+ for details on how messages deriving from TMessage (or, if TMessage is an interface,
+ messages implementing TMessage) can be received too.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ A token for a messaging channel. If a recipient registers
+ using a token, and a sender sends a message using the same token, then this
+ message will be delivered to the recipient. Other recipients who did not
+ use a token when registering (or who used a different token) will not
+ get the message. Similarly, messages sent without any token, or with a different
+ token, will not be delivered to that recipient.
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Registers a recipient for a type of message TMessage.
+ The action parameter will be executed when a corresponding
+ message is sent. See the receiveDerivedMessagesToo parameter
+ for details on how messages deriving from TMessage (or, if TMessage is an interface,
+ messages implementing TMessage) can be received too.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ A token for a messaging channel. If a recipient registers
+ using a token, and a sender sends a message using the same token, then this
+ message will be delivered to the recipient. Other recipients who did not
+ use a token when registering (or who used a different token) will not
+ get the message. Similarly, messages sent without any token, or with a different
+ token, will not be delivered to that recipient.
+ If true, message types deriving from
+ TMessage will also be transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage derive from OrderMessage, registering for OrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+ Also, if TMessage is an interface, message types implementing TMessage will also be
+ transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage implement IOrderMessage, registering for IOrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Registers a recipient for a type of message TMessage.
+ The action parameter will be executed when a corresponding
+ message is sent. See the receiveDerivedMessagesToo parameter
+ for details on how messages deriving from TMessage (or, if TMessage is an interface,
+ messages implementing TMessage) can be received too.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ If true, message types deriving from
+ TMessage will also be transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage derive from OrderMessage, registering for OrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+ Also, if TMessage is an interface, message types implementing TMessage will also be
+ transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage implement IOrderMessage, registering for IOrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Sends a message to registered recipients. The message will
+ reach all recipients that registered for this message type
+ using one of the Register methods.
+
+ The type of message that will be sent.
+ The message to send to registered recipients.
+
+
+
+ Sends a message to registered recipients. The message will
+ reach only recipients that registered for this message type
+ using one of the Register methods, and that are
+ of the targetType.
+
+ The type of message that will be sent.
+ The type of recipients that will receive
+ the message. The message won't be sent to recipients of another type.
+ The message to send to registered recipients.
+
+
+
+ Sends a message to registered recipients. The message will
+ reach only recipients that registered for this message type
+ using one of the Register methods, and that are
+ of the targetType.
+
+ The type of message that will be sent.
+ The message to send to registered recipients.
+ A token for a messaging channel. If a recipient registers
+ using a token, and a sender sends a message using the same token, then this
+ message will be delivered to the recipient. Other recipients who did not
+ use a token when registering (or who used a different token) will not
+ get the message. Similarly, messages sent without any token, or with a different
+ token, will not be delivered to that recipient.
+
+
+
+ Unregisters a messager recipient completely. After this method
+ is executed, the recipient will not receive any messages anymore.
+
+ The recipient that must be unregistered.
+
+
+
+ Unregisters a message recipient for a given type of messages only.
+ After this method is executed, the recipient will not receive messages
+ of type TMessage anymore, but will still receive other message types (if it
+ registered for them previously).
+
+ The type of messages that the recipient wants
+ to unregister from.
+ The recipient that must be unregistered.
+
+
+
+ Unregisters a message recipient for a given type of messages only and for a given token.
+ After this method is executed, the recipient will not receive messages
+ of type TMessage anymore with the given token, but will still receive other message types
+ or messages with other tokens (if it registered for them previously).
+
+ The recipient that must be unregistered.
+ The token for which the recipient must be unregistered.
+ The type of messages that the recipient wants
+ to unregister from.
+
+
+
+ Unregisters a message recipient for a given type of messages and for
+ a given action. Other message types will still be transmitted to the
+ recipient (if it registered for them previously). Other actions that have
+ been registered for the message type TMessage and for the given recipient (if
+ available) will also remain available.
+
+ The type of messages that the recipient wants
+ to unregister from.
+ The recipient that must be unregistered.
+ The action that must be unregistered for
+ the recipient and for the message type TMessage.
+
+
+
+ Unregisters a message recipient for a given type of messages, for
+ a given action and a given token. Other message types will still be transmitted to the
+ recipient (if it registered for them previously). Other actions that have
+ been registered for the message type TMessage, for the given recipient and other tokens (if
+ available) will also remain available.
+
+ The type of messages that the recipient wants
+ to unregister from.
+ The recipient that must be unregistered.
+ The token for which the recipient must be unregistered.
+ The action that must be unregistered for
+ the recipient and for the message type TMessage.
+
+
+
+ Registers a recipient for a type of message TMessage. The action
+ parameter will be executed when a corresponding message is sent.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Registers a recipient for a type of message TMessage.
+ The action parameter will be executed when a corresponding
+ message is sent. See the receiveDerivedMessagesToo parameter
+ for details on how messages deriving from TMessage (or, if TMessage is an interface,
+ messages implementing TMessage) can be received too.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ If true, message types deriving from
+ TMessage will also be transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage derive from OrderMessage, registering for OrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+ Also, if TMessage is an interface, message types implementing TMessage will also be
+ transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage implement IOrderMessage, registering for IOrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Registers a recipient for a type of message TMessage.
+ The action parameter will be executed when a corresponding
+ message is sent.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ A token for a messaging channel. If a recipient registers
+ using a token, and a sender sends a message using the same token, then this
+ message will be delivered to the recipient. Other recipients who did not
+ use a token when registering (or who used a different token) will not
+ get the message. Similarly, messages sent without any token, or with a different
+ token, will not be delivered to that recipient.
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Registers a recipient for a type of message TMessage.
+ The action parameter will be executed when a corresponding
+ message is sent. See the receiveDerivedMessagesToo parameter
+ for details on how messages deriving from TMessage (or, if TMessage is an interface,
+ messages implementing TMessage) can be received too.
+ Registering a recipient does not create a hard reference to it,
+ so if this recipient is deleted, no memory leak is caused.
+
+ The type of message that the recipient registers
+ for.
+ The recipient that will receive the messages.
+ A token for a messaging channel. If a recipient registers
+ using a token, and a sender sends a message using the same token, then this
+ message will be delivered to the recipient. Other recipients who did not
+ use a token when registering (or who used a different token) will not
+ get the message. Similarly, messages sent without any token, or with a different
+ token, will not be delivered to that recipient.
+ If true, message types deriving from
+ TMessage will also be transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage derive from OrderMessage, registering for OrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+ Also, if TMessage is an interface, message types implementing TMessage will also be
+ transmitted to the recipient. For example, if a SendOrderMessage
+ and an ExecuteOrderMessage implement IOrderMessage, registering for IOrderMessage
+ and setting receiveDerivedMessagesToo to true will send SendOrderMessage
+ and ExecuteOrderMessage to the recipient that registered.
+
+ The action that will be executed when a message
+ of type TMessage is sent.
+
+
+
+ Sends a message to registered recipients. The message will
+ reach all recipients that registered for this message type
+ using one of the Register methods.
+
+ The type of message that will be sent.
+ The message to send to registered recipients.
+
+
+
+ Sends a message to registered recipients. The message will
+ reach only recipients that registered for this message type
+ using one of the Register methods, and that are
+ of the targetType.
+
+ The type of message that will be sent.
+ The type of recipients that will receive
+ the message. The message won't be sent to recipients of another type.
+ The message to send to registered recipients.
+
+
+
+ Sends a message to registered recipients. The message will
+ reach only recipients that registered for this message type
+ using one of the Register methods, and that are
+ of the targetType.
+
+ The type of message that will be sent.
+ The message to send to registered recipients.
+ A token for a messaging channel. If a recipient registers
+ using a token, and a sender sends a message using the same token, then this
+ message will be delivered to the recipient. Other recipients who did not
+ use a token when registering (or who used a different token) will not
+ get the message. Similarly, messages sent without any token, or with a different
+ token, will not be delivered to that recipient.
+
+
+
+ Unregisters a messager recipient completely. After this method
+ is executed, the recipient will not receive any messages anymore.
+
+ The recipient that must be unregistered.
+
+
+
+ Unregisters a message recipient for a given type of messages only.
+ After this method is executed, the recipient will not receive messages
+ of type TMessage anymore, but will still receive other message types (if it
+ registered for them previously).
+
+ The recipient that must be unregistered.
+ The type of messages that the recipient wants
+ to unregister from.
+
+
+
+ Unregisters a message recipient for a given type of messages only and for a given token.
+ After this method is executed, the recipient will not receive messages
+ of type TMessage anymore with the given token, but will still receive other message types
+ or messages with other tokens (if it registered for them previously).
+
+ The recipient that must be unregistered.
+ The token for which the recipient must be unregistered.
+ The type of messages that the recipient wants
+ to unregister from.
+
+
+
+ Unregisters a message recipient for a given type of messages and for
+ a given action. Other message types will still be transmitted to the
+ recipient (if it registered for them previously). Other actions that have
+ been registered for the message type TMessage and for the given recipient (if
+ available) will also remain available.
+
+ The type of messages that the recipient wants
+ to unregister from.
+ The recipient that must be unregistered.
+ The action that must be unregistered for
+ the recipient and for the message type TMessage.
+
+
+
+ Unregisters a message recipient for a given type of messages, for
+ a given action and a given token. Other message types will still be transmitted to the
+ recipient (if it registered for them previously). Other actions that have
+ been registered for the message type TMessage, for the given recipient and other tokens (if
+ available) will also remain available.
+
+ The type of messages that the recipient wants
+ to unregister from.
+ The recipient that must be unregistered.
+ The token for which the recipient must be unregistered.
+ The action that must be unregistered for
+ the recipient and for the message type TMessage.
+
+
+
+ Provides a way to override the Messenger.Default instance with
+ a custom instance, for example for unit testing purposes.
+
+ The instance that will be used as Messenger.Default.
+
+
+
+ Sets the Messenger's default (static) instance to null.
+
+
+
+
+ Gets the Messenger's default instance, allowing
+ to register and send messages in a static manner.
+
+
+
+
+ This interface is meant for the class and can be
+ useful if you store multiple WeakAction{T} instances but don't know in advance
+ what type T represents.
+
+
+
+
+ Executes an action.
+
+ A parameter passed as an object,
+ to be casted to the appropriate type.
+
+
+
+ A command whose sole purpose is to relay its functionality to other
+ objects by invoking delegates. The default return value for the CanExecute
+ method is 'true'. This class does not allow you to accept command parameters in the
+ Execute and CanExecute callback methods.
+
+
+
+
+ Initializes a new instance of the RelayCommand class that
+ can always execute.
+
+ The execution logic.
+ If the execute argument is null.
+
+
+
+ Initializes a new instance of the RelayCommand class.
+
+ The execution logic.
+ The execution status logic.
+ If the execute argument is null.
+
+
+
+ Raises the event.
+
+
+
+
+ Defines the method that determines whether the command can execute in its current state.
+
+ This parameter will always be ignored.
+ true if this command can be executed; otherwise, false.
+
+
+
+ Defines the method to be called when the command is invoked.
+
+ This parameter will always be ignored.
+
+
+
+ Occurs when changes occur that affect whether the command should execute.
+
+
+
+
+ Helper class for dispatcher operations on the UI thread.
+
+
+
+
+ Executes an action on the UI thread. If this method is called
+ from the UI thread, the action is executed immendiately. If the
+ method is called from another thread, the action will be enqueued
+ on the UI thread's dispatcher and executed asynchronously.
+ For additional operations on the UI thread, you can get a
+ reference to the UI thread's dispatcher thanks to the property
+ .
+
+ The action that will be executed on the UI
+ thread.
+
+
+
+ This method should be called once on the UI thread to ensure that
+ the property is initialized.
+ In a Silverlight application, call this method in the
+ Application_Startup event handler, after the MainPage is constructed.
+ In WPF, call this method on the static App() constructor.
+
+
+
+
+ Gets a reference to the UI thread's dispatcher, after the
+ method has been called on the UI thread.
+
+
+
+
+ Defines a common interface for classes that should be cleaned up,
+ but without the implications that IDisposable presupposes. An instance
+ implementing ICleanup can be cleaned up without being
+ disposed and garbage collected.
+
+
+
+
+ Cleans up the instance, for example by saving its state,
+ removing resources, etc...
+
+
+
+
+ Passes a string message (Notification) to a recipient.
+ Typically, notifications are defined as unique strings in a static class. To define
+ a unique string, you can use Guid.NewGuid().ToString() or any other unique
+ identifier.
+
+
+
+
+ Base class for all messages broadcasted by the Messenger.
+ You can create your own message types by extending this class.
+
+
+
+
+ Initializes a new instance of the MessageBase class.
+
+
+
+
+ Initializes a new instance of the MessageBase class.
+
+ The message's original sender.
+
+
+
+ Initializes a new instance of the MessageBase class.
+
+ The message's original sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+
+
+
+ Gets or sets the message's sender.
+
+
+
+
+ Gets or sets the message's intended target. This property can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+
+
+
+
+ Initializes a new instance of the NotificationMessage class.
+
+ A string containing any arbitrary message to be
+ passed to recipient(s)
+
+
+
+ Initializes a new instance of the NotificationMessage class.
+
+ The message's sender.
+ A string containing any arbitrary message to be
+ passed to recipient(s)
+
+
+
+ Initializes a new instance of the NotificationMessage class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ A string containing any arbitrary message to be
+ passed to recipient(s)
+
+
+
+ Gets a string containing any arbitrary message to be
+ passed to recipient(s).
+
+
+
+
+ Basis class for the class. This
+ class allows a recipient to register for all PropertyChangedMessages without
+ having to specify the type T.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message's sender.
+ The name of the property that changed.
+
+
+
+ Initializes a new instance of the class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ The name of the property that changed.
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the property that changed.
+
+
+
+ Gets or sets the name of the property that changed.
+
+
+
+
+ Provides a message class with a built-in callback. When the recipient
+ is done processing the message, it can execute the callback to
+ notify the sender that it is done. Use the
+ method to execute the callback. The callback method has one parameter.
+ and
+ .
+
+
+
+
+ Initializes a new instance of the class.
+
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Initializes a new instance of the class.
+
+ The message's sender.
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Initializes a new instance of the class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Executes the callback that was provided with the message with an
+ arbitrary number of parameters.
+
+ A number of parameters that will
+ be passed to the callback method.
+ The object returned by the callback method.
+
+
+
+ Provides a message class with a built-in callback. When the recipient
+ is done processing the message, it can execute the callback to
+ notify the sender that it is done. Use the
+ method to execute the callback.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The message's sender.
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Executes the callback that was provided with the message.
+
+
+
+
+ Passes a string message (Notification) and a generic value (Content) to a recipient.
+
+ The type of the Content property.
+
+
+
+ Passes a generic value (Content) to a recipient.
+
+ The type of the Content property.
+
+
+
+ Initializes a new instance of the GenericMessage class.
+
+ The message content.
+
+
+
+ Initializes a new instance of the GenericMessage class.
+
+ The message's sender.
+ The message content.
+
+
+
+ Initializes a new instance of the GenericMessage class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ The message content.
+
+
+
+ Gets or sets the message's content.
+
+
+
+
+ Initializes a new instance of the NotificationMessage class.
+
+ A value to be passed to recipient(s).
+ A string containing any arbitrary message to be
+ passed to recipient(s)
+
+
+
+ Initializes a new instance of the NotificationMessage class.
+
+ The message's sender.
+ A value to be passed to recipient(s).
+ A string containing any arbitrary message to be
+ passed to recipient(s)
+
+
+
+ Initializes a new instance of the NotificationMessage class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ A value to be passed to recipient(s).
+ A string containing any arbitrary message to be
+ passed to recipient(s)
+
+
+
+ Gets a string containing any arbitrary message to be
+ passed to recipient(s).
+
+
+
+
+ A base class for the ViewModel classes in the MVVM pattern.
+
+
+
+
+ A base class for the ViewModel classes in the MVVM pattern.
+
+
+
+
+ Verifies that a property name exists in this ViewModel. This method
+ can be called before the property is used, for instance before
+ calling RaisePropertyChanged. It avoids errors when a property name
+ is changed but some places are missed.
+ This method is only active in DEBUG mode.
+
+
+
+
+
+ Raises the PropertyChanged event if needed.
+
+ If the propertyName parameter
+ does not correspond to an existing property on the current class, an
+ exception is thrown in DEBUG configuration only.
+ The name of the property that
+ changed.
+
+
+
+ Raises the PropertyChanged event if needed.
+
+ The type of the property that
+ changed.
+ An expression identifying the property
+ that changed.
+
+
+
+ Assigns a new value to the property. Then, raises the
+ PropertyChanged event if needed.
+
+ The type of the property that
+ changed.
+ An expression identifying the property
+ that changed.
+ The field storing the property's value.
+ The property's value after the change
+ occurred.
+
+
+
+ Assigns a new value to the property. Then, raises the
+ PropertyChanged event if needed.
+
+ The type of the property that
+ changed.
+ The name of the property that
+ changed.
+ The field storing the property's value.
+ The property's value after the change
+ occurred.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Provides access to the PropertyChanged event handler to derived classes.
+
+
+
+
+ Initializes a new instance of the ViewModelBase class.
+
+
+
+
+ Initializes a new instance of the ViewModelBase class.
+
+ An instance of a
+ used to broadcast messages to other objects. If null, this class
+ will attempt to broadcast using the Messenger's default
+ instance.
+
+
+
+ Unregisters this instance from the Messenger class.
+ To cleanup additional resources, override this method, clean
+ up and then call base.Cleanup().
+
+
+
+
+ Broadcasts a PropertyChangedMessage using either the instance of
+ the Messenger that was passed to this class (if available)
+ or the Messenger's default instance.
+
+ The type of the property that
+ changed.
+ The value of the property before it
+ changed.
+ The value of the property after it
+ changed.
+ The name of the property that
+ changed.
+
+
+
+ Raises the PropertyChanged event if needed, and broadcasts a
+ PropertyChangedMessage using the Messenger instance (or the
+ static default instance if no Messenger instance is available).
+
+ The type of the property that
+ changed.
+ The name of the property that
+ changed.
+ The property's value before the change
+ occurred.
+ The property's value after the change
+ occurred.
+ If true, a PropertyChangedMessage will
+ be broadcasted. If false, only the event will be raised.
+ If the propertyName parameter
+ does not correspond to an existing property on the current class, an
+ exception is thrown in DEBUG configuration only.
+
+
+
+ Raises the PropertyChanged event if needed, and broadcasts a
+ PropertyChangedMessage using the Messenger instance (or the
+ static default instance if no Messenger instance is available).
+
+ The type of the property that
+ changed.
+ An expression identifying the property
+ that changed.
+ The property's value before the change
+ occurred.
+ The property's value after the change
+ occurred.
+ If true, a PropertyChangedMessage will
+ be broadcasted. If false, only the event will be raised.
+
+
+
+ Assigns a new value to the property. Then, raises the
+ PropertyChanged event if needed, and broadcasts a
+ PropertyChangedMessage using the Messenger instance (or the
+ static default instance if no Messenger instance is available).
+
+ The type of the property that
+ changed.
+ An expression identifying the property
+ that changed.
+ The field storing the property's value.
+ The property's value after the change
+ occurred.
+ If true, a PropertyChangedMessage will
+ be broadcasted. If false, only the event will be raised.
+
+
+
+ Assigns a new value to the property. Then, raises the
+ PropertyChanged event if needed, and broadcasts a
+ PropertyChangedMessage using the Messenger instance (or the
+ static default instance if no Messenger instance is available).
+
+ The type of the property that
+ changed.
+ The name of the property that
+ changed.
+ The field storing the property's value.
+ The property's value after the change
+ occurred.
+ If true, a PropertyChangedMessage will
+ be broadcasted. If false, only the event will be raised.
+
+
+
+ Gets a value indicating whether the control is in design mode
+ (running under Blend or Visual Studio).
+
+
+
+
+ Gets a value indicating whether the control is in design mode
+ (running in Blend or Visual Studio).
+
+
+
+
+ Gets or sets an instance of a used to
+ broadcast messages to other objects. If null, this class will
+ attempt to broadcast using the Messenger's default instance.
+
+
+
+
+ Stores an without causing a hard reference
+ to be created to the Action's owner. The owner can be garbage collected at any time.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The action's owner.
+ The action that will be associated to this instance.
+
+
+
+ Executes the action. This only happens if the action's owner
+ is still alive.
+
+
+
+
+ Sets the reference that this instance stores to null.
+
+
+
+
+ Gets the Action associated to this instance.
+
+
+
+
+ Gets a value indicating whether the Action's owner is still alive, or if it was collected
+ by the Garbage Collector already.
+
+
+
+
+ Gets the Action's owner. This object is stored as a .
+
+
+
+
+ Stores an Action without causing a hard reference
+ to be created to the Action's owner. The owner can be garbage collected at any time.
+
+ The type of the Action's parameter.
+
+
+
+ Initializes a new instance of the WeakAction class.
+
+ The action's owner.
+ The action that will be associated to this instance.
+
+
+
+ Executes the action. This only happens if the action's owner
+ is still alive. The action's parameter is set to default(T).
+
+
+
+
+ Executes the action. This only happens if the action's owner
+ is still alive.
+
+ A parameter to be passed to the action.
+
+
+
+ Executes the action with a parameter of type object. This parameter
+ will be casted to T. This method implements
+ and can be useful if you store multiple WeakAction{T} instances but don't know in advance
+ what type T represents.
+
+ The parameter that will be passed to the action after
+ being casted to T.
+
+
+
+ Gets the Action associated to this instance.
+
+
+
+
+ A generic command whose sole purpose is to relay its functionality to other
+ objects by invoking delegates. The default return value for the CanExecute
+ method is 'true'. This class allows you to accept command parameters in the
+ Execute and CanExecute callback methods.
+
+ The type of the command parameter.
+
+
+
+ Initializes a new instance of the RelayCommand class that
+ can always execute.
+
+ The execution logic.
+ If the execute argument is null.
+
+
+
+ Initializes a new instance of the RelayCommand class.
+
+ The execution logic.
+ The execution status logic.
+ If the execute argument is null.
+
+
+
+ Raises the event.
+
+
+
+
+ Defines the method that determines whether the command can execute in its current state.
+
+ Data used by the command. If the command does not require data
+ to be passed, this object can be set to a null reference
+ true if this command can be executed; otherwise, false.
+
+
+
+ Defines the method to be called when the command is invoked.
+
+ Data used by the command. If the command does not require data
+ to be passed, this object can be set to a null reference
+
+
+
+ Occurs when changes occur that affect whether the command should execute.
+
+
+
+
+ Passes a string property name (PropertyName) and a generic value
+ ( and ) to a recipient.
+ This message type can be used to propagate a PropertyChanged event to
+ a recipient using the messenging system.
+
+ The type of the OldValue and NewValue property.
+
+
+
+ Initializes a new instance of the class.
+
+ The message's sender.
+ The property's value before the change occurred.
+ The property's value after the change occurred.
+ The name of the property that changed.
+
+
+
+ Initializes a new instance of the class.
+
+ The property's value before the change occurred.
+ The property's value after the change occurred.
+ The name of the property that changed.
+
+
+
+ Initializes a new instance of the class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ The property's value before the change occurred.
+ The property's value after the change occurred.
+ The name of the property that changed.
+
+
+
+ Gets the value that the property has after the change.
+
+
+
+
+ Gets the value that the property had before the change.
+
+
+
+
+ Use this class to send a message requesting to display a message box with features
+ corresponding to this message's properties. The Callback property should be used
+ to notify the message's sender about the user's choice in the message box.
+ Typically, you can use this message typ's recipient will be an element of the View,
+ and the sender will possibly be a ViewModel.
+
+
+
+
+ Initializes a new instance of the DialogMessage class.
+
+ The text displayed by the message box.
+ A callback method that should be executed to deliver the result
+ of the message box to the object that sent the message.
+
+
+
+ Initializes a new instance of the DialogMessage class.
+
+ The message's original sender.
+ The text displayed by the message box.
+ A callback method that should be executed to deliver the result
+ of the message box to the object that sent the message.
+
+
+
+ Initializes a new instance of the DialogMessage class.
+
+ The message's original sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ The text displayed by the message box.
+ A callback method that should be executed to deliver the result
+ of the message box to the object that sent the message.
+
+
+
+ Utility method, checks if the property is
+ null, and if it is not null, executes it.
+
+ The result that must be passed
+ to the dialog message caller.
+
+
+
+ Gets or sets the buttons displayed by the message box.
+
+
+
+
+ Gets a callback method that should be executed to deliver the result
+ of the message box to the object that sent the message.
+
+
+
+
+ Gets or sets the caption for the message box.
+
+
+
+
+ Gets or sets which result is the default in the message box.
+
+
+
+
+ Gets or sets the icon for the message box.
+
+
+
+
+ Gets or sets the options for the message box.
+
+
+
+
+ Provides a message class with a built-in callback. When the recipient
+ is done processing the message, it can execute the callback to
+ notify the sender that it is done. Use the
+ method to execute the callback. The callback method has one parameter.
+ .
+
+ The type of the callback method's
+ only parameter.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The message's sender.
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The message's sender.
+ The message's intended target. This parameter can be used
+ to give an indication as to whom the message was intended for. Of course
+ this is only an indication, amd may be null.
+ An arbitrary string that will be
+ carried by the message.
+ The callback method that can be executed
+ by the recipient to notify the sender that the message has been
+ processed.
+
+
+
+ Executes the callback that was provided with the message.
+
+ A parameter requested by the message's
+ sender and providing additional information on the recipient's
+ state.
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/Microsoft.Practices.ServiceLocation.dll
Binary file Messaging/Libs/MvvmLight.4.0/Microsoft.Practices.ServiceLocation.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/Microsoft.Practices.ServiceLocation.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/MvvmLight.4.0/Microsoft.Practices.ServiceLocation.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,280 @@
+
+
+
+ Microsoft.Practices.ServiceLocation
+
+
+
+
+ The standard exception thrown when a ServiceLocator has an error in resolving an object.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a specified error message.
+
+
+ The message that describes the error.
+
+
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+
+ The error message that explains the reason for the exception.
+
+
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+
+ Initializes a new instance of the class with serialized data.
+
+
+ The that holds the serialized object data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+ The parameter is null.
+
+
+ The class name is null or is zero (0).
+
+
+
+
+ The generic Service Locator interface. This interface is used
+ to retrieve services (instances identified by type and optional
+ name) from a container.
+
+
+
+
+ Get an instance of the given .
+
+ Type of object requested.
+ if there is an error resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get an instance of the given named .
+
+ Type of object requested.
+ Name the object was registered with.
+ if there is an error resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get all instances of the given currently
+ registered in the container.
+
+ Type of object requested.
+ if there is are errors resolving
+ the service instance.
+ A sequence of instances of the requested .
+
+
+
+ Get an instance of the given .
+
+ Type of object requested.
+ if there is are errors resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get an instance of the given named .
+
+ Type of object requested.
+ Name the object was registered with.
+ if there is are errors resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get all instances of the given currently
+ registered in the container.
+
+ Type of object requested.
+ if there is are errors resolving
+ the service instance.
+ A sequence of instances of the requested .
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Activation error occured while trying to get all instances of type {0}.
+
+
+
+
+ Looks up a localized string similar to Activation error occured while trying to get instance of type {0}, key "{1}".
+
+
+
+
+ This class provides the ambient container for this application. If your
+ framework defines such an ambient container, use ServiceLocator.Current
+ to get it.
+
+
+
+
+ Set the delegate that is used to retrieve the current container.
+
+ Delegate that, when called, will return
+ the current ambient container.
+
+
+
+ The current ambient container.
+
+
+
+
+ This class is a helper that provides a default implementation
+ for most of the methods of .
+
+
+
+
+ Implementation of .
+
+ The requested service.
+ if there is an error in resolving the service instance.
+ The requested object.
+
+
+
+ Get an instance of the given .
+
+ Type of object requested.
+ if there is an error resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get an instance of the given named .
+
+ Type of object requested.
+ Name the object was registered with.
+ if there is an error resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get all instances of the given currently
+ registered in the container.
+
+ Type of object requested.
+ if there is are errors resolving
+ the service instance.
+ A sequence of instances of the requested .
+
+
+
+ Get an instance of the given .
+
+ Type of object requested.
+ if there is are errors resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get an instance of the given named .
+
+ Type of object requested.
+ Name the object was registered with.
+ if there is are errors resolving
+ the service instance.
+ The requested service instance.
+
+
+
+ Get all instances of the given currently
+ registered in the container.
+
+ Type of object requested.
+ if there is are errors resolving
+ the service instance.
+ A sequence of instances of the requested .
+
+
+
+ When implemented by inheriting classes, this method will do the actual work of resolving
+ the requested service instance.
+
+ Type of instance requested.
+ Name of registered service you want. May be null.
+ The requested service instance.
+
+
+
+ When implemented by inheriting classes, this method will do the actual work of
+ resolving all the requested service instances.
+
+ Type of service requested.
+ Sequence of service instance objects.
+
+
+
+ Format the exception message for use in an
+ that occurs while resolving a single service.
+
+ The actual exception thrown by the implementation.
+ Type of service requested.
+ Name requested.
+ The formatted exception message string.
+
+
+
+ Format the exception message for use in an
+ that occurs while resolving multiple service instances.
+
+ The actual exception thrown by the implementation.
+ Type of service requested.
+ The formatted exception message string.
+
+
+
+ This delegate type is used to provide a method that will
+ return the current container. Used with the
+ static accessor class.
+
+ An .
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/System.Windows.Interactivity.dll
Binary file Messaging/Libs/MvvmLight.4.0/System.Windows.Interactivity.dll has changed
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Libs/MvvmLight.4.0/System.Windows.Interactivity.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Libs/MvvmLight.4.0/System.Windows.Interactivity.xml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,1072 @@
+
+
+
+ System.Windows.Interactivity
+
+
+
+
+ Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ An interface for an object that can be attached to another object.
+
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+ Represents the object the instance is attached to.
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+ Cannot add the instance to a collection more than once.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ The IAttachedObject is already attached to a different object.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ The object on which the collection is hosted.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Encapsulates state information and zero or more ICommands into an attachable object.
+
+ The type the can be attached to.
+
+ Behavior is the base class for providing attachable state and commands to an object.
+ The types the Behavior can be attached to can be controlled by the generic parameter.
+ Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers
+ from the AssociatedObject.
+
+
+
+
+ Encapsulates state information and zero or more ICommands into an attachable object.
+
+ This is an infrastructure class. Behavior authors should derive from Behavior<T> instead of from this class.
+
+
+
+ Called after the behavior is attached to an AssociatedObject.
+
+ Override this to hook up functionality to the AssociatedObject.
+
+
+
+ Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred.
+
+ Override this to unhook functionality from the AssociatedObject.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ The Behavior is already hosted on a different element.
+ dependencyObject does not satisfy the Behavior type constraint.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ The type to which this behavior can be attached.
+
+
+
+
+ Gets the object to which this behavior is attached.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the object to which this is attached.
+
+
+
+
+ Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+
+ Creates a new instance of the BehaviorCollection.
+
+ The new instance.
+
+
+
+ Enumerates possible values for reusable property value editors.
+
+
+
+
+ Uses the element picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the storyboard picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the state picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the element-binding picker, if supported, to edit this property at design time.
+
+
+
+
+ Uses the property-binding picker, if supported, to edit this property at design time.
+
+
+
+
+ Associates the given editor type with the property on which the CustomPropertyValueEditor is applied.
+
+ Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name).
+
+
+
+ Initializes a new instance of the class.
+
+ The custom property value editor.
+
+
+
+ Gets or sets the custom property value editor.
+
+ The custom property value editor.
+
+
+
+ Provides design tools information about what to instantiate for a given action or command.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type this attribute applies to.
+ The type of to instantiate.
+ A single argument for the specified .
+ is not derived from TriggerBase.
+ This constructor is useful if the specifed has a single argument. The
+ resulting code will be CLS compliant.
+
+
+
+ Initializes a new instance of the class.
+
+ The type this attribute applies to.
+ The type of to instantiate.
+ The constructor arguments for the specified .
+ is not derived from TriggerBase.
+
+
+
+ Instantiates this instance.
+
+ The specified by the DefaultTriggerAttribute.
+
+
+
+ Gets the type that this DefaultTriggerAttribute applies to.
+
+ The type this DefaultTriggerAttribute applies to.
+
+
+
+ Gets the type of the to instantiate.
+
+ The type of the to instantiate.
+
+
+
+ Gets the parameters to pass to the constructor.
+
+ The parameters to pass to the constructor.
+
+
+
+ This method will use the VisualTreeHelper.GetParent method to do a depth first walk up
+ the visual tree and return all ancestors of the specified object, including the object itself.
+
+ The object in the visual tree to find ancestors of.
+ Returns itself an all ancestors in the visual tree.
+
+
+
+ EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor.
+
+
+
+
+ Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach.
+
+ The event to attach and detach from.
+ The target object the event is defined on. Null if the method is static.
+ The delegate to attach to the event.
+
+
+
+ Detaches the handler from the event.
+
+
+
+
+ A trigger that listens for a specified event on its source and fires when that event is fired.
+
+
+
+
+ Represents a trigger that can listen to an element other than its AssociatedObject.
+
+ The type that this trigger can be associated with.
+
+ EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to.
+ This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a
+ change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source
+ element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be
+ constrained by the generic type parameter. If you need control over the type of the
+ AssociatedObject, set a TypeConstraintAttribute on your derived type.
+
+
+
+
+ Represents a trigger that can listen to an object other than its AssociatedObject.
+
+ This is an infrastructure class. Trigger authors should derive from EventTriggerBase<T> instead of this class.
+
+
+
+ Represents an object that can invoke Actions conditionally.
+
+ This is an infrastructure class. Trigger authors should derive from Trigger<T> instead of this class.
+
+
+
+ Invoke all actions associated with this trigger.
+
+ Derived classes should call this to fire the trigger.
+
+
+
+ Called after the trigger is attached to an AssociatedObject.
+
+
+
+
+ Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Creates a new instance of the TriggerBase derived class.
+
+ The new instance.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ Cannot host the same trigger on more than one object at a time.
+ dependencyObject does not satisfy the trigger type constraint.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ Gets the object to which the trigger is attached.
+
+ The associated object.
+
+
+
+ Gets the type constraint of the associated object.
+
+ The associated object type constraint.
+
+
+
+ Gets the actions associated with this trigger.
+
+ The actions associated with this trigger.
+
+
+
+ Event handler for registering to PreviewInvoke.
+
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Specifies the name of the Event this EventTriggerBase is listening for.
+
+
+
+
+
+ Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger.
+
+ The instance containing the event data.
+ Override this to provide more granular control over when actions associated with this trigger will be invoked.
+
+
+
+ Called when the source changes.
+
+ The old source.
+ The new source.
+ This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects.
+
+
+
+ Called after the trigger is attached to an AssociatedObject.
+
+
+
+
+ Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+ Could not find eventName on the Target.
+
+
+
+ Gets the type constraint of the associated object.
+
+ The associated object type constraint.
+ Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.
+
+
+
+ Gets the source type constraint.
+
+ The source type constraint.
+
+
+
+ Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+
+ The target object.
+
+
+
+ Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used. This is a dependency property.
+
+ The name of the source element.
+
+
+
+ Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject.
+
+ The resolved source object.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+ The element pointed to by does not satisify the type constraint.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called when the source property changes.
+
+ Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject.
+ The old source.
+ The new source.
+
+
+
+ Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject.
+
+ The resolved source object.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the event.
+
+
+
+ Gets or sets the name of the event to listen for. This is a dependency property.
+
+ The name of the event.
+
+
+
+ Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications.
+
+
+
+
+ This property is used as the internal backing store for the public Triggers attached property.
+
+
+ This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the
+ collection, ensuring the collection exists and is set before it is used.
+
+
+
+
+ This property is used as the internal backing store for the public Behaviors attached property.
+
+
+ This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the
+ collection, ensuring the collection exists and is set before it is used.
+
+
+
+
+ Gets the TriggerCollection containing the triggers associated with the specified object.
+
+ The object from which to retrieve the triggers.
+ A TriggerCollection containing the triggers associated with the specified object.
+
+
+
+ Gets the associated with a specified object.
+
+ The object from which to retrieve the .
+ A containing the behaviors associated with the specified object.
+
+
+ Cannot host the same BehaviorCollection on more than one object at a time.
+
+
+ Cannot host the same TriggerCollection on more than one object at a time.
+
+
+
+ A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight.
+
+ The element of interest.
+ True if the element has been loaded; otherwise, False.
+
+
+
+ Gets or sets a value indicating whether to run as if in design mode.
+
+
+ True if [should run in design mode]; otherwise, False.
+
+ Not to be used outside unit tests.
+
+
+
+ Executes a specified ICommand when invoked.
+
+
+
+
+ Represents an attachable object that encapsulates a unit of functionality.
+
+ The type to which this action can be attached.
+
+
+
+ Represents an attachable object that encapsulates a unit of functionality.
+
+ This is an infrastructure class. Action authors should derive from TriggerAction<T> instead of this class.
+
+
+
+ Attempts to invoke the action.
+
+ The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Invokes the action.
+
+ The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Called after the action is attached to an AssociatedObject.
+
+
+
+
+ Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ When implemented in a derived class, creates a new instance of the derived class.
+
+ The new instance.
+
+
+
+ Attaches to the specified object.
+
+ The object to attach to.
+ Cannot host the same TriggerAction on more than one object at a time.
+ dependencyObject does not satisfy the TriggerAction type constraint.
+
+
+
+ Detaches this instance from its associated object.
+
+
+
+
+ Gets or sets a value indicating whether this action will run when invoked. This is a dependency property.
+
+
+ True if this action will be run when invoked; otherwise, False.
+
+
+
+
+ Gets the object to which this action is attached.
+
+ The associated object.
+
+
+
+ Gets the associated object type constraint.
+
+ The associated object type constraint.
+
+
+
+ Gets or sets a value indicating whether this instance is attached.
+
+ True if this instance is attached; otherwise, False.
+
+
+
+ Gets the associated object.
+
+ The associated object.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the object to which this is attached.
+
+ The associated object.
+
+
+
+ Gets the associated object type constraint.
+
+ The associated object type constraint.
+
+
+
+ Invokes the action.
+
+ The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.
+
+
+
+ Gets or sets the name of the command this action should invoke.
+
+ The name of the command this action should invoke.
+ This property will be superseded by the Command property if both are set.
+
+
+
+ Gets or sets the command this action should invoke. This is a dependency property.
+
+ The command to execute.
+ This property will take precedence over the CommandName property if both are set.
+
+
+
+ Gets or sets the command parameter. This is a dependency property.
+
+ The command parameter.
+ This is the value passed to ICommand.CanExecute and ICommand.Execute.
+
+
+
+ Provides data about which objects were affected when resolving a name change.
+
+
+
+
+ Helper class to handle the logic of resolving a TargetName into a Target element
+ based on the context provided by a host element.
+
+
+
+
+ Attempts to update the resolved object from the name within the context of the namescope reference element.
+
+ The old resolved object.
+
+ Resets the existing target and attempts to resolve the current TargetName from the
+ context of the current Host. If it cannot resolve from the context of the Host, it will
+ continue up the visual tree until it resolves. If it has not resolved it when it reaches
+ the root, it will set the Target to null and write a warning message to Debug output.
+
+
+
+
+ Occurs when the resolved element has changed.
+
+
+
+
+ Gets or sets the name of the element to attempt to resolve.
+
+ The name to attempt to resolve.
+
+
+
+ The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted.
+
+
+
+
+ Gets or sets the reference element from which to perform the name resolution.
+
+ The reference element.
+
+
+
+ Gets or sets a value indicating whether the reference element load is pending.
+
+
+ True if [pending reference element load]; otherwise, False.
+
+
+ If the Host has not been loaded, the name will not be resolved.
+ In that case, delay the resolution and track that fact with this property.
+
+
+
+
+ Represents an action that can be targeted to affect an object other than its AssociatedObject.
+
+ The type constraint on the target.
+
+ TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to.
+ This allows a user to invoke the action on an element other than the one it is attached to in response to a
+ trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching
+ for the associated element. The type of the Target element can be constrained by the generic type parameter. If
+ you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type.
+
+
+
+
+ Represents an action that can be targeted to affect an object other than its AssociatedObject.
+
+ This is an infrastructure class. Action authors should derive from TargetedTriggerAction<T> instead of this class.
+
+
+
+ Called when the target changes.
+
+ The old target.
+ The new target.
+ This function should be overriden in derived classes to hook and unhook functionality from the changing source objects.
+
+
+
+ Called after the action is attached to an AssociatedObject.
+
+
+
+
+ Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+
+ The target object.
+
+
+
+ Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property.
+
+ The name of the target object.
+
+
+
+ Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+
+ The target object.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+ The Target element does not satisfy the type constraint.
+
+
+
+ Gets the associated object type constraint.
+
+ The associated object type constraint.
+ Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.
+
+
+
+ Gets the target type constraint.
+
+ The target type constraint.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called when the target property changes.
+
+ Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject.
+ The old target.
+ The new target.
+
+
+
+ Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+
+ The target.
+ In general, this property should be used in place of AssociatedObject in derived classes.
+
+
+
+ Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+
+ Creates a new instance of the TriggerActionCollection.
+
+ The new instance.
+
+
+
+ Represents an object that can invoke actions conditionally.
+
+ The type to which this trigger can be attached.
+
+ TriggerBase is the base class for controlling actions. Override OnAttached() and
+ OnDetaching() to hook and unhook handlers on the AssociatedObject. You may
+ constrain the types that a derived TriggerBase may be attached to by specifying
+ the generic parameter. Call InvokeActions() to fire all Actions associated with
+ this TriggerBase.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the object to which the trigger is attached.
+
+ The associated object.
+
+
+
+ Gets the type constraint of the associated object.
+
+ The associated object type constraint.
+
+
+
+ Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger.
+
+ This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke.
+
+
+
+ Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Internal, because this should not be inherited outside this assembly.
+
+
+
+ Called immediately after the collection is attached to an AssociatedObject.
+
+
+
+
+ Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+
+
+
+
+ Called when a new item is added to the collection.
+
+ The new item.
+
+
+
+ Called when an item is removed from the collection.
+
+ The removed item.
+
+
+
+ Creates a new instance of the .
+
+ The new instance.
+
+
+
+ Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The constraint type.
+
+
+
+ Gets the constraint type.
+
+ The constraint type.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Cannot set the same BehaviorCollection on multiple objects..
+
+
+
+
+ Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time..
+
+
+
+
+ Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another..
+
+
+
+
+ Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects..
+
+
+
+
+ Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time..
+
+
+
+
+ Looks up a localized string similar to The command "{0}" does not exist or is not publicly exposed on {1}..
+
+
+
+
+ Looks up a localized string similar to "{0}" is not a valid type for the TriggerType parameter. Make sure "{0}" derives from TriggerBase..
+
+
+
+
+ Looks up a localized string similar to Cannot add the same instance of "{0}" to a "{1}" more than once..
+
+
+
+
+ Looks up a localized string similar to The event "{0}" on type "{1}" has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate..
+
+
+
+
+ Looks up a localized string similar to Cannot find an event named "{0}" on type "{1}"..
+
+
+
+
+ Looks up a localized string similar to An object of type "{0}" cannot have a {3} property of type "{1}". Instances of type "{0}" can have only a {3} property of type "{2}"..
+
+
+
+
+ Looks up a localized string similar to Cannot attach type "{0}" to type "{1}". Instances of type "{0}" can only be attached to objects of type "{2}"..
+
+
+
+
+ Looks up a localized string similar to Unable to resolve TargetName "{0}"..
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Messaging.sln
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Messaging.sln Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,54 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{A453FF2D-6EF0-4E0F-B19E-5522923C7293}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Client\Client.csproj", "{31F2E0F2-A94B-4FC0-B4D4-1518600A0256}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{241CE91D-18AC-4D84-ACC2-2273F50A5E9B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Debug|x86.ActiveCfg = Debug|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Debug|x86.Build.0 = Debug|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Release|Any CPU.ActiveCfg = Release|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Release|Mixed Platforms.Build.0 = Release|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Release|x86.ActiveCfg = Release|x86
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}.Release|x86.Build.0 = Release|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Debug|x86.ActiveCfg = Debug|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Debug|x86.Build.0 = Debug|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Release|Any CPU.ActiveCfg = Release|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Release|Mixed Platforms.Build.0 = Release|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Release|x86.ActiveCfg = Release|x86
+ {31F2E0F2-A94B-4FC0-B4D4-1518600A0256}.Release|x86.Build.0 = Release|x86
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}.Release|x86.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/App.xaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/App.xaml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+ #FF0097
+ #A200FF
+ #00ABA9
+ #8CBF26
+ #996600
+ #FF0097
+ #F09609
+ #1BA1E2
+ #FFB2E0F4
+ #E51400
+ #339933
+ #FFF2F2F2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/App.xaml.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/App.xaml.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,16 @@
+using System.Windows;
+using Common.Binding;
+
+namespace Server
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ protected override void OnStartup(StartupEventArgs e)
+ {
+ //BindingErrorTraceListener.SetTrace();
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Converters/ToggleButtonToTextConverter.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Converters/ToggleButtonToTextConverter.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,30 @@
+using System;
+using System.Windows.Data;
+using System.Windows.Markup;
+
+namespace Server.Converters
+{
+ public class ToggleButtonToTextConverter : MarkupExtension, IValueConverter
+ {
+ private static ToggleButtonToTextConverter _toggleButtonToTextConverter = null;
+
+ public override object ProvideValue(IServiceProvider serviceProvider)
+ {
+ return _toggleButtonToTextConverter ?? (_toggleButtonToTextConverter = new ToggleButtonToTextConverter());
+ }
+
+ #region IValueConverter Members
+
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ return (bool) value ? "ON" : "OFF";
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Interfaces/IListener.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Interfaces/IListener.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,9 @@
+namespace Server.Interfaces
+{
+ public interface IListener
+ {
+ bool IsListening { get; set; }
+ void Start();
+ void Stop();
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Locator.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Locator.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,12 @@
+using Server.UI;
+
+namespace Server
+{
+ public class Locator
+ {
+ public MainWindowViewModel MainWindowViewModel
+ {
+ get { return new MainWindowViewModel(); }
+ }
+ }
+}
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Properties/AssemblyInfo.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Properties/AssemblyInfo.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Server")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Server")]
+[assembly: AssemblyCopyright("Copyright © 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set
+//CultureYouAreCodingWith in your .csproj file
+//inside a . For example, if you are using US english
+//in your source files, set the to en-US. Then uncomment
+//the NeutralResourceLanguage attribute below. Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Properties/Resources.Designer.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Properties/Resources.Designer.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.530
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Server.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Server.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Properties/Resources.resx
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Properties/Resources.resx Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Properties/Settings.Designer.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Properties/Settings.Designer.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.530
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Server.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Properties/Settings.settings
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Properties/Settings.settings Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Server.csproj
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Server.csproj Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,139 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {A453FF2D-6EF0-4E0F-B19E-5522923C7293}
+ WinExe
+ Properties
+ Server
+ Server
+ v4.0
+ Client
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ UI\mail.ico
+
+
+
+ ..\Libs\Elysium.Theme.1.3\Elysium.Theme.dll
+
+
+ ..\Libs\MvvmLight.4.0\GalaSoft.MvvmLight.Extras.WPF4.dll
+
+
+ ..\Libs\MvvmLight.4.0\GalaSoft.MvvmLight.WPF4.dll
+
+
+ ..\Libs\Elysium.Theme.1.3\Microsoft.Expression.Drawing.dll
+
+
+ ..\Libs\Elysium.Theme.1.3\Microsoft.Expression.Interactions.dll
+
+
+ ..\Libs\Elysium.Theme.1.3\Microsoft.Windows.Shell.dll
+
+
+
+ ..\Libs\Elysium.Theme.1.3\System.Windows.Interactivity.dll
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+ {241CE91D-18AC-4D84-ACC2-2273F50A5E9B}
+ Common
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Sockets/AsyncSocketListener.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Sockets/AsyncSocketListener.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,182 @@
+using System;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+using Common;
+using Common.Logger;
+using Server.Interfaces;
+
+namespace Server.Sockets
+{
+ public class AsyncSocketListener : IListener
+ {
+ public bool IsListening { get; set; }
+ private int _portNumber;
+
+ // Thread signal.
+ public static ManualResetEvent AllDone = new ManualResetEvent(false);
+
+ public AsyncSocketListener(int portNumber)
+ {
+ IsListening = false;
+ _portNumber = portNumber;
+ }
+
+ public void Start()
+ {
+ // Data buffer for incoming data.
+ var bytes = new Byte[1024];
+
+ // Establish the local endpoint for the socket
+ var ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
+ var ipAddress = ipHostInfo.AddressList[0];
+ var localEndPoint = new IPEndPoint(ipAddress, _portNumber);
+
+ // Create a TCP/IP socket.
+ var listener = new Socket(
+ AddressFamily.InterNetwork,
+ SocketType.Stream,
+ ProtocolType.Tcp);
+
+ // Bind the socket to the local endpoint and listen for incoming connections.
+ try
+ {
+ listener.Bind(localEndPoint);
+ listener.Listen(100);
+ IsListening = true;
+
+ while (IsListening)
+ {
+ // Set the event to nonsignaled state.
+ AllDone.Reset();
+
+ // Start an asynchronous socket to listen for connections.
+ Log.Write("Waiting for a connection...");
+
+ listener.BeginAccept(
+ AcceptCallback,
+ listener);
+
+ // Wait until a connection is made before continuing.
+ AllDone.WaitOne();
+ }
+ }
+ catch (Exception e)
+ {
+ Log.Write(e.ToString());
+ }
+ }
+
+ public void AcceptCallback(IAsyncResult ar)
+ {
+ // Signal the main thread to continue.
+ AllDone.Set();
+
+ // Get the socket that handles the client request.
+ var listener = (Socket) ar.AsyncState;
+ var handler = listener.EndAccept(ar);
+
+ // Create the state object.
+ var state = new StateObject {WorkSocket = handler};
+
+ handler.BeginReceive(
+ state.Buffer,
+ 0,
+ StateObject.BufferSize,
+ 0,
+ ReadCallback,
+ state);
+ }
+
+ public void ReadCallback(IAsyncResult ar)
+ {
+ var content = String.Empty;
+
+ // Retrieve the state object and the handler socket
+ // from the asynchronous state object.
+ var state = (StateObject)ar.AsyncState;
+ var handler = state.WorkSocket;
+
+ // Read data from the client socket.
+ var bytesRead = handler.EndReceive(ar);
+
+ if (bytesRead <= 0) return;
+
+ // There might be more data, so store the data received so far.
+ state.Sb.Append(
+ Encoding.ASCII.GetString(
+ state.Buffer,
+ 0,
+ bytesRead));
+
+ // Check for end-of-file tag. If it is not there, read
+ // more data.
+ content = state.Sb.ToString();
+ if (content.IndexOf("") > -1)
+ {
+ // All the data has been read from the
+ // client. Display it on the console.
+ Log.Write(
+ string.Format(
+ "Read {0} bytes from socket. \n Data : {1}",
+ content.Length,
+ content));
+
+ // Echo the data back to the client.
+ Send(handler, "The following message was received: " + content);
+ }
+ else
+ {
+ // Not all data received. Get more.
+ handler.BeginReceive(
+ state.Buffer,
+ 0,
+ StateObject.BufferSize,
+ 0,
+ ReadCallback,
+ state);
+ }
+ }
+
+ private void Send(Socket handler, String data)
+ {
+ // Convert the string data to byte data using ASCII encoding.
+ var byteData = Encoding.ASCII.GetBytes(data);
+
+ // Begin sending the data to the remote device.
+ handler.BeginSend(
+ byteData,
+ 0,
+ byteData.Length,
+ 0,
+ SendCallback,
+ handler);
+ }
+
+ private void SendCallback(IAsyncResult ar)
+ {
+ try
+ {
+ // Retrieve the socket from the state object.
+ var handler = (Socket)ar.AsyncState;
+
+ // Complete sending the data to the remote device.
+ var bytesSent = handler.EndSend(ar);
+ Log.Write(string.Format("Sent {0} bytes to client.", bytesSent));
+
+ handler.Shutdown(SocketShutdown.Both);
+ handler.Close();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ }
+
+ public void Stop()
+ {
+ IsListening = false;
+ }
+ }
+}
\ No newline at end of file
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/Sockets/StateObject.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/Sockets/StateObject.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,21 @@
+using System.Net.Sockets;
+using System.Text;
+
+namespace Server.Sockets
+{
+ // State object for reading client data asynchronously
+ public class StateObject
+ {
+ // Client socket.
+ public Socket WorkSocket;
+
+ // Size of receive buffer.
+ public const int BufferSize = 1024;
+
+ // Receive buffer.
+ public byte[] Buffer = new byte[BufferSize];
+
+ // Received data string.
+ public StringBuilder Sb = new StringBuilder();
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/UI/MainWindow.xaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/UI/MainWindow.xaml Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/UI/MainWindow.xaml.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/UI/MainWindow.xaml.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,13 @@
+namespace Server.UI
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/UI/MainWindowViewModel.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/UI/MainWindowViewModel.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,86 @@
+using System.Windows.Input;
+using Common;
+using Common.Logger;
+using GalaSoft.MvvmLight;
+using GalaSoft.MvvmLight.Command;
+using System.Windows;
+using Server.Interfaces;
+using Server.Sockets;
+
+namespace Server.UI
+{
+ public class MainWindowViewModel : ViewModelBase
+ {
+ #region Properties
+
+ #region OverrideSwitch
+
+ public const string OverrideSwitchPropertyName = "OverrideSwitch";
+ private bool? _overrideSwitch = false;
+ public bool? OverrideSwitch
+ {
+ get { return _overrideSwitch; }
+ set
+ {
+ if (_overrideSwitch == value) return;
+ var oldValue = _overrideSwitch;
+ _overrideSwitch = value;
+ RaisePropertyChanged(() => OverrideSwitch, oldValue, value, false);
+ }
+ }
+
+ #endregion
+
+ #endregion
+
+
+ #region DisplayText
+
+ public const string DisplayTextPropertyName = "DisplayText";
+ private string _displayText;
+ public string DisplayText
+ {
+ get { return _displayText; }
+ set
+ {
+ if (_displayText == value) return;
+ _displayText = value;
+ RaisePropertyChanged(() => DisplayText);
+ }
+ }
+
+ #endregion
+
+ public ICommand CloseCommand { get; set; }
+
+ public MessagingEndPoint SocketEndPoint { get; set; }
+ public MessagingEndPoint RabbitEndPoint { get; set; }
+ public MessagingEndPoint RabbitProtoEndPoint { get; set; }
+
+ #region Constructor
+
+ public MainWindowViewModel()
+ {
+ IListener listener = new AsyncSocketListener(Settings.SocketsPortNumber);
+ SocketEndPoint = new MessagingEndPoint(listener)
+ {
+ DisplayText = "Async Sockets",
+ ToolTip = "Listening over TCP/IP on localhost:" + Settings.SocketsPortNumber,
+ DisplayCount = 9,
+ DisplayLog = "test for display log"
+ };
+
+ DisplayText = "Does this work?!";
+
+ CloseCommand = new RelayCommand(CloseCommandExecute);
+ }
+
+ private void CloseCommandExecute()
+ {
+ Log.Write("Closing command executed");
+ Application.Current.Shutdown();
+ }
+
+ #endregion
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/UI/MessagingEndpoint.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Messaging/Server/UI/MessagingEndpoint.cs Wed Mar 21 15:39:53 2012 +0000
@@ -0,0 +1,128 @@
+using System.Windows.Input;
+using GalaSoft.MvvmLight;
+using GalaSoft.MvvmLight.Command;
+using Server.Interfaces;
+
+namespace Server.UI
+{
+ public class MessagingEndPoint : ObservableObject
+ {
+ #region Fields
+
+ private readonly IListener _listener;
+
+ #endregion
+
+ #region Constructor
+
+ public MessagingEndPoint(IListener listener)
+ {
+ _listener = listener;
+ SwitchCommand = new RelayCommand(SwitchCommandExecute);
+ }
+
+ #endregion
+
+ #region Properties
+
+ #region IsListening
+
+ public const string IsListeningPropertyName = "IsListening";
+ public bool IsListening
+ {
+ get { return _listener.IsListening; }
+ set
+ {
+ if (_listener.IsListening == value) return;
+ _listener.IsListening = value;
+ RaisePropertyChanged(() => IsListening);
+ }
+ }
+
+ #endregion
+
+ #region DisplayText
+
+ public const string DisplayTextPropertyName = "DisplayText";
+ private string _displayText;
+ public string DisplayText
+ {
+ get { return _displayText; }
+ set
+ {
+ if (_displayText == value) return;
+ _displayText = value;
+ RaisePropertyChanged(() => DisplayText);
+ }
+ }
+
+ #endregion
+
+ #region DisplayCount
+
+ public const string DisplayCountPropertyName = "DisplayCount";
+ private int _displayCount;
+ public int DisplayCount
+ {
+ get { return _displayCount; }
+ set
+ {
+ if (_displayCount == value) return;
+ _displayCount = value;
+ RaisePropertyChanged(() => DisplayCount);
+ }
+ }
+ #endregion
+
+ #region DisplayLog
+
+ public const string DisplayLogPropertyName = "DisplayLog";
+ private string _displayLog = string.Empty;
+ public string DisplayLog
+ {
+ get { return _displayLog; }
+ set
+ {
+ if (_displayLog == value) return;
+ _displayLog = value;
+ RaisePropertyChanged(() => DisplayLog);
+ }
+ }
+
+ #endregion
+
+ #region ToolTip
+
+ public const string ToolTipPropertyName = "ToolTip";
+ private string _toolTip = string.Empty;
+ public string ToolTip
+ {
+ get { return _toolTip; }
+ set
+ {
+ if (_toolTip == value) return;
+ _toolTip = value;
+ RaisePropertyChanged(() => ToolTip);
+ }
+ }
+
+ #endregion
+
+ #endregion
+
+ #region Commands
+
+ #region SwitchCommand
+
+ public ICommand SwitchCommand { get; set; }
+
+ private void SwitchCommandExecute()
+ {
+ IsListening = !_listener.IsListening;
+ }
+
+ #endregion
+
+ #endregion
+ }
+}
diff -r 81f9b72a44ce -r 045dac571339 Messaging/Server/UI/mail.ico
Binary file Messaging/Server/UI/mail.ico has changed