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
- RequestCacheManager.cs
- TextTreeText.cs
- SoapMessage.cs
- CheckedListBox.cs
- KeyInstance.cs
- SkipQueryOptionExpression.cs
- IpcServerChannel.cs
- ImageBrush.cs
- UIElement.cs
- EdmFunctions.cs
- TextBoxDesigner.cs
- ToggleButton.cs
- HashHelper.cs
- SemanticAnalyzer.cs
- TrustManager.cs
- CompensatableTransactionScopeActivity.cs
- diagnosticsswitches.cs
- ReaderWriterLockWrapper.cs
- ClickablePoint.cs
- TextDecorationCollectionConverter.cs
- XamlStream.cs
- ProcessHost.cs
- BigInt.cs
- CommandHelper.cs
- ComponentEditorPage.cs
- ServiceElementCollection.cs
- SqlConnectionPoolProviderInfo.cs
- DataServiceRequestException.cs
- PlatformNotSupportedException.cs
- PersonalizationStateInfo.cs
- FlowDocumentScrollViewer.cs
- SuppressIldasmAttribute.cs
- _NetworkingPerfCounters.cs
- Transaction.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- SqlDataAdapter.cs
- DataGridPagingPage.cs
- XmlSchemaImporter.cs
- XmlSchemaObjectTable.cs
- FrameworkContentElementAutomationPeer.cs
- X509Certificate2.cs
- TableRowCollection.cs
- SolidColorBrush.cs
- SqlServices.cs
- URL.cs
- SubordinateTransaction.cs
- DetailsViewDeletedEventArgs.cs
- Material.cs
- WmlFormAdapter.cs
- FilteredAttributeCollection.cs
- SamlAdvice.cs
- DocumentsTrace.cs
- RunClient.cs
- FontStretches.cs
- SettingsPropertyValueCollection.cs
- OracleBinary.cs
- SAPIEngineTypes.cs
- Rules.cs
- StringConverter.cs
- SHA256Cng.cs
- SHA256Managed.cs
- PauseStoryboard.cs
- _UriTypeConverter.cs
- DataChangedEventManager.cs
- RawStylusInputReport.cs
- validationstate.cs
- Debug.cs
- SiteOfOriginContainer.cs
- SeekStoryboard.cs
- XmlQueryRuntime.cs
- MemberJoinTreeNode.cs
- RestHandlerFactory.cs
- FigureHelper.cs
- DataGridColumnCollectionEditor.cs
- _DigestClient.cs
- DateTimeUtil.cs
- FormattedTextSymbols.cs
- SystemColors.cs
- FieldAccessException.cs
- HtmlTernaryTree.cs
- AutomationProperty.cs
- TreeIterator.cs
- XmlFormatWriterGenerator.cs
- CoreChannel.cs
- BufferedResponseStream.cs
- UserPreferenceChangingEventArgs.cs
- PassportAuthentication.cs
- PaperSource.cs
- DataError.cs
- CaseInsensitiveHashCodeProvider.cs
- PropertyReferenceSerializer.cs
- CombinedGeometry.cs
- QueryReaderSettings.cs
- SequentialWorkflowHeaderFooter.cs
- MonitoringDescriptionAttribute.cs
- WebPartChrome.cs
- DataMemberAttribute.cs
- PagesSection.cs
- ColorPalette.cs
- Send.cs