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
- PropertyGroupDescription.cs
- DrawingBrush.cs
- ExpressionParser.cs
- MsmqAppDomainProtocolHandler.cs
- CodeTypeDeclaration.cs
- StdRegProviderWrapper.cs
- ListDictionaryInternal.cs
- QilChoice.cs
- Color.cs
- _SslSessionsCache.cs
- ArrangedElement.cs
- XsdCachingReader.cs
- ExpressionConverter.cs
- DataGridViewColumnEventArgs.cs
- TextEditorSelection.cs
- NamespaceEmitter.cs
- X509ChainElement.cs
- FlowLayoutSettings.cs
- StagingAreaInputItem.cs
- XmlUtil.cs
- TrustLevelCollection.cs
- Utility.cs
- GregorianCalendar.cs
- ImageFormat.cs
- CodeActivity.cs
- AddInServer.cs
- TextFormatterHost.cs
- HwndSourceParameters.cs
- CloseSequence.cs
- BamlLocalizableResource.cs
- ConnectivityStatus.cs
- HtmlToClrEventProxy.cs
- TerminatorSinks.cs
- CompressStream.cs
- ControlEvent.cs
- ModuleBuilderData.cs
- PropertyMap.cs
- PrePrepareMethodAttribute.cs
- Win32SafeHandles.cs
- ImageMapEventArgs.cs
- TempFiles.cs
- BinaryFormatter.cs
- TypeDescriptionProvider.cs
- DataGridRow.cs
- DataGridViewComboBoxEditingControl.cs
- BookmarkEventArgs.cs
- EmbeddedMailObject.cs
- TableLayoutRowStyleCollection.cs
- DockingAttribute.cs
- EntityDataSourceValidationException.cs
- ColumnResizeUndoUnit.cs
- BamlVersionHeader.cs
- UniformGrid.cs
- MethodCallTranslator.cs
- ToolStripButton.cs
- WebSysDescriptionAttribute.cs
- PenCursorManager.cs
- StringFreezingAttribute.cs
- HttpHandlerActionCollection.cs
- PageAsyncTask.cs
- GridViewRowPresenterBase.cs
- LockCookie.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- GenericTypeParameterBuilder.cs
- AjaxFrameworkAssemblyAttribute.cs
- SubMenuStyle.cs
- DiffuseMaterial.cs
- ProcessModule.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- GetMemberBinder.cs
- ConnectionStringsExpressionBuilder.cs
- PolyLineSegment.cs
- DetailsViewCommandEventArgs.cs
- SqlDataSourceDesigner.cs
- initElementDictionary.cs
- RegexCapture.cs
- OdbcConnectionStringbuilder.cs
- OperationAbortedException.cs
- ExternalFile.cs
- TraceUtils.cs
- ThrowHelper.cs
- Pen.cs
- ApplicationFileParser.cs
- TreeView.cs
- FlagsAttribute.cs
- _NativeSSPI.cs
- UIElementIsland.cs
- BitmapSizeOptions.cs
- ListBoxItemAutomationPeer.cs
- SpeakInfo.cs
- Pen.cs
- DataSourceCache.cs
- DataSourceCollectionBase.cs
- HostedHttpContext.cs
- WebServiceClientProxyGenerator.cs
- ConfigurationSectionCollection.cs
- X509Certificate.cs
- TablePatternIdentifiers.cs
- ClientSession.cs
- TextEditorContextMenu.cs