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
- EntityContainer.cs
- DeviceSpecific.cs
- MethodAccessException.cs
- DataGridViewAutoSizeModeEventArgs.cs
- PieceDirectory.cs
- FrameworkElementAutomationPeer.cs
- XamlPoint3DCollectionSerializer.cs
- Pen.cs
- DataGridViewTextBoxCell.cs
- ClientApiGenerator.cs
- Translator.cs
- EntitySqlQueryBuilder.cs
- SqlDataSourceParameterParser.cs
- DataGridTextBox.cs
- ToolStripItemGlyph.cs
- TextRange.cs
- Run.cs
- GatewayIPAddressInformationCollection.cs
- SafeNativeHandle.cs
- SslStream.cs
- LogSwitch.cs
- TableStyle.cs
- SequentialWorkflowHeaderFooter.cs
- ResolveMatchesCD1.cs
- AddInControllerImpl.cs
- XPathParser.cs
- AttributeCollection.cs
- Parser.cs
- InfiniteIntConverter.cs
- TrackingProfileCache.cs
- ProcessInputEventArgs.cs
- EncodingConverter.cs
- PropertyState.cs
- CustomAttributeBuilder.cs
- WebConfigurationFileMap.cs
- HttpRequest.cs
- EventPropertyMap.cs
- CultureMapper.cs
- IdentitySection.cs
- DecimalConstantAttribute.cs
- SpeechSeg.cs
- Property.cs
- SqlNode.cs
- CrossSiteScriptingValidation.cs
- TcpPortSharing.cs
- StatusBarPanel.cs
- DataPagerFieldCommandEventArgs.cs
- ObjectContext.cs
- X509ClientCertificateAuthenticationElement.cs
- LinkedDataMemberFieldEditor.cs
- ResolveNameEventArgs.cs
- MulticastNotSupportedException.cs
- WebPartChrome.cs
- ShaderEffect.cs
- BatchParser.cs
- EntityDesignerBuildProvider.cs
- ResourceManager.cs
- TextStore.cs
- ObservableDictionary.cs
- ScrollBarRenderer.cs
- SqlDelegatedTransaction.cs
- TemplateAction.cs
- ObjectQueryState.cs
- RedistVersionInfo.cs
- JsonReaderDelegator.cs
- PersonalizationStateInfo.cs
- PolyLineSegment.cs
- ValueTypeFixupInfo.cs
- FigureHelper.cs
- sqlinternaltransaction.cs
- NegotiationTokenAuthenticator.cs
- ClientSponsor.cs
- MethodAccessException.cs
- StringHelper.cs
- _AuthenticationState.cs
- OraclePermissionAttribute.cs
- ContainerUtilities.cs
- XmlSchemaInfo.cs
- DocumentGridContextMenu.cs
- TraceSection.cs
- EnumValidator.cs
- CompoundFileReference.cs
- Adorner.cs
- DefaultTextStore.cs
- EntityDataSourceChangingEventArgs.cs
- DesignColumnCollection.cs
- ServiceThrottlingElement.cs
- TextSelectionHighlightLayer.cs
- DataShape.cs
- XmlSchemaFacet.cs
- _CookieModule.cs
- PeerCollaborationPermission.cs
- ModifierKeysValueSerializer.cs
- FilterQuery.cs
- Italic.cs
- UnsafePeerToPeerMethods.cs
- FontInfo.cs
- GenericPrincipal.cs
- PropertyTabAttribute.cs
- OdbcEnvironmentHandle.cs