Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripItemGlyph.cs / 2 / ToolStripItemGlyph.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms.Design { using System.Design; using Accessibility; using System.Runtime.Serialization.Formatters; using System.Threading; using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System; using System.Security; using System.Security.Permissions; using System.Collections; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; using System.Windows.Forms; using System.Drawing; using System.Drawing.Design; using Microsoft.Win32; using System.Windows.Forms.Design.Behavior; using System.Reflection; ////// The glyph we put over the items. Basically this sets the hit-testable area of the item itself. /// internal class ToolStripItemGlyph : ControlBodyGlyph{ private ToolStripItem _item; private Rectangle _bounds; private ToolStripItemDesigner _itemDesigner; public ToolStripItemGlyph(ToolStripItem item, ToolStripItemDesigner itemDesigner, Rectangle bounds, System.Windows.Forms.Design.Behavior.Behavior b) : base(bounds, Cursors.Default, item, b) { _item = item; _bounds = bounds; _itemDesigner = itemDesigner; } public ToolStripItem Item { get { return _item; } } public override Rectangle Bounds { get { return _bounds; } } public ToolStripItemDesigner ItemDesigner { get { return _itemDesigner; } } ////// /// Abstract method that forces Glyph implementations to provide /// hit test logic. Given any point - if the Glyph has decided to /// be involved with that location, the Glyph will need to return /// a valid Cursor. Otherwise, returning null will cause the /// the BehaviorService to simply ignore it. /// public override Cursor GetHitTest(Point p) { if (_item.Visible && _bounds.Contains(p)) { return Cursors.Default; } return null; } ////// /// Control host dont draw on Invalidation... /// public override void Paint(PaintEventArgs pe) { if (_item is ToolStripControlHost && _item.IsOnDropDown ) { if( _item is System.Windows.Forms.ToolStripComboBox && VisualStyles.VisualStyleRenderer.IsSupported) { // When processing WM_PAINT and the OS has a theme enabled, the native ComboBox sends a WM_PAINT // message to its parent when a theme is enabled in the OS forcing a repaint in the AdornerWindow // generating an infinite WM_PAINT message processing loop. We guard against this here. See DDB#99105. return; } _item.Invalidate(); } } } } // 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
- XmlRawWriter.cs
- StrokeNode.cs
- SoapTypeAttribute.cs
- ToolStripDropDownItem.cs
- TextServicesPropertyRanges.cs
- OdbcConnection.cs
- ColorAnimation.cs
- ToggleProviderWrapper.cs
- VectorAnimation.cs
- EnumMember.cs
- BitmapEffectCollection.cs
- odbcmetadatacollectionnames.cs
- DispatchWrapper.cs
- OutputCacheModule.cs
- ResolvedKeyFrameEntry.cs
- TextSpan.cs
- HorizontalAlignConverter.cs
- MessageSecurityOverTcpElement.cs
- TextDecorations.cs
- UriScheme.cs
- SqlDataSourceSummaryPanel.cs
- NonClientArea.cs
- WebControlAdapter.cs
- KeyFrames.cs
- RTLAwareMessageBox.cs
- DesignerMetadata.cs
- TimeStampChecker.cs
- VisualTreeUtils.cs
- RTLAwareMessageBox.cs
- MD5CryptoServiceProvider.cs
- CancellationState.cs
- LineServicesRun.cs
- PeerContact.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- SmiGettersStream.cs
- ReceiveParametersContent.cs
- Task.cs
- ZoneIdentityPermission.cs
- BooleanFacetDescriptionElement.cs
- UrlMapping.cs
- Pool.cs
- WebServiceResponseDesigner.cs
- MappingSource.cs
- SafeThreadHandle.cs
- ReadOnlyCollectionBuilder.cs
- MinMaxParagraphWidth.cs
- BooleanAnimationUsingKeyFrames.cs
- CatalogZone.cs
- TextServicesCompartmentEventSink.cs
- BaseTemplateCodeDomTreeGenerator.cs
- CryptoApi.cs
- ManagedWndProcTracker.cs
- MulticastNotSupportedException.cs
- HeaderedItemsControl.cs
- If.cs
- unsafenativemethodsother.cs
- StringArrayEditor.cs
- Selection.cs
- OSFeature.cs
- mil_commands.cs
- AssemblyName.cs
- CookieParameter.cs
- WebPartHelpVerb.cs
- CharEnumerator.cs
- DataGridState.cs
- ProcessHostMapPath.cs
- HeaderCollection.cs
- DriveNotFoundException.cs
- TextEmbeddedObject.cs
- HashAlgorithm.cs
- IntSecurity.cs
- PropertyDescriptors.cs
- Line.cs
- ToolStripButton.cs
- DependencyPropertyConverter.cs
- ExpandCollapsePattern.cs
- DataListGeneralPage.cs
- FixedSOMLineRanges.cs
- RewritingPass.cs
- UidManager.cs
- DictionaryBase.cs
- NavigationPropertyEmitter.cs
- BindingsCollection.cs
- PrimitiveRenderer.cs
- TransformerInfo.cs
- CodeGenerator.cs
- _AutoWebProxyScriptHelper.cs
- SelectionPattern.cs
- EntityWithChangeTrackerStrategy.cs
- PrintingPermission.cs
- SocketElement.cs
- ConnectionManagementElement.cs
- PersonalizationEntry.cs
- IntegerFacetDescriptionElement.cs
- DispatchProxy.cs
- InstanceNotReadyException.cs
- EnumConverter.cs
- ListViewItem.cs
- shaperfactoryquerycachekey.cs
- ComponentEditorPage.cs