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
- DataGridViewRowCollection.cs
- UrlAuthFailedErrorFormatter.cs
- WebPartConnectionsCancelEventArgs.cs
- Debugger.cs
- FreezableDefaultValueFactory.cs
- CodeFieldReferenceExpression.cs
- ContentValidator.cs
- HttpMethodAttribute.cs
- CompositeTypefaceMetrics.cs
- DataViewSetting.cs
- ProfilePropertyNameValidator.cs
- SchemaDeclBase.cs
- XmlException.cs
- CompiledRegexRunnerFactory.cs
- DataServiceConfiguration.cs
- AnonymousIdentificationModule.cs
- RegionInfo.cs
- SqlRemoveConstantOrderBy.cs
- ResourcePermissionBaseEntry.cs
- DesignerResources.cs
- XmlSiteMapProvider.cs
- DashStyle.cs
- VScrollBar.cs
- StringBuilder.cs
- StylusEditingBehavior.cs
- SchemaManager.cs
- HealthMonitoringSection.cs
- RealProxy.cs
- ServiceModelEnumValidator.cs
- IconBitmapDecoder.cs
- Listbox.cs
- DataGridViewLayoutData.cs
- WebRequest.cs
- HyperlinkAutomationPeer.cs
- WebPartActionVerb.cs
- ObjectViewFactory.cs
- OracleConnectionStringBuilder.cs
- TablePattern.cs
- TextTreePropertyUndoUnit.cs
- MatrixKeyFrameCollection.cs
- DataContractJsonSerializer.cs
- PieceNameHelper.cs
- AmbientProperties.cs
- FixedLineResult.cs
- shaperfactoryquerycachekey.cs
- ThreadPool.cs
- MouseActionValueSerializer.cs
- LinearGradientBrush.cs
- ProviderCollection.cs
- ComboBoxDesigner.cs
- HeaderElement.cs
- KnownColorTable.cs
- TableDetailsRow.cs
- cookiecollection.cs
- safelinkcollection.cs
- OdbcConnection.cs
- _SSPIWrapper.cs
- SafeArrayRankMismatchException.cs
- HttpBindingExtension.cs
- DBPropSet.cs
- CompatibleIComparer.cs
- DataListItemCollection.cs
- StorageModelBuildProvider.cs
- XmlSchemaSimpleTypeRestriction.cs
- EndPoint.cs
- LineUtil.cs
- Roles.cs
- DropAnimation.xaml.cs
- MDIWindowDialog.cs
- DiffuseMaterial.cs
- ObjectNotFoundException.cs
- Literal.cs
- coordinatorfactory.cs
- FrameworkName.cs
- CompositeDesignerAccessibleObject.cs
- XmlILConstructAnalyzer.cs
- srgsitem.cs
- TextSerializer.cs
- SystemIPGlobalStatistics.cs
- ButtonFlatAdapter.cs
- DataFormats.cs
- Clause.cs
- XhtmlCssHandler.cs
- SimpleTypesSurrogate.cs
- URLString.cs
- WorkflowApplicationIdleEventArgs.cs
- UpdateProgress.cs
- FileDataSourceCache.cs
- AutoFocusStyle.xaml.cs
- NativeMethods.cs
- WaitHandleCannotBeOpenedException.cs
- BuildResult.cs
- XmlSequenceWriter.cs
- BindingMemberInfo.cs
- AssemblyAttributes.cs
- ByteConverter.cs
- ProfilePropertyNameValidator.cs
- ProjectionRewriter.cs
- TemplateControlBuildProvider.cs
- TextSelection.cs