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
- _ListenerResponseStream.cs
- OdbcEnvironment.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- ComboBoxAutomationPeer.cs
- xsdvalidator.cs
- EventSourceCreationData.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- BrowserTree.cs
- DataConnectionHelper.cs
- ChooseAction.cs
- ConstNode.cs
- TextEndOfLine.cs
- TimeIntervalCollection.cs
- SecurityPermission.cs
- GregorianCalendarHelper.cs
- LinkedDataMemberFieldEditor.cs
- ExternalException.cs
- CancellableEnumerable.cs
- NameSpaceExtractor.cs
- login.cs
- PtsHelper.cs
- Condition.cs
- WorkflowExecutor.cs
- GenerateScriptTypeAttribute.cs
- _LoggingObject.cs
- WinFormsSecurity.cs
- HexParser.cs
- XamlParser.cs
- OdbcEnvironment.cs
- IApplicationTrustManager.cs
- HostedBindingBehavior.cs
- WsatTransactionHeader.cs
- ImageInfo.cs
- ValueProviderWrapper.cs
- PickDesigner.xaml.cs
- CodeBlockBuilder.cs
- EditorPart.cs
- BamlRecordWriter.cs
- Confirm.cs
- CryptoApi.cs
- HtmlHead.cs
- SecurityKeyUsage.cs
- DataContractSerializerFaultFormatter.cs
- DispatchChannelSink.cs
- X509CertificateInitiatorServiceCredential.cs
- GridViewUpdatedEventArgs.cs
- DynamicMetaObject.cs
- DataObjectSettingDataEventArgs.cs
- StoreContentChangedEventArgs.cs
- ContainerSelectorGlyph.cs
- ToolStripItemEventArgs.cs
- NamespaceMapping.cs
- BufferModesCollection.cs
- RegexCaptureCollection.cs
- StringFormat.cs
- ConnectionConsumerAttribute.cs
- ProtocolElementCollection.cs
- EncryptedKeyIdentifierClause.cs
- BrowserDefinitionCollection.cs
- RectKeyFrameCollection.cs
- DataTableMapping.cs
- InkCollectionBehavior.cs
- DataControlFieldCell.cs
- ItemContainerGenerator.cs
- externdll.cs
- XamlFigureLengthSerializer.cs
- SimpleType.cs
- NoneExcludedImageIndexConverter.cs
- PointLightBase.cs
- BlockUIContainer.cs
- GridItemProviderWrapper.cs
- OneOfTypeConst.cs
- CmsInterop.cs
- MetadataCache.cs
- BindingExpressionBase.cs
- ErrorRuntimeConfig.cs
- XmlWrappingReader.cs
- Composition.cs
- GlobalizationSection.cs
- TraceProvider.cs
- ZipIOFileItemStream.cs
- MethodToken.cs
- BlockCollection.cs
- ImageMetadata.cs
- SettingsContext.cs
- Vector3DAnimationBase.cs
- WebScriptEndpointElement.cs
- ParseHttpDate.cs
- Metafile.cs
- X500Name.cs
- OperationAbortedException.cs
- DetailsViewInsertEventArgs.cs
- Menu.cs
- TextSelection.cs
- FontCacheUtil.cs
- DataSourceXmlSubItemAttribute.cs
- ReceiveContextCollection.cs
- EntityDataSourceValidationException.cs
- WpfXamlLoader.cs
- Resources.Designer.cs