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
- ListDictionary.cs
- FixedTextSelectionProcessor.cs
- AliasExpr.cs
- IHttpResponseInternal.cs
- ImpersonateTokenRef.cs
- MediaTimeline.cs
- HtmlDocument.cs
- RelatedCurrencyManager.cs
- AdapterUtil.cs
- StructuredTypeInfo.cs
- ImageAutomationPeer.cs
- Sentence.cs
- SafeHandles.cs
- DateTimeUtil.cs
- TaskFactory.cs
- EncryptedData.cs
- XmlSchemaParticle.cs
- SectionInformation.cs
- VersionedStreamOwner.cs
- CompositeControl.cs
- CompositeTypefaceMetrics.cs
- TextEditorParagraphs.cs
- InkCanvasSelectionAdorner.cs
- XPathDocumentNavigator.cs
- AutomationTextAttribute.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- ClipboardProcessor.cs
- InitialServerConnectionReader.cs
- GuidTagList.cs
- XmlHelper.cs
- SqlFormatter.cs
- CompositionCommandSet.cs
- OdbcDataAdapter.cs
- HierarchicalDataSourceControl.cs
- TypeNameConverter.cs
- PointConverter.cs
- StrongNameUtility.cs
- HistoryEventArgs.cs
- WebPartTracker.cs
- PowerStatus.cs
- DbgCompiler.cs
- DispatcherHookEventArgs.cs
- PropertyValue.cs
- SqlSelectStatement.cs
- CodeMethodInvokeExpression.cs
- Keywords.cs
- NumericUpDownAcceleration.cs
- CodeTryCatchFinallyStatement.cs
- CompositeDataBoundControl.cs
- CatalogZoneBase.cs
- StreamProxy.cs
- ExtensionFile.cs
- XhtmlTextWriter.cs
- EncoderReplacementFallback.cs
- LogLogRecordHeader.cs
- ActionItem.cs
- SafeLibraryHandle.cs
- XPathNodeList.cs
- ChtmlTextWriter.cs
- Selection.cs
- DrawListViewItemEventArgs.cs
- DesignerActionItemCollection.cs
- RowsCopiedEventArgs.cs
- CatalogZone.cs
- FontFamily.cs
- Math.cs
- ComponentTray.cs
- AssemblyBuilderData.cs
- RegistryExceptionHelper.cs
- SharedPerformanceCounter.cs
- DelayedRegex.cs
- HttpCookie.cs
- DetailsViewPagerRow.cs
- ContainerAction.cs
- GridEntryCollection.cs
- AttributeEmitter.cs
- HierarchicalDataBoundControlAdapter.cs
- HttpStreamXmlDictionaryReader.cs
- ListParaClient.cs
- SelectedDatesCollection.cs
- AsymmetricKeyExchangeDeformatter.cs
- QilStrConcatenator.cs
- mediaclock.cs
- BulletDecorator.cs
- TemplatedWizardStep.cs
- StringValueSerializer.cs
- HttpResponse.cs
- MetadataExchangeBindings.cs
- KeyMatchBuilder.cs
- NumberFormatter.cs
- RemoteArgument.cs
- UnsafeMethods.cs
- DataGridRowHeaderAutomationPeer.cs
- SafeArrayTypeMismatchException.cs
- UriTemplateQueryValue.cs
- Track.cs
- ElementMarkupObject.cs
- RedirectionProxy.cs
- SqlSupersetValidator.cs
- XmlLoader.cs