Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripOverflowButton.cs / 1 / ToolStripOverflowButton.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Diagnostics; using System.Windows.Forms.Design; ////// /// ToolStripOverflowButton /// [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.None)] public class ToolStripOverflowButton : ToolStripDropDownButton { // we need to cache this away as the Parent property gets reset a lot. private ToolStrip parentToolStrip; ///[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] internal ToolStripOverflowButton(ToolStrip parentToolStrip) { SupportsItemClick = false; this.parentToolStrip = parentToolStrip; } /// protected internal override Padding DefaultMargin { get { return Padding.Empty; } } /// public override bool HasDropDownItems { get { return this.ParentInternal.OverflowItems.Count > 0; } } internal override bool OppositeDropDownAlign { get { return true; } } internal ToolStrip ParentToolStrip { get { return parentToolStrip; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new bool RightToLeftAutoMirrorImage { get { return base.RightToLeftAutoMirrorImage; } set { base.RightToLeftAutoMirrorImage = value; } } protected override AccessibleObject CreateAccessibilityInstance() { return new ToolStripOverflowButtonAccessibleObject(this); } /// protected override ToolStripDropDown CreateDefaultDropDown() { // AutoGenerate a Winbar DropDown - set the property so we hook events return new ToolStripOverflow(this); } /// public override Size GetPreferredSize(Size constrainingSize) { Size preferredSize = constrainingSize; if (this.ParentInternal != null) { if (this.ParentInternal.Orientation == Orientation.Horizontal) { preferredSize.Width = Math.Min(constrainingSize.Width, 16); } else { preferredSize.Height = Math.Min(constrainingSize.Height, 16); } } return preferredSize + this.Padding.Size; } // make sure the Overflow button extends from edge-edge. (Ignore Padding/Margin). internal protected override void SetBounds(Rectangle bounds) { if (ParentInternal != null && ParentInternal.LayoutEngine is ToolStripSplitStackLayout) { if (ParentInternal.Orientation == Orientation.Horizontal) { bounds.Height = ParentInternal.Height; bounds.Y = 0; } else { bounds.Width = ParentInternal.Width; bounds.X = 0; } } base.SetBounds(bounds); } /// protected override void OnPaint(PaintEventArgs e) { if (this.ParentInternal != null) { ToolStripRenderer renderer = this.ParentInternal.Renderer; renderer.DrawOverflowButtonBackground(new ToolStripItemRenderEventArgs(e.Graphics, this)); } } internal class ToolStripOverflowButtonAccessibleObject : ToolStripDropDownItemAccessibleObject { private string stockName; public ToolStripOverflowButtonAccessibleObject(ToolStripOverflowButton owner) : base(owner){ } public override string Name { get { string name = Owner.AccessibleName; if (name != null) { return name; } if (string.IsNullOrEmpty(stockName)) { stockName = SR.GetString(SR.ToolStripOptions); } return stockName; } set { base.Name = value; } } } } } // 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
- HttpApplication.cs
- HtmlProps.cs
- DefaultDialogButtons.cs
- TransformerTypeCollection.cs
- OleDbCommand.cs
- Size.cs
- XNodeNavigator.cs
- PropertyCondition.cs
- ResourceWriter.cs
- ArgumentValue.cs
- ScrollEvent.cs
- EntityViewGenerationAttribute.cs
- NextPreviousPagerField.cs
- ControlPaint.cs
- MenuScrollingVisibilityConverter.cs
- DataPagerField.cs
- RightsManagementInformation.cs
- storepermissionattribute.cs
- PeerToPeerException.cs
- WebConvert.cs
- PreProcessInputEventArgs.cs
- QuaternionRotation3D.cs
- MetafileHeaderWmf.cs
- _BaseOverlappedAsyncResult.cs
- HashMembershipCondition.cs
- OrderedDictionaryStateHelper.cs
- CodeDirectoryCompiler.cs
- ArrayConverter.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- PointCollection.cs
- Padding.cs
- BezierSegment.cs
- HwndHostAutomationPeer.cs
- IdentityHolder.cs
- SystemBrushes.cs
- TextSegment.cs
- XmlCharCheckingWriter.cs
- DataBindingCollection.cs
- Faults.cs
- ContentPropertyAttribute.cs
- SecUtil.cs
- AttributeAction.cs
- SurrogateEncoder.cs
- ConstructorNeedsTagAttribute.cs
- FloaterBaseParaClient.cs
- DesignerRegionCollection.cs
- ResourceDictionary.cs
- SchemaCompiler.cs
- Wildcard.cs
- OdbcPermission.cs
- Classification.cs
- XamlHostingSection.cs
- COAUTHIDENTITY.cs
- DelayedRegex.cs
- LabelLiteral.cs
- OdbcCommand.cs
- GridViewSortEventArgs.cs
- PageClientProxyGenerator.cs
- SafeMILHandleMemoryPressure.cs
- QfeChecker.cs
- AudioFormatConverter.cs
- CheckBoxFlatAdapter.cs
- HtmlHistory.cs
- ScopeCollection.cs
- XmlILTrace.cs
- CursorConverter.cs
- EntityModelBuildProvider.cs
- URL.cs
- ScriptingScriptResourceHandlerSection.cs
- LinkButton.cs
- IISUnsafeMethods.cs
- OneWayBindingElementImporter.cs
- SoapMessage.cs
- FigureParagraph.cs
- DataPagerFieldCommandEventArgs.cs
- DocComment.cs
- PatternMatcher.cs
- DBDataPermission.cs
- ObjectToIdCache.cs
- RayHitTestParameters.cs
- SelectedDatesCollection.cs
- BuildManager.cs
- ConfigurationValidatorBase.cs
- Missing.cs
- xmlsaver.cs
- ScriptingJsonSerializationSection.cs
- ScrollChangedEventArgs.cs
- X509AsymmetricSecurityKey.cs
- Pkcs7Recipient.cs
- XmlSchemaObject.cs
- HttpDebugHandler.cs
- Regex.cs
- CaseExpr.cs
- SyndicationContent.cs
- SplashScreen.cs
- SecurityContextCookieSerializer.cs
- ComboBoxRenderer.cs
- TransportationConfigurationTypeInstallComponent.cs
- WindowsStartMenu.cs
- DataObjectAttribute.cs