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
- _DomainName.cs
- MimeObjectFactory.cs
- Utility.cs
- BuildManager.cs
- SqlInternalConnection.cs
- EventListener.cs
- XmlStreamNodeWriter.cs
- TimeSpanMinutesConverter.cs
- Soap12ServerProtocol.cs
- InProcStateClientManager.cs
- PermissionListSet.cs
- EventMappingSettings.cs
- SerTrace.cs
- IDQuery.cs
- WebPartManager.cs
- ChannelSinkStacks.cs
- WebConfigurationManager.cs
- FullTrustAssembliesSection.cs
- JsonWriter.cs
- GridViewDeletedEventArgs.cs
- AuthenticationService.cs
- PerformanceCounter.cs
- HttpListenerContext.cs
- XamlGridLengthSerializer.cs
- ServiceSecurityAuditBehavior.cs
- TypeSemantics.cs
- ImageSource.cs
- InfoCardService.cs
- NativeMethods.cs
- InstanceContextMode.cs
- InstalledVoice.cs
- RequestTimeoutManager.cs
- ToolZone.cs
- DeclarativeCatalogPart.cs
- Metadata.cs
- RequestCache.cs
- TableLayoutSettings.cs
- DataFormats.cs
- HWStack.cs
- RadioButtonRenderer.cs
- rsa.cs
- MachineKeySection.cs
- GridViewRow.cs
- XmlSchemaSimpleTypeList.cs
- OpenCollectionAsyncResult.cs
- Menu.cs
- SecurityAccessDeniedException.cs
- DWriteFactory.cs
- DocumentViewerConstants.cs
- LogEntryHeaderv1Deserializer.cs
- XmlChoiceIdentifierAttribute.cs
- MembershipSection.cs
- EntityDataSourceContainerNameItem.cs
- TextRenderingModeValidation.cs
- IntPtr.cs
- CompilationUnit.cs
- ProcessStartInfo.cs
- InvokePattern.cs
- TableLayoutPanelCodeDomSerializer.cs
- CatchBlock.cs
- TextProviderWrapper.cs
- DuplicateDetector.cs
- OutputChannelBinder.cs
- ViewKeyConstraint.cs
- SizeChangedInfo.cs
- BamlLocalizationDictionary.cs
- RuntimeConfigLKG.cs
- SoapFault.cs
- HwndSubclass.cs
- AxisAngleRotation3D.cs
- _FtpDataStream.cs
- WindowAutomationPeer.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- InternalDispatchObject.cs
- CharKeyFrameCollection.cs
- XmlDocumentFragment.cs
- ToolBar.cs
- PersonalizationStateQuery.cs
- PointLightBase.cs
- Duration.cs
- HtmlTernaryTree.cs
- dtdvalidator.cs
- DispatcherExceptionFilterEventArgs.cs
- XmlLangPropertyAttribute.cs
- OdbcReferenceCollection.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- PackageRelationshipSelector.cs
- AtlasWeb.Designer.cs
- NativeCompoundFileAPIs.cs
- ColorKeyFrameCollection.cs
- OleTxTransaction.cs
- SqlDataSourceConfigureSelectPanel.cs
- WmlListAdapter.cs
- QueryOutputWriter.cs
- TextSpan.cs
- GeometryDrawing.cs
- XPathNodeInfoAtom.cs
- RenderOptions.cs
- DesignerVerb.cs
- SparseMemoryStream.cs