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
- InputProcessorProfilesLoader.cs
- OdbcReferenceCollection.cs
- DeclaredTypeValidatorAttribute.cs
- LambdaExpression.cs
- HexParser.cs
- X509SecurityTokenProvider.cs
- AspCompat.cs
- GuidelineCollection.cs
- UnsafeNativeMethods.cs
- PopupEventArgs.cs
- XmlSchemaObject.cs
- XmlNodeReader.cs
- CodeAccessSecurityEngine.cs
- RegexInterpreter.cs
- CaseInsensitiveComparer.cs
- WebPartMenuStyle.cs
- StreamingContext.cs
- InternalConfigSettingsFactory.cs
- InvalidWMPVersionException.cs
- Column.cs
- TextChange.cs
- StatusBarDrawItemEvent.cs
- XamlParser.cs
- AssemblyAttributes.cs
- GeometryModel3D.cs
- PropertyDescriptorComparer.cs
- View.cs
- XpsDocument.cs
- DescendantOverDescendantQuery.cs
- DataServiceQueryException.cs
- PagePropertiesChangingEventArgs.cs
- OleDbConnectionFactory.cs
- DecimalAnimationBase.cs
- TreeIterators.cs
- CodeDirectionExpression.cs
- MultipartContentParser.cs
- XmlSerializerVersionAttribute.cs
- EdmValidator.cs
- DbExpressionVisitor_TResultType.cs
- ButtonFlatAdapter.cs
- DecoratedNameAttribute.cs
- Quaternion.cs
- CompiledRegexRunner.cs
- XmlSerializationWriter.cs
- EncoderParameter.cs
- DPCustomTypeDescriptor.cs
- LineGeometry.cs
- DetailsViewRowCollection.cs
- RuntimeVariableList.cs
- DataMemberAttribute.cs
- PeerResolverElement.cs
- MobileListItem.cs
- ValueExpressions.cs
- TableColumnCollectionInternal.cs
- AsyncCompletedEventArgs.cs
- RegexNode.cs
- DataColumnChangeEvent.cs
- Journal.cs
- HostDesigntimeLicenseContext.cs
- XmlSortKey.cs
- Native.cs
- DbParameterCollectionHelper.cs
- MarkupExtensionParser.cs
- CodeDomConfigurationHandler.cs
- DataListAutoFormat.cs
- Listen.cs
- VirtualPathData.cs
- CapabilitiesPattern.cs
- GCHandleCookieTable.cs
- BigInt.cs
- SingleAnimationBase.cs
- DataGridViewIntLinkedList.cs
- ToolStripGripRenderEventArgs.cs
- QueryStringParameter.cs
- ObjectListComponentEditor.cs
- TextTreeTextNode.cs
- UpdateException.cs
- PagedDataSource.cs
- FileChangesMonitor.cs
- XmlSortKeyAccumulator.cs
- DocumentXmlWriter.cs
- RijndaelCryptoServiceProvider.cs
- Stacktrace.cs
- HelpEvent.cs
- OptimizedTemplateContent.cs
- MetadataException.cs
- MailWebEventProvider.cs
- TimelineClockCollection.cs
- ObservableDictionary.cs
- PointCollectionValueSerializer.cs
- DataTableClearEvent.cs
- DeploymentSection.cs
- XmlWrappingWriter.cs
- WmlCalendarAdapter.cs
- CodeGeneratorAttribute.cs
- ConfigurationValidatorBase.cs
- ReflectionServiceProvider.cs
- TextEndOfSegment.cs
- BinaryObjectReader.cs
- InputDevice.cs