Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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. // //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MasterPageCodeDomTreeGenerator.cs
- TimersDescriptionAttribute.cs
- TableAutomationPeer.cs
- TreeNodeEventArgs.cs
- UpdateCompiler.cs
- Serializer.cs
- ControlDesignerState.cs
- TabControl.cs
- PeerObject.cs
- OrthographicCamera.cs
- TableProviderWrapper.cs
- EventSource.cs
- RoleGroupCollection.cs
- NamespaceInfo.cs
- DrawingAttributes.cs
- WebPartManager.cs
- ObjectQueryState.cs
- CounterCreationData.cs
- RectAnimationUsingKeyFrames.cs
- WebPartHeaderCloseVerb.cs
- LateBoundBitmapDecoder.cs
- SiteMap.cs
- AnnotationResourceChangedEventArgs.cs
- RevocationPoint.cs
- ControlBindingsConverter.cs
- TypeHelpers.cs
- DeferredReference.cs
- Attributes.cs
- Touch.cs
- RunWorkerCompletedEventArgs.cs
- TextEditorThreadLocalStore.cs
- QuaternionAnimation.cs
- MasterPageBuildProvider.cs
- SerialStream.cs
- MemberDomainMap.cs
- Splitter.cs
- Latin1Encoding.cs
- QueueProcessor.cs
- HtmlTableCell.cs
- TypeBuilderInstantiation.cs
- EmbeddedMailObjectsCollection.cs
- TextBoxLine.cs
- PageBorderless.cs
- XmlStringTable.cs
- XamlHostingConfiguration.cs
- X509Extension.cs
- SmtpDigestAuthenticationModule.cs
- TextBox.cs
- Highlights.cs
- EdmProviderManifest.cs
- SecureUICommand.cs
- MulticastOption.cs
- PenContext.cs
- UpnEndpointIdentity.cs
- DesignTimeTemplateParser.cs
- Base64Stream.cs
- ExtractorMetadata.cs
- PerformanceCounterManager.cs
- HttpVersion.cs
- SafeNativeMethods.cs
- WhitespaceRuleLookup.cs
- AssociatedControlConverter.cs
- ContainerControl.cs
- StorageEntitySetMapping.cs
- Rotation3DAnimationUsingKeyFrames.cs
- LocalBuilder.cs
- ResourceProviderFactory.cs
- TextPointer.cs
- HtmlFormAdapter.cs
- SiteIdentityPermission.cs
- TypedReference.cs
- DiagnosticsConfiguration.cs
- ResumeStoryboard.cs
- ConcatQueryOperator.cs
- InfoCardKeyedHashAlgorithm.cs
- keycontainerpermission.cs
- AssociatedControlConverter.cs
- FileSystemEventArgs.cs
- TemplateComponentConnector.cs
- SizeFConverter.cs
- XmlSchemaSubstitutionGroup.cs
- SerialReceived.cs
- OdbcException.cs
- ListControlBuilder.cs
- BitmapEffectGroup.cs
- StaticResourceExtension.cs
- SpecialFolderEnumConverter.cs
- DbProviderFactoriesConfigurationHandler.cs
- ProfileBuildProvider.cs
- GAC.cs
- ContextMenuStrip.cs
- ToolStripManager.cs
- DataGridViewCellPaintingEventArgs.cs
- DataControlPagerLinkButton.cs
- CheckoutException.cs
- DiscoveryDocumentReference.cs
- ArgIterator.cs
- SqlWebEventProvider.cs
- BindingContext.cs
- InkSerializer.cs