Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- PointAnimationClockResource.cs
- UIntPtr.cs
- CodeDirectiveCollection.cs
- CqlGenerator.cs
- EmptyCollection.cs
- SystemIPGlobalStatistics.cs
- PromptStyle.cs
- Matrix3D.cs
- SharedMemory.cs
- AttachmentService.cs
- UriScheme.cs
- ActiveXHost.cs
- TableLayoutPanel.cs
- CodeCastExpression.cs
- TransactionBridge.cs
- XmlCustomFormatter.cs
- ArraySegment.cs
- SectionUpdates.cs
- webproxy.cs
- FactoryMaker.cs
- StatusStrip.cs
- ContextQuery.cs
- Mapping.cs
- ChildTable.cs
- CopyOnWriteList.cs
- SafeRightsManagementHandle.cs
- XmlWellformedWriter.cs
- ComponentCodeDomSerializer.cs
- BaseTemplatedMobileComponentEditor.cs
- StreamReader.cs
- BamlLocalizableResourceKey.cs
- ToolStripContextMenu.cs
- PropertyManager.cs
- WebBrowserNavigatedEventHandler.cs
- WinEventTracker.cs
- CodeAttachEventStatement.cs
- SecurityKeyUsage.cs
- MarkerProperties.cs
- EnlistmentTraceIdentifier.cs
- _CookieModule.cs
- DatagridviewDisplayedBandsData.cs
- AssociationTypeEmitter.cs
- WeakHashtable.cs
- DataGridViewRowPrePaintEventArgs.cs
- SplineKeyFrames.cs
- ComponentCodeDomSerializer.cs
- FontStretches.cs
- SafeBitVector32.cs
- Tag.cs
- TraceRecord.cs
- PeerNameRecordCollection.cs
- AppModelKnownContentFactory.cs
- Atom10FormatterFactory.cs
- objectquery_tresulttype.cs
- SqlUserDefinedTypeAttribute.cs
- FormViewUpdateEventArgs.cs
- UnionCodeGroup.cs
- ModulesEntry.cs
- assertwrapper.cs
- OleDbParameter.cs
- SchemaImporterExtensionElementCollection.cs
- coordinatorscratchpad.cs
- StringDictionaryWithComparer.cs
- TraceListener.cs
- COM2ExtendedTypeConverter.cs
- PolyQuadraticBezierSegment.cs
- BuildResult.cs
- DataAdapter.cs
- SymLanguageVendor.cs
- GridItemPatternIdentifiers.cs
- AsyncResult.cs
- StylusDevice.cs
- Win32Exception.cs
- TouchEventArgs.cs
- HtmlInputButton.cs
- X509KeyIdentifierClauseType.cs
- WebBrowserHelper.cs
- StreamAsIStream.cs
- RedirectionProxy.cs
- DBConcurrencyException.cs
- ResourceReader.cs
- EntityCollection.cs
- Model3DGroup.cs
- NameValueConfigurationCollection.cs
- CustomAttribute.cs
- NavigationWindow.cs
- StructuredProperty.cs
- FunctionDefinition.cs
- RefreshEventArgs.cs
- Rfc2898DeriveBytes.cs
- RulePatternOps.cs
- DataPagerField.cs
- GeometryGroup.cs
- SplashScreenNativeMethods.cs
- NeutralResourcesLanguageAttribute.cs
- WebPartZoneBase.cs
- NegotiationTokenAuthenticator.cs
- ValueSerializer.cs
- WebHttpBinding.cs
- HttpStreamMessageEncoderFactory.cs