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
- OutputCacheModule.cs
- SecurityDescriptor.cs
- x509utils.cs
- PersonalizableTypeEntry.cs
- AttributeProviderAttribute.cs
- Assert.cs
- ReliabilityContractAttribute.cs
- AspNetHostingPermission.cs
- PrefixQName.cs
- HGlobalSafeHandle.cs
- EmbeddedMailObjectsCollection.cs
- SqlUtil.cs
- FontSizeConverter.cs
- SiteMapHierarchicalDataSourceView.cs
- SqlConnectionPoolProviderInfo.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- CodeTypeReference.cs
- SimpleExpression.cs
- ModelPerspective.cs
- DragSelectionMessageFilter.cs
- CharConverter.cs
- CompositeCollectionView.cs
- DrawingImage.cs
- FixedBufferAttribute.cs
- DrawingContextDrawingContextWalker.cs
- BulletedListDesigner.cs
- Quad.cs
- WebReferenceOptions.cs
- TreeViewHitTestInfo.cs
- EndPoint.cs
- ConfigurationStrings.cs
- LinkTarget.cs
- SystemThemeKey.cs
- HtmlTableCell.cs
- TreeViewDesigner.cs
- Underline.cs
- TraceContextEventArgs.cs
- HelpProvider.cs
- BodyGlyph.cs
- SafeNativeMethods.cs
- XmlAttributeAttribute.cs
- AnnotationDocumentPaginator.cs
- SoapInteropTypes.cs
- CounterSetInstance.cs
- DesignerDataRelationship.cs
- TreeView.cs
- ClockGroup.cs
- BaseAddressElementCollection.cs
- FastPropertyAccessor.cs
- VoiceChangeEventArgs.cs
- DetailsView.cs
- SqlNamer.cs
- PaintValueEventArgs.cs
- DataGridViewCellMouseEventArgs.cs
- PropVariant.cs
- NativeMethods.cs
- WrappingXamlSchemaContext.cs
- SymLanguageType.cs
- CfgParser.cs
- DesignerObjectListAdapter.cs
- PenContext.cs
- FormViewDeleteEventArgs.cs
- TextBoxBase.cs
- Mappings.cs
- PeerDefaultCustomResolverClient.cs
- PageCatalogPartDesigner.cs
- SequenceNumber.cs
- CompilationRelaxations.cs
- ToolStripActionList.cs
- Accessors.cs
- CallContext.cs
- NetCodeGroup.cs
- DebugView.cs
- XamlDesignerSerializationManager.cs
- XmlQueryContext.cs
- QueryCacheKey.cs
- _NtlmClient.cs
- AsymmetricKeyExchangeDeformatter.cs
- DataObjectSettingDataEventArgs.cs
- DataGridViewIntLinkedList.cs
- StoreItemCollection.Loader.cs
- MemberCollection.cs
- TextTreeInsertElementUndoUnit.cs
- GridEntryCollection.cs
- ColumnClickEvent.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- TreeNodeSelectionProcessor.cs
- SqlNotificationEventArgs.cs
- ContractType.cs
- AttributeEmitter.cs
- FunctionUpdateCommand.cs
- WindowsNonControl.cs
- ServicePointManagerElement.cs
- WebBrowserUriTypeConverter.cs
- ComboBoxAutomationPeer.cs
- XamlTreeBuilder.cs
- Maps.cs
- SqlWriter.cs
- Comparer.cs
- ZoneButton.cs