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
- SystemUnicastIPAddressInformation.cs
- Dictionary.cs
- ControlIdConverter.cs
- PixelShader.cs
- AttributeConverter.cs
- DbDataSourceEnumerator.cs
- ObjectConverter.cs
- ReferentialConstraint.cs
- FindCriteriaElement.cs
- Pool.cs
- Pair.cs
- StylusPointPropertyInfo.cs
- GridLength.cs
- EditorZone.cs
- DBSchemaTable.cs
- Object.cs
- NamespaceExpr.cs
- Misc.cs
- DynamicDataExtensions.cs
- SchemaImporterExtension.cs
- ContentElement.cs
- QueryOutputWriter.cs
- RC2CryptoServiceProvider.cs
- UserControlAutomationPeer.cs
- CubicEase.cs
- SynchronizedKeyedCollection.cs
- ReturnValue.cs
- HTMLTextWriter.cs
- SafeProcessHandle.cs
- objectresult_tresulttype.cs
- TableChangeProcessor.cs
- ExpressionBindingCollection.cs
- WarningException.cs
- String.cs
- Literal.cs
- PagedDataSource.cs
- SystemUdpStatistics.cs
- ResourceKey.cs
- Convert.cs
- SQLSingleStorage.cs
- ValidatedControlConverter.cs
- File.cs
- IdentityReference.cs
- EntityModelSchemaGenerator.cs
- WsdlBuildProvider.cs
- DataExpression.cs
- NumberSubstitution.cs
- StylusLogic.cs
- InternalCache.cs
- ServiceDescriptions.cs
- CompoundFileStreamReference.cs
- PolyQuadraticBezierSegment.cs
- RecognizedAudio.cs
- DeviceContext2.cs
- DataChangedEventManager.cs
- Version.cs
- HasCopySemanticsAttribute.cs
- NetworkStream.cs
- PolygonHotSpot.cs
- GridSplitter.cs
- RunInstallerAttribute.cs
- SqlBooleanMismatchVisitor.cs
- ServiceEndpoint.cs
- ParsedRoute.cs
- MessageQueuePermissionEntry.cs
- BaseParagraph.cs
- ObjectItemAssemblyLoader.cs
- QilStrConcatenator.cs
- Splitter.cs
- LockCookie.cs
- TextTreeTextNode.cs
- TraceListener.cs
- ImageBrush.cs
- DBNull.cs
- Speller.cs
- BitmapEffectGroup.cs
- ResourceDescriptionAttribute.cs
- ResourcePart.cs
- SmuggledIUnknown.cs
- RegionData.cs
- AnnotationHelper.cs
- LazyTextWriterCreator.cs
- SafeHandle.cs
- ExpandableObjectConverter.cs
- CheckableControlBaseAdapter.cs
- XPathPatternBuilder.cs
- CodeStatementCollection.cs
- DataGridViewAdvancedBorderStyle.cs
- AsymmetricSignatureFormatter.cs
- DynamicDiscoveryDocument.cs
- HtmlShim.cs
- HTTPNotFoundHandler.cs
- XmlSchemaImporter.cs
- HMAC.cs
- SoapIncludeAttribute.cs
- MeasureItemEvent.cs
- EmptyEnumerable.cs
- Stream.cs
- PermissionRequestEvidence.cs
- WinFormsSecurity.cs