Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- HostedImpersonationContext.cs
- CallbackTimeoutsBehavior.cs
- LocalValueEnumerator.cs
- ComplexObject.cs
- SQLCharsStorage.cs
- DispatcherOperation.cs
- ResXResourceWriter.cs
- RemotingConfigParser.cs
- LocalizableAttribute.cs
- SmtpReplyReaderFactory.cs
- grammarelement.cs
- SQLBytes.cs
- dataprotectionpermission.cs
- TreeNodeCollection.cs
- XmlArrayItemAttributes.cs
- BuildResultCache.cs
- AssemblyBuilder.cs
- Script.cs
- TextSelectionProcessor.cs
- NonVisualControlAttribute.cs
- AddInActivator.cs
- Blend.cs
- IPEndPoint.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- XPathNavigatorReader.cs
- Stacktrace.cs
- XamlGridLengthSerializer.cs
- IList.cs
- ConsoleTraceListener.cs
- Ref.cs
- SqlBuffer.cs
- RenderingEventArgs.cs
- UserControlAutomationPeer.cs
- LockRecoveryTask.cs
- FontEmbeddingManager.cs
- TextEffectCollection.cs
- PackageDigitalSignature.cs
- TemplateApplicationHelper.cs
- CatchBlock.cs
- ValidationHelper.cs
- XmlHierarchicalDataSourceView.cs
- DrawingImage.cs
- ObjectParameterCollection.cs
- UserControlParser.cs
- CalendarDay.cs
- MenuItemBinding.cs
- CompiledQuery.cs
- CollectionViewGroupInternal.cs
- FacetDescriptionElement.cs
- TransactionContextValidator.cs
- GetPageNumberCompletedEventArgs.cs
- WebPartVerbsEventArgs.cs
- MouseActionConverter.cs
- ISCIIEncoding.cs
- _DigestClient.cs
- XPathNodeList.cs
- TextEffect.cs
- OletxCommittableTransaction.cs
- ContentElement.cs
- NotImplementedException.cs
- DataGridViewImageColumn.cs
- SignedXml.cs
- WebBaseEventKeyComparer.cs
- SelectionRange.cs
- DiscreteKeyFrames.cs
- SystemUnicastIPAddressInformation.cs
- ListSortDescription.cs
- ComponentResourceKeyConverter.cs
- XmlRawWriterWrapper.cs
- RuleElement.cs
- Type.cs
- ellipse.cs
- EmptyWorkItem.cs
- ParserExtension.cs
- FormViewUpdatedEventArgs.cs
- SettingsAttributes.cs
- ProfileModule.cs
- PermissionListSet.cs
- FormClosedEvent.cs
- GiveFeedbackEventArgs.cs
- TraceContext.cs
- CompilationSection.cs
- TrackingStringDictionary.cs
- NotifyInputEventArgs.cs
- ToolStripPanel.cs
- DefaultValidator.cs
- PolicyUnit.cs
- IApplicationTrustManager.cs
- SqlDataSourceQueryEditor.cs
- HybridObjectCache.cs
- ProfileManager.cs
- LogLogRecord.cs
- MsmqPoisonMessageException.cs
- ThreadInterruptedException.cs
- JsonEncodingStreamWrapper.cs
- log.cs
- GridSplitterAutomationPeer.cs
- ImageSourceConverter.cs
- xdrvalidator.cs
- Animatable.cs