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
- ProcessProtocolHandler.cs
- AssemblyContextControlItem.cs
- WindowsButton.cs
- HttpRuntimeSection.cs
- TypeConverterMarkupExtension.cs
- WindowsBrush.cs
- ObjectViewEntityCollectionData.cs
- DependencyObjectValidator.cs
- TimeManager.cs
- TraversalRequest.cs
- CodeArgumentReferenceExpression.cs
- SqlXml.cs
- XmlFormatWriterGenerator.cs
- ClientApiGenerator.cs
- ICspAsymmetricAlgorithm.cs
- SamlConstants.cs
- Preprocessor.cs
- TrustManager.cs
- DetailsViewInsertEventArgs.cs
- ElementHost.cs
- OutKeywords.cs
- HttpRawResponse.cs
- ClonableStack.cs
- IisHelper.cs
- ConfigurationManagerInternal.cs
- ISO2022Encoding.cs
- PhoneCallDesigner.cs
- Image.cs
- ApplicationServiceManager.cs
- ConstraintEnumerator.cs
- ManualResetEvent.cs
- ArrayWithOffset.cs
- XsltFunctions.cs
- CompositeFontInfo.cs
- ListControlConvertEventArgs.cs
- GAC.cs
- hresults.cs
- ToolStripProgressBar.cs
- DBParameter.cs
- InvokeMethodActivity.cs
- XmlUtil.cs
- SubMenuStyleCollection.cs
- sqlnorm.cs
- DelegateArgumentValue.cs
- DropShadowBitmapEffect.cs
- Enlistment.cs
- safemediahandle.cs
- ObfuscateAssemblyAttribute.cs
- ParseNumbers.cs
- EntityCodeGenerator.cs
- ToolStripPanelDesigner.cs
- GroupBox.cs
- GridViewUpdatedEventArgs.cs
- GeometryValueSerializer.cs
- ListMarkerSourceInfo.cs
- ListItemConverter.cs
- OleDbStruct.cs
- FontClient.cs
- TextEditorTyping.cs
- TriggerActionCollection.cs
- TextLine.cs
- CodeVariableReferenceExpression.cs
- DefaultMemberAttribute.cs
- DataGridItemCollection.cs
- StringStorage.cs
- TypeElement.cs
- Rules.cs
- PingReply.cs
- FlowDocumentPaginator.cs
- GeometryModel3D.cs
- BaseInfoTable.cs
- ToolTip.cs
- RegistryExceptionHelper.cs
- CodeNamespace.cs
- HtmlFormWrapper.cs
- ResourcePart.cs
- Menu.cs
- XmlCharacterData.cs
- TextRangeBase.cs
- EllipticalNodeOperations.cs
- WebPartDisplayModeCancelEventArgs.cs
- DetailsViewUpdatedEventArgs.cs
- CounterCreationData.cs
- SqlOuterApplyReducer.cs
- Transform.cs
- OpenFileDialog.cs
- CorrelationService.cs
- TableMethodGenerator.cs
- StateInitializationDesigner.cs
- SingleAnimation.cs
- BuildProvider.cs
- FacetValues.cs
- BufferedStream.cs
- RootDesignerSerializerAttribute.cs
- DataGridPagerStyle.cs
- JsonDeserializer.cs
- XmlLoader.cs
- OleDbRowUpdatedEvent.cs
- FileDialogCustomPlace.cs
- CustomCategoryAttribute.cs