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
- CmsInterop.cs
- BitmapPalettes.cs
- BlurBitmapEffect.cs
- TypeHelpers.cs
- PrePostDescendentsWalker.cs
- UnitySerializationHolder.cs
- TextTreeDeleteContentUndoUnit.cs
- RefreshResponseInfo.cs
- Merger.cs
- Vector3DConverter.cs
- Double.cs
- CompiledQueryCacheEntry.cs
- DataGridViewTopLeftHeaderCell.cs
- MessageQueueCriteria.cs
- StateDesigner.CommentLayoutGlyph.cs
- LinqDataSourceContextEventArgs.cs
- FormatException.cs
- NotImplementedException.cs
- XmlILModule.cs
- SoapEnumAttribute.cs
- GridViewDeleteEventArgs.cs
- ClonableStack.cs
- VirtualizingPanel.cs
- OdbcRowUpdatingEvent.cs
- IListConverters.cs
- StreamWriter.cs
- ComponentCollection.cs
- WebPartZoneBase.cs
- IPGlobalProperties.cs
- DataGridViewControlCollection.cs
- CheckBoxAutomationPeer.cs
- Base64Encoder.cs
- AnimationStorage.cs
- NCryptNative.cs
- ConnectionPoolManager.cs
- SqlInternalConnectionSmi.cs
- HuffmanTree.cs
- StringWriter.cs
- Converter.cs
- SafeLibraryHandle.cs
- cache.cs
- CriticalFinalizerObject.cs
- ISessionStateStore.cs
- AnimationClockResource.cs
- SessionEndingCancelEventArgs.cs
- AuthenticationModuleElement.cs
- ClaimComparer.cs
- AccessDataSource.cs
- Typeface.cs
- WindowCollection.cs
- TextContainerChangedEventArgs.cs
- UnmanagedMemoryAccessor.cs
- RightNameExpirationInfoPair.cs
- MbpInfo.cs
- ISSmlParser.cs
- ProgressChangedEventArgs.cs
- Expression.cs
- ToolboxComponentsCreatedEventArgs.cs
- WmlLiteralTextAdapter.cs
- AssociationEndMember.cs
- SRef.cs
- LinearKeyFrames.cs
- StickyNoteContentControl.cs
- AmbientLight.cs
- EventLogPermission.cs
- SafeNativeMethods.cs
- HtmlElementCollection.cs
- ContentOperations.cs
- CellPartitioner.cs
- SymbolPair.cs
- ServicePoint.cs
- WindowsAuthenticationEventArgs.cs
- DataBindingValueUIHandler.cs
- QueryAsyncResult.cs
- StringBuilder.cs
- FeatureManager.cs
- WebContext.cs
- XhtmlMobileTextWriter.cs
- ServiceHostingEnvironment.cs
- FunctionImportMapping.cs
- InputScope.cs
- SelectionRange.cs
- IIS7UserPrincipal.cs
- UserInitiatedNavigationPermission.cs
- FirewallWrapper.cs
- TreeViewImageKeyConverter.cs
- DataSetMappper.cs
- SystemThemeKey.cs
- SqlProviderManifest.cs
- NonDualMessageSecurityOverHttpElement.cs
- ParallelLoopState.cs
- TextServicesContext.cs
- codemethodreferenceexpression.cs
- XmlNamespaceMapping.cs
- DesignerTextViewAdapter.cs
- XPathExpr.cs
- EnvelopeVersion.cs
- _RequestCacheProtocol.cs
- SoapTypeAttribute.cs
- OrderedDictionary.cs