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
- IpcChannel.cs
- Internal.cs
- InputManager.cs
- SecurityManager.cs
- PublishLicense.cs
- CollectionViewProxy.cs
- COM2Enum.cs
- SettingsBase.cs
- WorkflowViewService.cs
- UseLicense.cs
- ObjectStorage.cs
- Configuration.cs
- HelloMessageCD1.cs
- ObjectStateEntryDbDataRecord.cs
- DockPanel.cs
- SEHException.cs
- SafeProcessHandle.cs
- CryptographicAttribute.cs
- OptimizedTemplateContent.cs
- DataGridViewColumn.cs
- Wizard.cs
- GridViewColumnCollectionChangedEventArgs.cs
- WindowsSysHeader.cs
- RtfToken.cs
- ByteStreamGeometryContext.cs
- ConnectionManagementSection.cs
- AuthenticateEventArgs.cs
- RegexGroupCollection.cs
- AspCompat.cs
- ContainerUtilities.cs
- StoreUtilities.cs
- RegexMatchCollection.cs
- MexServiceChannelBuilder.cs
- EdmError.cs
- COAUTHIDENTITY.cs
- BinaryExpressionHelper.cs
- IResourceProvider.cs
- ThicknessConverter.cs
- HitTestWithGeometryDrawingContextWalker.cs
- FixedMaxHeap.cs
- ProfilePropertySettingsCollection.cs
- FtpCachePolicyElement.cs
- NGCPageContentCollectionSerializerAsync.cs
- XmlSchemaCompilationSettings.cs
- RegionInfo.cs
- IgnoreFlushAndCloseStream.cs
- TextParagraph.cs
- StringStorage.cs
- DiscoveryReferences.cs
- WhitespaceRule.cs
- TypeElement.cs
- PointConverter.cs
- SHA512.cs
- WebPartCatalogAddVerb.cs
- XmlNodeList.cs
- FixedBufferAttribute.cs
- ExtendedProperty.cs
- Unit.cs
- WmlListAdapter.cs
- XmlNodeChangedEventArgs.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- NavigationFailedEventArgs.cs
- SqlFacetAttribute.cs
- KnownTypesProvider.cs
- TransformPatternIdentifiers.cs
- wmiprovider.cs
- Internal.cs
- PageStatePersister.cs
- DateTimeFormatInfo.cs
- EntryIndex.cs
- RawUIStateInputReport.cs
- SamlConstants.cs
- StyleCollectionEditor.cs
- PropertyOverridesTypeEditor.cs
- DocumentOrderComparer.cs
- ViewBox.cs
- IdentityHolder.cs
- AsyncDataRequest.cs
- ToolStripSettings.cs
- ChannelManagerBase.cs
- TableRowCollection.cs
- UnmanagedHandle.cs
- TextEditorSpelling.cs
- MediaSystem.cs
- RequestContextBase.cs
- GridViewCommandEventArgs.cs
- SQLRoleProvider.cs
- DataRowChangeEvent.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Menu.cs
- PartialList.cs
- ProviderCollection.cs
- BatchParser.cs
- DataGridViewCellParsingEventArgs.cs
- FileDialog_Vista.cs
- HijriCalendar.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- followingsibling.cs
- TCPClient.cs
- CompoundFileIOPermission.cs