Code:
/ DotNET / DotNET / 8.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
- Registry.cs
- Monitor.cs
- TextElementEnumerator.cs
- RenderContext.cs
- CharKeyFrameCollection.cs
- SubqueryRules.cs
- HostedElements.cs
- Endpoint.cs
- ListBoxChrome.cs
- MachineSettingsSection.cs
- SqlNotificationRequest.cs
- DefaultPrintController.cs
- PseudoWebRequest.cs
- WebPartConnectionsCloseVerb.cs
- SessionEndingCancelEventArgs.cs
- PatternMatcher.cs
- QueryInterceptorAttribute.cs
- ElementNotEnabledException.cs
- GlobalizationSection.cs
- XPathSingletonIterator.cs
- Encoding.cs
- ExtensionQuery.cs
- ToolboxDataAttribute.cs
- UnorderedHashRepartitionStream.cs
- UIElement.cs
- ServiceHostingEnvironmentSection.cs
- Stacktrace.cs
- ChtmlTextBoxAdapter.cs
- InputBindingCollection.cs
- TemplatedMailWebEventProvider.cs
- ContextQuery.cs
- AccessDataSourceView.cs
- ReadOnlyCollection.cs
- ListBoxItemWrapperAutomationPeer.cs
- ReliableSessionBindingElementImporter.cs
- RecognizerStateChangedEventArgs.cs
- PublishLicense.cs
- FormViewRow.cs
- BamlLocalizer.cs
- ObjectQuery_EntitySqlExtensions.cs
- storepermission.cs
- CngProvider.cs
- KeyConverter.cs
- XmlArrayItemAttribute.cs
- OneOfElement.cs
- NewExpression.cs
- Page.cs
- QueryTaskGroupState.cs
- PageStatePersister.cs
- RegistrySecurity.cs
- PropertyIDSet.cs
- ContentPathSegment.cs
- ConnectionProviderAttribute.cs
- ExpressionEditorAttribute.cs
- Buffer.cs
- JoinSymbol.cs
- BindableAttribute.cs
- IteratorDescriptor.cs
- AutomationIdentifier.cs
- HtmlTableCell.cs
- EmbeddedMailObject.cs
- XmlReflectionMember.cs
- WebConfigurationFileMap.cs
- XmlSchemaNotation.cs
- BinaryKeyIdentifierClause.cs
- AttributeData.cs
- NullableDoubleSumAggregationOperator.cs
- OleStrCAMarshaler.cs
- Operator.cs
- AuthenticationSection.cs
- CodeTypeMemberCollection.cs
- CodePropertyReferenceExpression.cs
- SelectedDatesCollection.cs
- LineGeometry.cs
- SystemParameters.cs
- DependencyPropertyChangedEventArgs.cs
- PersistChildrenAttribute.cs
- PeerNameRecord.cs
- SqlDataSourceStatusEventArgs.cs
- ObjectDataSourceEventArgs.cs
- StubHelpers.cs
- DetailsViewModeEventArgs.cs
- HitTestParameters3D.cs
- Rotation3DAnimationBase.cs
- ColorContextHelper.cs
- Geometry.cs
- SqlConnection.cs
- ResourcesBuildProvider.cs
- Int32KeyFrameCollection.cs
- NameTable.cs
- HwndSource.cs
- ChtmlLinkAdapter.cs
- EntitySetRetriever.cs
- VersionUtil.cs
- SqlClientWrapperSmiStreamChars.cs
- InternalControlCollection.cs
- ReadOnlyKeyedCollection.cs
- DSACryptoServiceProvider.cs
- OracleMonthSpan.cs
- ImageCodecInfo.cs