Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Input / Command / MouseBinding.cs / 1 / MouseBinding.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: The MouseBinding class is used by the developer to create Mouse Input Bindings
//
// See spec at : http://avalon/coreui/Specs/Commanding(new).mht
//
//* MouseBinding class serves the purpose of Input Bindings for Mouse Device.
//
// History:
// 06/01/2003 : chandras - Created
// 05/01/2004 : chandras- changed to new design.
//---------------------------------------------------------------------------
using System;
using System.Windows.Input;
using System.Windows;
using System.Windows.Markup;
using System.ComponentModel;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Input
{
///
/// MouseBinding - Implements InputBinding (generic InputGesture-Command map)
/// MouseBinding acts like a map for MouseGesture and Commands.
/// Most of the logic is in InputBinding and MouseGesture, this only
/// facilitates user to specify MouseAction directly without going in
/// MouseGesture path. Also it provides the MouseGestureTypeConverter
/// on the Gesture property to have MouseGesture, like "RightClick"
/// defined in Markup as Gesture="RightClick" working.
///
public class MouseBinding : InputBinding
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// constructor
///
public MouseBinding() : base()
{
}
///
/// Constructor
///
/// Command Associated
/// Mouse Action
internal MouseBinding(ICommand command, MouseAction mouseAction) : this(command, new MouseGesture(mouseAction))
{
}
///
/// Constructor
///
/// Command Associated
/// Mmouse Gesture associated
public MouseBinding(ICommand command, MouseGesture gesture) : base(command, gesture)
{
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// MouseGesture
///
[TypeConverter(typeof(MouseGestureConverter))]
[ValueSerializer(typeof(MouseGestureValueSerializer))]
public override InputGesture Gesture
{
get
{
return base.Gesture as MouseGesture;
}
set
{
if (value is MouseGesture)
{
base.Gesture = value;
}
else
{
throw new ArgumentException(SR.Get(SRID.InputBinding_ExpectedInputGesture, typeof(MouseGesture)));
}
}
}
#endregion Public Methods
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// MouseAction
///
public MouseAction MouseAction
{
get
{
lock (_dataLock)
{
if (null != Gesture)
{
return ((MouseGesture)Gesture).MouseAction;
}
return MouseAction.None;
}
}
set
{
lock (_dataLock)
{
if (null == Gesture)
{
Gesture = new MouseGesture((MouseAction)value);
}
else
{
((MouseGesture)Gesture).MouseAction = (MouseAction)value;
}
}
}
}
#endregion Public Methods
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: The MouseBinding class is used by the developer to create Mouse Input Bindings
//
// See spec at : http://avalon/coreui/Specs/Commanding(new).mht
//
//* MouseBinding class serves the purpose of Input Bindings for Mouse Device.
//
// History:
// 06/01/2003 : chandras - Created
// 05/01/2004 : chandras- changed to new design.
//---------------------------------------------------------------------------
using System;
using System.Windows.Input;
using System.Windows;
using System.Windows.Markup;
using System.ComponentModel;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Input
{
///
/// MouseBinding - Implements InputBinding (generic InputGesture-Command map)
/// MouseBinding acts like a map for MouseGesture and Commands.
/// Most of the logic is in InputBinding and MouseGesture, this only
/// facilitates user to specify MouseAction directly without going in
/// MouseGesture path. Also it provides the MouseGestureTypeConverter
/// on the Gesture property to have MouseGesture, like "RightClick"
/// defined in Markup as Gesture="RightClick" working.
///
public class MouseBinding : InputBinding
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// constructor
///
public MouseBinding() : base()
{
}
///
/// Constructor
///
/// Command Associated
/// Mouse Action
internal MouseBinding(ICommand command, MouseAction mouseAction) : this(command, new MouseGesture(mouseAction))
{
}
///
/// Constructor
///
/// Command Associated
/// Mmouse Gesture associated
public MouseBinding(ICommand command, MouseGesture gesture) : base(command, gesture)
{
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// MouseGesture
///
[TypeConverter(typeof(MouseGestureConverter))]
[ValueSerializer(typeof(MouseGestureValueSerializer))]
public override InputGesture Gesture
{
get
{
return base.Gesture as MouseGesture;
}
set
{
if (value is MouseGesture)
{
base.Gesture = value;
}
else
{
throw new ArgumentException(SR.Get(SRID.InputBinding_ExpectedInputGesture, typeof(MouseGesture)));
}
}
}
#endregion Public Methods
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// MouseAction
///
public MouseAction MouseAction
{
get
{
lock (_dataLock)
{
if (null != Gesture)
{
return ((MouseGesture)Gesture).MouseAction;
}
return MouseAction.None;
}
}
set
{
lock (_dataLock)
{
if (null == Gesture)
{
Gesture = new MouseGesture((MouseAction)value);
}
else
{
((MouseGesture)Gesture).MouseAction = (MouseAction)value;
}
}
}
}
#endregion Public Methods
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlIlTypeHelper.cs
- WindowAutomationPeer.cs
- DataGridViewRowEventArgs.cs
- EntityDataSourceDesigner.cs
- DataBindingCollectionEditor.cs
- AutomationFocusChangedEventArgs.cs
- ExpressionParser.cs
- TextRunTypographyProperties.cs
- HtmlTable.cs
- DocumentReferenceCollection.cs
- OdbcStatementHandle.cs
- UniqueIdentifierService.cs
- Identity.cs
- XmlKeywords.cs
- PassportPrincipal.cs
- PointAnimationUsingPath.cs
- CodeArrayCreateExpression.cs
- Package.cs
- recordstatefactory.cs
- DataSpaceManager.cs
- StringAttributeCollection.cs
- ItemChangedEventArgs.cs
- TreeViewImageGenerator.cs
- RectAnimation.cs
- ConnectionStringSettings.cs
- FixedDSBuilder.cs
- BitmapEffectDrawingContextWalker.cs
- ScrollViewer.cs
- Attributes.cs
- OpenCollectionAsyncResult.cs
- TransformDescriptor.cs
- ProxyAttribute.cs
- HtmlCalendarAdapter.cs
- KnownBoxes.cs
- LabelLiteral.cs
- TcpConnectionPoolSettings.cs
- NamedPipeAppDomainProtocolHandler.cs
- AppDomainAttributes.cs
- TextRunCacheImp.cs
- ProcessModule.cs
- InternalSafeNativeMethods.cs
- XmlSchemaCollection.cs
- DesignerTransactionCloseEvent.cs
- ConfigurationSectionGroupCollection.cs
- TextEndOfParagraph.cs
- FloaterParaClient.cs
- CustomValidator.cs
- httpserverutility.cs
- ActiveDesignSurfaceEvent.cs
- SafeFileMapViewHandle.cs
- ComNativeDescriptor.cs
- ParserHooks.cs
- Bitmap.cs
- EdmComplexPropertyAttribute.cs
- ProcessManager.cs
- ChildDocumentBlock.cs
- PrintDocument.cs
- TypeHelper.cs
- EntitySqlQueryCacheKey.cs
- TextEffectResolver.cs
- _NTAuthentication.cs
- SqlError.cs
- DoubleAnimation.cs
- Calendar.cs
- PeerNodeAddress.cs
- HttpFileCollectionBase.cs
- StylusButtonCollection.cs
- DataGridViewControlCollection.cs
- DebugViewWriter.cs
- HtmlShimManager.cs
- ReachFixedPageSerializerAsync.cs
- Msmq4SubqueuePoisonHandler.cs
- TemplatedWizardStep.cs
- MinimizableAttributeTypeConverter.cs
- ValueExpressions.cs
- TextFormatterImp.cs
- TextLineBreak.cs
- TextProviderWrapper.cs
- SafeBuffer.cs
- TraceEventCache.cs
- FatalException.cs
- AgileSafeNativeMemoryHandle.cs
- ConstraintEnumerator.cs
- SessionPageStateSection.cs
- RowBinding.cs
- RegexTree.cs
- ProfileEventArgs.cs
- ValueUnavailableException.cs
- SharedStatics.cs
- StringKeyFrameCollection.cs
- PrintPreviewGraphics.cs
- WebConfigurationHost.cs
- HtmlToClrEventProxy.cs
- TrustManager.cs
- AudioException.cs
- FontNamesConverter.cs
- StringAnimationBase.cs
- StringDictionaryWithComparer.cs
- XamlWriter.cs
- SubMenuStyleCollection.cs