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
- ContainerSelectorActiveEvent.cs
- Image.cs
- DataSourceNameHandler.cs
- WebServicesInteroperability.cs
- ByteAnimationBase.cs
- DecoderBestFitFallback.cs
- ExtendLockAsyncResult.cs
- QilFactory.cs
- DataError.cs
- XmlDataLoader.cs
- ReadOnlyPropertyMetadata.cs
- Helper.cs
- ConfigurationLocation.cs
- FormViewDeleteEventArgs.cs
- ClientConfigPaths.cs
- OutputCacheSection.cs
- DBDataPermissionAttribute.cs
- DataObjectFieldAttribute.cs
- HttpResponseBase.cs
- Figure.cs
- WSFederationHttpBindingElement.cs
- ItemAutomationPeer.cs
- EventHandlersDesigner.cs
- DrawingAttributeSerializer.cs
- Icon.cs
- SerializationInfo.cs
- HwndHost.cs
- StreamGeometry.cs
- WebHttpSecurity.cs
- CatchBlock.cs
- Track.cs
- ServiceHostingEnvironment.cs
- AppDomainShutdownMonitor.cs
- ButtonFieldBase.cs
- RadioButtonAutomationPeer.cs
- ImageAttributes.cs
- DummyDataSource.cs
- DateTimeOffset.cs
- HtmlTable.cs
- UIElementHelper.cs
- UserPrincipalNameElement.cs
- SchemaSetCompiler.cs
- Int32RectValueSerializer.cs
- DynamicObject.cs
- HtmlControlPersistable.cs
- IntAverageAggregationOperator.cs
- AutoResetEvent.cs
- SchemaMapping.cs
- ActivityBindForm.cs
- ToolBarOverflowPanel.cs
- WebPageTraceListener.cs
- SerializerDescriptor.cs
- CodeIdentifiers.cs
- Peer.cs
- CodePropertyReferenceExpression.cs
- RecognizerInfo.cs
- WebPartExportVerb.cs
- EntitySetDataBindingList.cs
- TableLayoutStyle.cs
- ImportContext.cs
- DrawingContextWalker.cs
- ToolBarOverflowPanel.cs
- XmlSerializationWriter.cs
- RequestFactory.cs
- InkCanvasFeedbackAdorner.cs
- Byte.cs
- DataGridToolTip.cs
- ColumnResizeUndoUnit.cs
- ExpressionHelper.cs
- EntityModelSchemaGenerator.cs
- ColorAnimationUsingKeyFrames.cs
- Point3DAnimationUsingKeyFrames.cs
- TemplateControl.cs
- _SecureChannel.cs
- DynamicRendererThreadManager.cs
- FindCompletedEventArgs.cs
- IBuiltInEvidence.cs
- ContextMenuStrip.cs
- EntityContainerEmitter.cs
- HTMLTagNameToTypeMapper.cs
- ChainOfDependencies.cs
- SemaphoreFullException.cs
- EnumValAlphaComparer.cs
- FunctionImportElement.cs
- Expression.DebuggerProxy.cs
- RepeatBehaviorConverter.cs
- ItemContainerGenerator.cs
- SystemIPGlobalStatistics.cs
- ConfigXmlWhitespace.cs
- DiagnosticTraceSource.cs
- WpfGeneratedKnownTypes.cs
- RoleService.cs
- MasterPage.cs
- HttpResponseMessageProperty.cs
- PictureBox.cs
- CompositeFontInfo.cs
- SourceFilter.cs
- LongTypeConverter.cs
- PointHitTestResult.cs
- NonClientArea.cs