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
- ListViewTableRow.cs
- InputLangChangeRequestEvent.cs
- AssemblyGen.cs
- ListInitExpression.cs
- OracleSqlParser.cs
- UriExt.cs
- AutomationPatternInfo.cs
- OledbConnectionStringbuilder.cs
- HttpCookie.cs
- XPathDescendantIterator.cs
- VirtualPathUtility.cs
- PolicyException.cs
- TableItemPatternIdentifiers.cs
- Int16Animation.cs
- XmlWhitespace.cs
- CharUnicodeInfo.cs
- HttpHeaderCollection.cs
- DeviceSpecificDialogCachedState.cs
- TransformCryptoHandle.cs
- ISFTagAndGuidCache.cs
- CompositionDesigner.cs
- SafeNativeMethods.cs
- JsonReader.cs
- Evidence.cs
- EdmItemCollection.cs
- DocumentsTrace.cs
- Calendar.cs
- MeshGeometry3D.cs
- SqlConnectionManager.cs
- UniqueIdentifierService.cs
- DataControlFieldCell.cs
- XmlEntityReference.cs
- ServiceMemoryGates.cs
- CqlParserHelpers.cs
- ActivitySurrogate.cs
- NonVisualControlAttribute.cs
- sqlmetadatafactory.cs
- NaturalLanguageHyphenator.cs
- CheckBoxRenderer.cs
- DataGridViewCellValueEventArgs.cs
- ScrollBar.cs
- TextBoxRenderer.cs
- ACL.cs
- CommonGetThemePartSize.cs
- TextFormatterImp.cs
- CheckoutException.cs
- XomlCompilerParameters.cs
- ClientCultureInfo.cs
- SingleTagSectionHandler.cs
- ProgressBarAutomationPeer.cs
- RowTypePropertyElement.cs
- PerfService.cs
- CompositeDataBoundControl.cs
- CodeCompiler.cs
- MsmqInputSessionChannelListener.cs
- Marshal.cs
- _SslState.cs
- ObjectStateEntryDbDataRecord.cs
- DispatcherFrame.cs
- MediaElement.cs
- MaskInputRejectedEventArgs.cs
- MarkupWriter.cs
- UnionExpr.cs
- XmlElementAttributes.cs
- StaticDataManager.cs
- EntityProxyFactory.cs
- DurationConverter.cs
- PrivilegedConfigurationManager.cs
- ACL.cs
- Menu.cs
- CodeTypeDeclaration.cs
- Tuple.cs
- ArgIterator.cs
- ping.cs
- HttpListenerRequest.cs
- PartialCachingAttribute.cs
- XmlILOptimizerVisitor.cs
- Point3D.cs
- FloaterBaseParaClient.cs
- AsymmetricAlgorithm.cs
- HtmlUtf8RawTextWriter.cs
- Char.cs
- ToolboxComponentsCreatingEventArgs.cs
- ValidationPropertyAttribute.cs
- Misc.cs
- TailCallAnalyzer.cs
- KeyedHashAlgorithm.cs
- WebPartZone.cs
- IntegerValidator.cs
- WebPartActionVerb.cs
- InfoCardBaseException.cs
- UnmanagedMarshal.cs
- FieldBuilder.cs
- ListViewGroupConverter.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SocketInformation.cs
- CompleteWizardStep.cs
- PropVariant.cs
- TextBreakpoint.cs
- securitycriticaldata.cs