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
- AddValidationError.cs
- FormViewModeEventArgs.cs
- ArrayWithOffset.cs
- RadioButtonBaseAdapter.cs
- Camera.cs
- LinkedResource.cs
- ControlsConfig.cs
- TypeUtil.cs
- CompilerScope.Storage.cs
- Error.cs
- DataGridItem.cs
- StreamingContext.cs
- TrackPoint.cs
- RegexBoyerMoore.cs
- TextParagraph.cs
- Pen.cs
- SerializableAttribute.cs
- SQLMoneyStorage.cs
- ListBindingConverter.cs
- ContentFilePart.cs
- SiteMapDataSource.cs
- PerformanceCounterLib.cs
- RangeValidator.cs
- Transform.cs
- SourceElementsCollection.cs
- FileSystemEventArgs.cs
- CompositeDataBoundControl.cs
- HttpRuntimeSection.cs
- PenThread.cs
- ApplicationDirectoryMembershipCondition.cs
- ArglessEventHandlerProxy.cs
- OdbcStatementHandle.cs
- XmlSchemaObject.cs
- DataBinding.cs
- ValidationSummary.cs
- RootBrowserWindow.cs
- WebPartTransformerCollection.cs
- GridLengthConverter.cs
- ErrorHandlingReceiver.cs
- TextFragmentEngine.cs
- ConstraintCollection.cs
- JapaneseCalendar.cs
- GC.cs
- TextEditorCopyPaste.cs
- NameValuePair.cs
- Walker.cs
- odbcmetadatafactory.cs
- InfiniteTimeSpanConverter.cs
- EventSourceCreationData.cs
- ProxyFragment.cs
- EventEntry.cs
- safex509handles.cs
- CombinedHttpChannel.cs
- AutomationPatternInfo.cs
- SafeCancelMibChangeNotify.cs
- Quaternion.cs
- HttpCacheVaryByContentEncodings.cs
- LicenseProviderAttribute.cs
- ColorAnimationUsingKeyFrames.cs
- Brushes.cs
- XsltCompileContext.cs
- WindowsListView.cs
- TreeIterator.cs
- TcpTransportManager.cs
- EventLogPermissionEntryCollection.cs
- TreeNode.cs
- HttpWebResponse.cs
- PenContext.cs
- ViewValidator.cs
- HtmlDocument.cs
- EnlistmentTraceIdentifier.cs
- QueryExtender.cs
- base64Transforms.cs
- ModifierKeysConverter.cs
- DataTable.cs
- Subtree.cs
- SByte.cs
- XmlStreamStore.cs
- UInt64Storage.cs
- PopupRootAutomationPeer.cs
- SpanIndex.cs
- MarkupCompiler.cs
- AssemblyHash.cs
- COM2IPerPropertyBrowsingHandler.cs
- Transform3DCollection.cs
- ObjectViewFactory.cs
- StrongNameHelpers.cs
- RowUpdatedEventArgs.cs
- Ticks.cs
- ReturnEventArgs.cs
- Messages.cs
- BigInt.cs
- MatrixValueSerializer.cs
- DynamicMetaObject.cs
- Track.cs
- SoapSchemaImporter.cs
- MonthCalendar.cs
- KerberosSecurityTokenProvider.cs
- SemanticKeyElement.cs
- ClientScriptManager.cs