Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- Attributes.cs
- ScrollableControlDesigner.cs
- TableCell.cs
- RangeValuePatternIdentifiers.cs
- EdmFunctionAttribute.cs
- CodeRegionDirective.cs
- MenuScrollingVisibilityConverter.cs
- Cursor.cs
- RowToParametersTransformer.cs
- _NegoState.cs
- GetPageCompletedEventArgs.cs
- XmlSerializerFactory.cs
- BehaviorEditorPart.cs
- WebPartCloseVerb.cs
- ToolStripSeparator.cs
- HtmlCalendarAdapter.cs
- AnonymousIdentificationSection.cs
- CodeDomConfigurationHandler.cs
- RegexCapture.cs
- Int64KeyFrameCollection.cs
- TitleStyle.cs
- _ShellExpression.cs
- MarkupWriter.cs
- ConfigurationStrings.cs
- SiteMapDesignerDataSourceView.cs
- SqlPersonalizationProvider.cs
- VersionUtil.cs
- FontCollection.cs
- TableSectionStyle.cs
- WebFormsRootDesigner.cs
- Thread.cs
- AdministrationHelpers.cs
- OrderedDictionary.cs
- OleDbCommand.cs
- ClientConvert.cs
- DrawListViewColumnHeaderEventArgs.cs
- RenderingBiasValidation.cs
- WindowsBrush.cs
- _ScatterGatherBuffers.cs
- Constants.cs
- BamlMapTable.cs
- SystemInfo.cs
- TrackingStringDictionary.cs
- XmlRootAttribute.cs
- EdmFunction.cs
- FixedSOMTable.cs
- DataGridViewCellMouseEventArgs.cs
- ToolStripDropDownButton.cs
- RadioButton.cs
- TextPenaltyModule.cs
- AtomicFile.cs
- StorageEntityTypeMapping.cs
- EnumerableWrapperWeakToStrong.cs
- IxmlLineInfo.cs
- SimpleModelProvider.cs
- SingleObjectCollection.cs
- HttpListenerElement.cs
- XPathEmptyIterator.cs
- CornerRadiusConverter.cs
- WpfWebRequestHelper.cs
- XmlNamedNodeMap.cs
- ConvertEvent.cs
- AlternateViewCollection.cs
- MailSettingsSection.cs
- TimeStampChecker.cs
- DateTimeUtil.cs
- MethodCallTranslator.cs
- SortedSetDebugView.cs
- FontFamilyConverter.cs
- CryptoHandle.cs
- XmlChoiceIdentifierAttribute.cs
- XPathEmptyIterator.cs
- ContentElementAutomationPeer.cs
- ViewCellSlot.cs
- DocumentSequence.cs
- WebPartCollection.cs
- CssStyleCollection.cs
- PrinterUnitConvert.cs
- LogPolicy.cs
- WebResponse.cs
- WebConfigurationHost.cs
- HttpCacheVary.cs
- SamlAuthorityBinding.cs
- AsnEncodedData.cs
- BindingOperations.cs
- DefaultMemberAttribute.cs
- RangeValuePatternIdentifiers.cs
- ParallelActivityDesigner.cs
- NativeMethods.cs
- PersonalizationProviderHelper.cs
- ComponentResourceKey.cs
- StringCollection.cs
- HttpModuleAction.cs
- CodeArgumentReferenceExpression.cs
- XmlElementCollection.cs
- OdbcFactory.cs
- HtmlTableCell.cs
- ApplicationProxyInternal.cs
- SafeSerializationManager.cs
- CodeTypeReferenceSerializer.cs