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
- XXXOnTypeBuilderInstantiation.cs
- CustomValidator.cs
- SimpleType.cs
- BitmapEffectGroup.cs
- EnvelopedPkcs7.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- RestHandlerFactory.cs
- CompensationTokenData.cs
- TypeDescriptionProviderAttribute.cs
- DependencyObjectPropertyDescriptor.cs
- FlowLayout.cs
- XmlConvert.cs
- CodeBinaryOperatorExpression.cs
- StrokeNodeOperations2.cs
- SiteMapNodeCollection.cs
- TableHeaderCell.cs
- SubpageParagraph.cs
- RealProxy.cs
- InheritanceAttribute.cs
- SqlXmlStorage.cs
- ApplicationContext.cs
- SiteMapPath.cs
- UnionCqlBlock.cs
- RuntimeConfig.cs
- WebConfigurationHostFileChange.cs
- FlowDocumentReader.cs
- FrameworkContentElement.cs
- DataGridComponentEditor.cs
- SessionEndingEventArgs.cs
- InputEventArgs.cs
- ReferenceService.cs
- TransformerInfo.cs
- ListControl.cs
- HttpFileCollection.cs
- EntryPointNotFoundException.cs
- IOThreadTimer.cs
- HyperLinkField.cs
- StylusButton.cs
- ValueHandle.cs
- MouseEvent.cs
- EraserBehavior.cs
- ColumnWidthChangedEvent.cs
- HttpClientProtocol.cs
- AtomEntry.cs
- IdnElement.cs
- DataGridViewUtilities.cs
- AsyncResult.cs
- TimeSpanMinutesConverter.cs
- ConnectionManagementSection.cs
- Html32TextWriter.cs
- PointLight.cs
- FixedSOMPage.cs
- TypeInitializationException.cs
- FlowSwitchDesigner.xaml.cs
- SystemResourceKey.cs
- TraceContextEventArgs.cs
- SettingsBindableAttribute.cs
- CodeMemberMethod.cs
- Span.cs
- ShapeTypeface.cs
- View.cs
- ToolStripDropDownClosedEventArgs.cs
- MetadataWorkspace.cs
- StronglyTypedResourceBuilder.cs
- DateTimeFormatInfo.cs
- AccessDataSourceView.cs
- FieldTemplateFactory.cs
- CodeDomSerializationProvider.cs
- SQLGuid.cs
- TextBoxRenderer.cs
- SrgsRulesCollection.cs
- LicenseManager.cs
- DependentList.cs
- FormViewDeleteEventArgs.cs
- DragEvent.cs
- MULTI_QI.cs
- RedBlackList.cs
- Keyboard.cs
- FileLevelControlBuilderAttribute.cs
- HttpPostedFileWrapper.cs
- DataGridViewRowPostPaintEventArgs.cs
- ListViewGroupItemCollection.cs
- SystemPens.cs
- UITypeEditor.cs
- OleAutBinder.cs
- ConfigurationStrings.cs
- TextSpanModifier.cs
- MetafileEditor.cs
- DocComment.cs
- StringExpressionSet.cs
- TextBoxAutoCompleteSourceConverter.cs
- Encoder.cs
- DataGridViewCellConverter.cs
- BrowserCapabilitiesFactory.cs
- FontDriver.cs
- GenericPrincipal.cs
- WindowClosedEventArgs.cs
- FormViewCommandEventArgs.cs
- SettingsAttributes.cs
- CodePropertyReferenceExpression.cs