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
- ListBoxItemAutomationPeer.cs
- OleDbConnectionFactory.cs
- HttpCapabilitiesSectionHandler.cs
- ADMembershipProvider.cs
- OdbcParameter.cs
- DictionaryBase.cs
- EasingKeyFrames.cs
- InternalDispatchObject.cs
- XmlQualifiedName.cs
- WebPartDisplayMode.cs
- DataRowCollection.cs
- PriorityRange.cs
- ReferentialConstraint.cs
- TypeForwardedToAttribute.cs
- BufferedReadStream.cs
- infer.cs
- TreeViewDesigner.cs
- Pen.cs
- ConnectionManagementElement.cs
- Stopwatch.cs
- DataSvcMapFileSerializer.cs
- EmptyQuery.cs
- Soap.cs
- FileVersionInfo.cs
- SafeHGlobalHandleCritical.cs
- CollectionView.cs
- Root.cs
- ContainerParagraph.cs
- RadialGradientBrush.cs
- SocketInformation.cs
- DataException.cs
- cookiecontainer.cs
- IProvider.cs
- ProcessInputEventArgs.cs
- Certificate.cs
- Pkcs7Recipient.cs
- WebPartConnectionsCancelVerb.cs
- GridView.cs
- GraphicsContext.cs
- MenuItemBinding.cs
- ModelUIElement3D.cs
- PeerApplicationLaunchInfo.cs
- SingleAnimationBase.cs
- SchemaManager.cs
- AuthorizationPolicyTypeElementCollection.cs
- Attribute.cs
- DelegatingMessage.cs
- Stack.cs
- DesignerActionHeaderItem.cs
- EditingCommands.cs
- ToolStripSystemRenderer.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- FileChangesMonitor.cs
- RowUpdatedEventArgs.cs
- DefaultSerializationProviderAttribute.cs
- TableParaClient.cs
- ItemCollectionEditor.cs
- UpdatePanelControlTrigger.cs
- LockedBorderGlyph.cs
- OptionalMessageQuery.cs
- HandlerBase.cs
- ConnectAlgorithms.cs
- ClientSideQueueItem.cs
- UnmanagedHandle.cs
- SurrogateSelector.cs
- DockProviderWrapper.cs
- NestedContainer.cs
- XmlEncodedRawTextWriter.cs
- DataGridTable.cs
- HashCodeCombiner.cs
- Types.cs
- OptimalBreakSession.cs
- RelationshipConverter.cs
- AssociationType.cs
- RenderingBiasValidation.cs
- ConnectionManagementElementCollection.cs
- ProxyHwnd.cs
- X509Utils.cs
- SqlStatistics.cs
- VariableQuery.cs
- Typeface.cs
- Attribute.cs
- SqlTriggerContext.cs
- MailAddress.cs
- VirtualPathProvider.cs
- ConsumerConnectionPoint.cs
- XsdCachingReader.cs
- ObjectStateFormatter.cs
- PropertyEmitterBase.cs
- TableHeaderCell.cs
- SettingsSavedEventArgs.cs
- DefaultMemberAttribute.cs
- ManifestSignatureInformation.cs
- CalendarModeChangedEventArgs.cs
- ExceptionUtil.cs
- DynamicDocumentPaginator.cs
- DivideByZeroException.cs
- SecurityPolicySection.cs
- ExchangeUtilities.cs
- AbandonedMutexException.cs