|
using System;
using System.Collections.Generic;
using System.Text;
namespace SilverlightCairngorm.Control
{
/// <summary>
/// Used to dispatch system events, by raising an event that the
/// controller class subscribes to every time any system event is
/// raised.
/// Client code has no need to use this class. (internal class)
/// </summary>
internal class CairngormEventDispatcher
{
private static readonly CairngormEventDispatcher _instance = new CairngormEventDispatcher();
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static CairngormEventDispatcher()
{
}
/// <summary>
/// private constructor
/// </summary>
private CairngormEventDispatcher()
{
}
/// <summary>
/// Returns the single instance of the dispatcher
/// </summary>
/// <returns>single instance of the dispatcher</returns>
public static CairngormEventDispatcher Instance { get { return _instance; } }
/// <summary>
/// The subscriber to a system event must accept as argument
/// the CairngormEvent raised (within a CairngormEventArgs\
/// object)
/// </summary>
/// <param name="sender">Unused</param>
/// <param name="args">a CairngormEventArgs object, containing the raised event object</param>
public delegate void EventDispatchDelegate(object sender, CairngormEventArgs args);
/// <summary>
/// The single event raised whenever a Cairngorm system event occurs
/// </summary>
public event EventDispatchDelegate EventDispatched = delegate { };
/// <summary>
/// dispatchEvent raises a normal .net event, containing the
/// instance of the CairngormEvent raised - to be handled by
/// the Controller Class
/// </summary>
/// <param name="cairngormEvent">the raised Cairngorm Event</param>
public void dispatchEvent(CairngormEvent cairngormEvent)
{
CairngormEventArgs args = new CairngormEventArgs(cairngormEvent);
EventDispatched(null, args);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.