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
- MultiDataTrigger.cs
- CodeAttachEventStatement.cs
- PassportAuthenticationEventArgs.cs
- ComEventsHelper.cs
- IntegerCollectionEditor.cs
- ProfileGroupSettingsCollection.cs
- TagNameToTypeMapper.cs
- NativeCompoundFileAPIs.cs
- CustomTypeDescriptor.cs
- ListSourceHelper.cs
- PresentationTraceSources.cs
- SettingsPropertyCollection.cs
- AssemblyResourceLoader.cs
- EndEvent.cs
- Evidence.cs
- TimeStampChecker.cs
- GeneralTransform.cs
- SchemaComplexType.cs
- XmlValueConverter.cs
- FontFamily.cs
- StackSpiller.Generated.cs
- XmlQualifiedNameTest.cs
- Random.cs
- SqlCachedBuffer.cs
- Query.cs
- ComponentEditorPage.cs
- TextOnlyOutput.cs
- ScrollBar.cs
- StorageAssociationSetMapping.cs
- LongTypeConverter.cs
- StringValidator.cs
- CfgSemanticTag.cs
- TypedColumnHandler.cs
- Size3D.cs
- MergablePropertyAttribute.cs
- SeverityFilter.cs
- CategoryValueConverter.cs
- TraceSection.cs
- log.cs
- PenThread.cs
- TransformGroup.cs
- UrlPath.cs
- FormatterConverter.cs
- ProxyWebPartConnectionCollection.cs
- InfoCardArgumentException.cs
- ContextQuery.cs
- TemplateColumn.cs
- OleDbFactory.cs
- DmlSqlGenerator.cs
- TypefaceCollection.cs
- EncodingNLS.cs
- ClickablePoint.cs
- RepeatButtonAutomationPeer.cs
- BamlMapTable.cs
- DesignerEventService.cs
- X509Utils.cs
- DataGridHeaderBorder.cs
- XmlSchemaImport.cs
- EntityViewGenerationAttribute.cs
- SimpleApplicationHost.cs
- LogExtent.cs
- CodeBlockBuilder.cs
- FrameworkTemplate.cs
- Attributes.cs
- NameObjectCollectionBase.cs
- PngBitmapDecoder.cs
- SafeHandle.cs
- DeviceContexts.cs
- StylusOverProperty.cs
- AdornerLayer.cs
- GenericRootAutomationPeer.cs
- Canvas.cs
- TypeToStringValueConverter.cs
- Axis.cs
- ConstNode.cs
- CollectionContainer.cs
- XmlSerializationWriter.cs
- CodeAccessSecurityEngine.cs
- sqlcontext.cs
- SqlDataSourceWizardForm.cs
- EmptyReadOnlyDictionaryInternal.cs
- AnnotationAdorner.cs
- URLMembershipCondition.cs
- XsdBuildProvider.cs
- Wizard.cs
- Assembly.cs
- TimeSpanMinutesConverter.cs
- SQLMoney.cs
- Missing.cs
- MSAAEventDispatcher.cs
- DecoratedNameAttribute.cs
- TransformerInfo.cs
- Vector3dCollection.cs
- TcpServerChannel.cs
- ZipIOLocalFileDataDescriptor.cs
- ItemContainerGenerator.cs
- DetailsViewPageEventArgs.cs
- ContextMenuStripGroup.cs
- SqlTriggerContext.cs
- EventRouteFactory.cs