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
- ClientTargetSection.cs
- MonthCalendar.cs
- MsmqTransportElement.cs
- HighlightVisual.cs
- ProcessManager.cs
- Shape.cs
- ToolStripRenderEventArgs.cs
- AmbientLight.cs
- CodePageEncoding.cs
- CollectionDataContractAttribute.cs
- CollectionBase.cs
- WebBrowserNavigatingEventHandler.cs
- IssuerInformation.cs
- ISAPIApplicationHost.cs
- SatelliteContractVersionAttribute.cs
- XmlRawWriterWrapper.cs
- SmiContextFactory.cs
- AdapterUtil.cs
- SetStoryboardSpeedRatio.cs
- ControlDesigner.cs
- SoapProtocolImporter.cs
- SmtpSection.cs
- LayoutSettings.cs
- PackageRelationshipCollection.cs
- XPathNodeHelper.cs
- Util.cs
- CultureTableRecord.cs
- ISFClipboardData.cs
- MarshalByRefObject.cs
- TextElementCollectionHelper.cs
- LookupNode.cs
- Splitter.cs
- ToolStripMenuItem.cs
- SafeReadContext.cs
- WindowsImpersonationContext.cs
- _TransmitFileOverlappedAsyncResult.cs
- ListBindingHelper.cs
- HostingPreferredMapPath.cs
- ColorAnimationUsingKeyFrames.cs
- FixedTextBuilder.cs
- SimpleLine.cs
- HyperLinkField.cs
- COMException.cs
- StateInitializationDesigner.cs
- Wizard.cs
- UInt64Converter.cs
- SortDescriptionCollection.cs
- Tag.cs
- RectValueSerializer.cs
- PlanCompiler.cs
- OlePropertyStructs.cs
- DataGridPagerStyle.cs
- PointF.cs
- SqlInternalConnection.cs
- XsdDuration.cs
- WinEventWrap.cs
- InternalEnumValidator.cs
- DataTrigger.cs
- DataSourceListEditor.cs
- securitycriticaldataClass.cs
- ViewStateException.cs
- PathData.cs
- SafeArrayTypeMismatchException.cs
- ArglessEventHandlerProxy.cs
- HTMLTextWriter.cs
- ParserHooks.cs
- PropertyTabChangedEvent.cs
- ResourceExpressionEditor.cs
- InvokeWebServiceDesigner.cs
- PropertyManager.cs
- FixedSOMFixedBlock.cs
- KeyedCollection.cs
- ColumnHeaderConverter.cs
- DrawListViewSubItemEventArgs.cs
- OletxTransactionManager.cs
- PointHitTestParameters.cs
- PenContexts.cs
- TextTreeText.cs
- ColumnHeaderConverter.cs
- Point4D.cs
- HostingEnvironment.cs
- ScrollBarAutomationPeer.cs
- StylusPointProperties.cs
- SqlHelper.cs
- LightweightEntityWrapper.cs
- TemplateBindingExtension.cs
- ExceptionNotification.cs
- TableRowCollection.cs
- parserscommon.cs
- DeploymentSectionCache.cs
- SystemIPInterfaceStatistics.cs
- ExtentKey.cs
- ToolStripComboBox.cs
- ToolStripItemEventArgs.cs
- handlecollector.cs
- UIElement.cs
- updateconfighost.cs
- TypePresenter.xaml.cs
- OracleTimeSpan.cs
- UTF7Encoding.cs