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
- TextSelectionProcessor.cs
- HttpEncoder.cs
- FunctionImportMapping.cs
- XmlnsPrefixAttribute.cs
- XmlSiteMapProvider.cs
- AssemblyName.cs
- CodeDirectoryCompiler.cs
- SystemIcmpV4Statistics.cs
- MoveSizeWinEventHandler.cs
- XmlSchema.cs
- MediaCommands.cs
- SqlConnection.cs
- ValidatingPropertiesEventArgs.cs
- ThicknessAnimation.cs
- TypefaceCollection.cs
- SyndicationCategory.cs
- ColorTransformHelper.cs
- PersonalizableAttribute.cs
- ImmutablePropertyDescriptorGridEntry.cs
- NamedPipeDuplicateContext.cs
- InkCanvas.cs
- TextEditorMouse.cs
- CancellationHandlerDesigner.cs
- LayoutDump.cs
- SolidBrush.cs
- MenuItemCollection.cs
- HtmlInputSubmit.cs
- LineServicesRun.cs
- Style.cs
- Adorner.cs
- NativeStructs.cs
- ReadOnlyDataSource.cs
- Pen.cs
- CompositeControl.cs
- CodeMemberProperty.cs
- TemplateField.cs
- GlyphCache.cs
- DelegateArgumentValue.cs
- ProxyWebPartConnectionCollection.cs
- MobileComponentEditorPage.cs
- BaseCAMarshaler.cs
- TracingConnection.cs
- XmlAggregates.cs
- HandlerMappingMemo.cs
- NativeMethods.cs
- KeyNameIdentifierClause.cs
- CurrentTimeZone.cs
- XmlHierarchyData.cs
- SessionStateContainer.cs
- ObjectStateFormatter.cs
- ResourceManager.cs
- TabControlCancelEvent.cs
- QilStrConcatenator.cs
- ChameleonKey.cs
- _BaseOverlappedAsyncResult.cs
- Function.cs
- LinkedResourceCollection.cs
- TableCell.cs
- ObjectDataSourceSelectingEventArgs.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- EventHandlingScope.cs
- Point3D.cs
- Message.cs
- FontNamesConverter.cs
- StringComparer.cs
- ColumnMapVisitor.cs
- IntegrationExceptionEventArgs.cs
- NavigationEventArgs.cs
- DictionarySectionHandler.cs
- InputBindingCollection.cs
- LoadedOrUnloadedOperation.cs
- CreateUserErrorEventArgs.cs
- FloaterBaseParagraph.cs
- PeerTransportSecurityElement.cs
- DbDataAdapter.cs
- ParallelTimeline.cs
- Trace.cs
- HwndKeyboardInputProvider.cs
- RecognizerInfo.cs
- HybridObjectCache.cs
- ColorContext.cs
- ColumnCollection.cs
- HMACRIPEMD160.cs
- TextRunCache.cs
- CacheMemory.cs
- RetrieveVirtualItemEventArgs.cs
- PropertyGeneratedEventArgs.cs
- FloaterBaseParagraph.cs
- SupportsEventValidationAttribute.cs
- AsyncCompletedEventArgs.cs
- DelegateBodyWriter.cs
- TypeLoadException.cs
- SpeechEvent.cs
- CreateUserWizardStep.cs
- EntityType.cs
- ScriptingRoleServiceSection.cs
- NameValuePermission.cs
- FilteredAttributeCollection.cs
- DisplayNameAttribute.cs
- PasswordDeriveBytes.cs