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
- BitmapCacheBrush.cs
- DoubleLinkListEnumerator.cs
- SatelliteContractVersionAttribute.cs
- KeyTimeConverter.cs
- Stack.cs
- ListenerElementsCollection.cs
- CapabilitiesSection.cs
- OutputCacheModule.cs
- IndicFontClient.cs
- PassportAuthentication.cs
- complextypematerializer.cs
- CorrelationQueryBehavior.cs
- GeneratedContractType.cs
- QilPatternVisitor.cs
- SamlAuthorityBinding.cs
- mansign.cs
- UnsafeNativeMethods.cs
- ButtonBase.cs
- Transform3D.cs
- GroupItem.cs
- SQLDoubleStorage.cs
- Internal.cs
- FtpRequestCacheValidator.cs
- CachedFontFace.cs
- WaitForChangedResult.cs
- InternalBase.cs
- complextypematerializer.cs
- BrowserCapabilitiesFactory35.cs
- SynchronousChannel.cs
- SecurityTokenContainer.cs
- SchemaTypeEmitter.cs
- GridViewEditEventArgs.cs
- CellParaClient.cs
- HtmlImage.cs
- ResourceCategoryAttribute.cs
- nulltextnavigator.cs
- URLAttribute.cs
- FixUp.cs
- MimeWriter.cs
- MemberAccessException.cs
- ConfigurationLocation.cs
- CodeCommentStatementCollection.cs
- IncrementalCompileAnalyzer.cs
- IIS7UserPrincipal.cs
- ValidationEventArgs.cs
- ListViewInsertedEventArgs.cs
- LayoutTable.cs
- MembershipSection.cs
- sqlnorm.cs
- NodeFunctions.cs
- WebPermission.cs
- DocobjHost.cs
- ByteStreamGeometryContext.cs
- TraversalRequest.cs
- ToolStripDropDown.cs
- SingleTagSectionHandler.cs
- webbrowsersite.cs
- MatchingStyle.cs
- IDictionary.cs
- Compilation.cs
- XPathBinder.cs
- RootCodeDomSerializer.cs
- GB18030Encoding.cs
- ReachFixedDocumentSerializer.cs
- PriorityRange.cs
- ContentElement.cs
- ToolStripControlHost.cs
- MemberHolder.cs
- WebPartMovingEventArgs.cs
- EventSinkHelperWriter.cs
- TimeZone.cs
- ListBindingConverter.cs
- DisplayClaim.cs
- MimeMultiPart.cs
- DataControlFieldTypeEditor.cs
- Message.cs
- ChtmlTextWriter.cs
- CustomActivityDesigner.cs
- UIElementCollection.cs
- ListViewHitTestInfo.cs
- EdmRelationshipRoleAttribute.cs
- GlyphTypeface.cs
- DocumentSequence.cs
- OrderedEnumerableRowCollection.cs
- AbandonedMutexException.cs
- VectorAnimation.cs
- FragmentQueryKB.cs
- X509InitiatorCertificateClientElement.cs
- TextRange.cs
- BehaviorDragDropEventArgs.cs
- DataColumnMappingCollection.cs
- DependentList.cs
- ServiceHttpHandlerFactory.cs
- PanningMessageFilter.cs
- TypefaceCollection.cs
- MissingFieldException.cs
- CryptoHandle.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- HelpKeywordAttribute.cs
- ServiceObjectContainer.cs