Code:
/ DotNET / DotNET / 8.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
- MultiPageTextView.cs
- GridViewColumnHeaderAutomationPeer.cs
- RelationshipEnd.cs
- JsonUriDataContract.cs
- FaultReasonText.cs
- _LocalDataStoreMgr.cs
- AttributeSetAction.cs
- CacheAxisQuery.cs
- ColumnTypeConverter.cs
- CriticalFinalizerObject.cs
- Animatable.cs
- EventLog.cs
- DataGridViewCellCancelEventArgs.cs
- HtmlElementCollection.cs
- XmlSchemaAny.cs
- PropertyTabAttribute.cs
- MouseGestureValueSerializer.cs
- IsolatedStorageException.cs
- Exceptions.cs
- IncomingWebResponseContext.cs
- XmlSchema.cs
- AttributeSetAction.cs
- LogicalExpr.cs
- Tile.cs
- Animatable.cs
- TraversalRequest.cs
- MailWriter.cs
- IISMapPath.cs
- MessageQueueAccessControlEntry.cs
- _ConnectStream.cs
- HitTestResult.cs
- WindowsListView.cs
- Memoizer.cs
- XmlDocumentFragment.cs
- BinaryObjectReader.cs
- NamedPermissionSet.cs
- Translator.cs
- GenericTextProperties.cs
- ListBoxItemWrapperAutomationPeer.cs
- BlockCollection.cs
- ParagraphResult.cs
- AtlasWeb.Designer.cs
- PathFigureCollectionConverter.cs
- ConsoleCancelEventArgs.cs
- NameValueConfigurationElement.cs
- URLString.cs
- SrgsNameValueTag.cs
- OutOfMemoryException.cs
- DbConnectionStringBuilder.cs
- configsystem.cs
- XomlCompiler.cs
- LogRecordSequence.cs
- DebugView.cs
- SafeHandles.cs
- AttachedAnnotationChangedEventArgs.cs
- AssemblySettingAttributes.cs
- DecoderNLS.cs
- ResolveCompletedEventArgs.cs
- ProviderConnectionPointCollection.cs
- Document.cs
- wmiprovider.cs
- RequestCacheEntry.cs
- TableLayoutRowStyleCollection.cs
- TextShapeableCharacters.cs
- Pts.cs
- SqlDependency.cs
- FormViewDeleteEventArgs.cs
- HttpConfigurationContext.cs
- ItemAutomationPeer.cs
- MetadataSerializer.cs
- DriveNotFoundException.cs
- ArgIterator.cs
- IntegerValidator.cs
- ErrorFormatter.cs
- CommentEmitter.cs
- RequestCachingSection.cs
- CodeTypeConstructor.cs
- PermissionSetEnumerator.cs
- BamlBinaryWriter.cs
- Command.cs
- ServiceDescription.cs
- CompositeCollection.cs
- HttpInputStream.cs
- _NTAuthentication.cs
- figurelength.cs
- DropDownButton.cs
- TraceSource.cs
- DBBindings.cs
- XMLSyntaxException.cs
- InstallerTypeAttribute.cs
- shaperfactoryquerycacheentry.cs
- BlockCollection.cs
- HttpDigestClientCredential.cs
- WebAdminConfigurationHelper.cs
- XmlSchemaDatatype.cs
- EnumConverter.cs
- CookieProtection.cs
- LogRecordSequence.cs
- LayoutEditorPart.cs
- StackBuilderSink.cs