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
- LoadedOrUnloadedOperation.cs
- WpfXamlMember.cs
- SubMenuStyle.cs
- validation.cs
- Odbc32.cs
- BinaryFormatter.cs
- WebPartConnectionsCancelEventArgs.cs
- FileChangeNotifier.cs
- MetabaseSettingsIis7.cs
- PolicyValidationException.cs
- GridViewCancelEditEventArgs.cs
- NullReferenceException.cs
- Int32EqualityComparer.cs
- CollectionViewProxy.cs
- CqlWriter.cs
- SessionEndingEventArgs.cs
- MDIWindowDialog.cs
- SecurityDocument.cs
- HtmlForm.cs
- TimeoutHelper.cs
- DESCryptoServiceProvider.cs
- CodeThrowExceptionStatement.cs
- ProgressBarAutomationPeer.cs
- IChannel.cs
- DataFormats.cs
- XmlSiteMapProvider.cs
- OutputCacheSettingsSection.cs
- Typography.cs
- XmlMtomReader.cs
- PeerContact.cs
- PasswordTextContainer.cs
- SecureEnvironment.cs
- TreeNodeConverter.cs
- Path.cs
- MinMaxParagraphWidth.cs
- UrlMappingsModule.cs
- CookielessHelper.cs
- ConditionedDesigner.cs
- XmlSchemaSimpleContentRestriction.cs
- VectorCollection.cs
- ResourceBinder.cs
- ViewGenerator.cs
- XPathDocumentIterator.cs
- ServiceReference.cs
- PropertyItem.cs
- AuthenticationSection.cs
- XslTransform.cs
- DeflateEmulationStream.cs
- WebPartEditorOkVerb.cs
- Model3D.cs
- WebHostScriptMappingsInstallComponent.cs
- SafeMarshalContext.cs
- ProvideValueServiceProvider.cs
- DataGridComboBoxColumn.cs
- EventLogPermissionEntry.cs
- StringAttributeCollection.cs
- SimpleFileLog.cs
- Graphics.cs
- Cursors.cs
- OdbcConnectionHandle.cs
- StickyNoteHelper.cs
- ResourcesGenerator.cs
- ObjectRef.cs
- XhtmlBasicPanelAdapter.cs
- SimpleBitVector32.cs
- ContractReference.cs
- TemplateEditingVerb.cs
- MemoryPressure.cs
- KnownTypes.cs
- ArrayList.cs
- entityreference_tresulttype.cs
- ProvideValueServiceProvider.cs
- AutomationProperty.cs
- ValueQuery.cs
- FullTextBreakpoint.cs
- WebBrowserBase.cs
- RelationshipEndMember.cs
- HostingMessageProperty.cs
- DetailsViewInsertEventArgs.cs
- ServerIdentity.cs
- IChannel.cs
- PersistChildrenAttribute.cs
- BamlLocalizableResource.cs
- Tool.cs
- SqlEnums.cs
- EntityTransaction.cs
- SecureConversationSecurityTokenParameters.cs
- ComboBoxDesigner.cs
- DataGridViewCellEventArgs.cs
- OdbcStatementHandle.cs
- ComplexPropertyEntry.cs
- OutputWindow.cs
- TextEditor.cs
- IndexedString.cs
- IntSumAggregationOperator.cs
- Literal.cs
- FileSystemEventArgs.cs
- GridViewCommandEventArgs.cs
- WindowsListViewItemStartMenu.cs
- InternalMappingException.cs