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
- OpCopier.cs
- Registry.cs
- ManualResetEventSlim.cs
- DefaultPropertyAttribute.cs
- ControlSerializer.cs
- SqlDataSourceFilteringEventArgs.cs
- RuntimeConfig.cs
- AsymmetricKeyExchangeDeformatter.cs
- uribuilder.cs
- OleDbRowUpdatingEvent.cs
- DivideByZeroException.cs
- Currency.cs
- DataGridViewLayoutData.cs
- DefaultPropertyAttribute.cs
- AddDataControlFieldDialog.cs
- SqlDataSourceConnectionPanel.cs
- HTTPAPI_VERSION.cs
- _LazyAsyncResult.cs
- EncoderReplacementFallback.cs
- ValidationManager.cs
- ResolvePPIDRequest.cs
- LateBoundBitmapDecoder.cs
- SqlConnectionFactory.cs
- SchemaObjectWriter.cs
- DateTimeOffsetStorage.cs
- DefaultObjectMappingItemCollection.cs
- IIS7UserPrincipal.cs
- BlobPersonalizationState.cs
- ToolStripPanel.cs
- TextEditorLists.cs
- ActivityTypeDesigner.xaml.cs
- QilGenerator.cs
- DataBindingCollectionEditor.cs
- DocumentSchemaValidator.cs
- TokenBasedSetEnumerator.cs
- Error.cs
- DescendantBaseQuery.cs
- EventLogEntry.cs
- SimpleRecyclingCache.cs
- HttpProfileBase.cs
- TableLayoutRowStyleCollection.cs
- ExceptionHandlerDesigner.cs
- ResourceSet.cs
- ComMethodElement.cs
- XsltQilFactory.cs
- CaseCqlBlock.cs
- IndicCharClassifier.cs
- OdbcConnectionPoolProviderInfo.cs
- ProcessProtocolHandler.cs
- WhiteSpaceTrimStringConverter.cs
- XmlILTrace.cs
- TdsRecordBufferSetter.cs
- MailSettingsSection.cs
- TypeLibConverter.cs
- WindowsTab.cs
- Funcletizer.cs
- AssemblyHelper.cs
- XmlSignificantWhitespace.cs
- FormViewDeleteEventArgs.cs
- ModuleConfigurationInfo.cs
- Oci.cs
- WebEventCodes.cs
- GreenMethods.cs
- BamlResourceSerializer.cs
- SubpageParaClient.cs
- FixedSOMElement.cs
- ProcessHostConfigUtils.cs
- DrawingContextWalker.cs
- WindowsProgressbar.cs
- TabletDevice.cs
- MouseActionConverter.cs
- XsltConvert.cs
- _ShellExpression.cs
- ExpressionParser.cs
- TraceUtils.cs
- DbMetaDataFactory.cs
- SoapHeaderException.cs
- SHA1Managed.cs
- SafeIUnknown.cs
- BaseParser.cs
- LZCodec.cs
- DataGridViewCellPaintingEventArgs.cs
- _ListenerAsyncResult.cs
- XmlLinkedNode.cs
- IItemContainerGenerator.cs
- WebBrowserProgressChangedEventHandler.cs
- Opcode.cs
- SerTrace.cs
- BulletChrome.cs
- SettingsSection.cs
- OptimalBreakSession.cs
- ObjectContext.cs
- ArrangedElement.cs
- NamedPermissionSet.cs
- ServiceContractAttribute.cs
- WorkflowMarkupSerializationProvider.cs
- GacUtil.cs
- CustomAttributeBuilder.cs
- StrokeNodeEnumerator.cs
- FtpCachePolicyElement.cs