Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- NativeMethods.cs
- FacetValues.cs
- FileDataSourceCache.cs
- MemberInfoSerializationHolder.cs
- RuntimeHandles.cs
- EditorBrowsableAttribute.cs
- XmlWrappingWriter.cs
- Timer.cs
- LineProperties.cs
- CompilerGeneratedAttribute.cs
- IsolatedStorageException.cs
- MappingException.cs
- UpdatePanel.cs
- TextSearch.cs
- DbConnectionPoolIdentity.cs
- TreeNodeStyleCollection.cs
- EditorPartCollection.cs
- SiblingIterators.cs
- InstanceValue.cs
- DbException.cs
- SqlDataSourceStatusEventArgs.cs
- StickyNoteHelper.cs
- WebReferencesBuildProvider.cs
- RepeaterCommandEventArgs.cs
- DataGridViewAdvancedBorderStyle.cs
- NamespaceMapping.cs
- WindowsSpinner.cs
- DataGridColumnReorderingEventArgs.cs
- HandleCollector.cs
- FtpWebRequest.cs
- TreeView.cs
- TranslateTransform.cs
- EntitySet.cs
- ApplicationSecurityManager.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- SafeLocalMemHandle.cs
- Util.cs
- ManagementException.cs
- MarkupObject.cs
- ObjectConverter.cs
- WorkflowViewElement.cs
- DictionarySectionHandler.cs
- FontCacheLogic.cs
- NodeFunctions.cs
- XmlHierarchyData.cs
- ArrayList.cs
- FastPropertyAccessor.cs
- QuadraticBezierSegment.cs
- NodeCounter.cs
- Rotation3DAnimation.cs
- PointConverter.cs
- ToolTip.cs
- BevelBitmapEffect.cs
- EndpointBehaviorElementCollection.cs
- HandledEventArgs.cs
- Rotation3DAnimationUsingKeyFrames.cs
- HandleExceptionArgs.cs
- MimeReturn.cs
- WebServiceEnumData.cs
- XamlDebuggerXmlReader.cs
- DesignerTransactionCloseEvent.cs
- SBCSCodePageEncoding.cs
- VerificationException.cs
- XmlEntity.cs
- DefaultBinder.cs
- ArraySet.cs
- SynchronousSendBindingElement.cs
- WebServiceMethodData.cs
- KerberosSecurityTokenAuthenticator.cs
- ConvertersCollection.cs
- Enum.cs
- BatchStream.cs
- CommentEmitter.cs
- RoutedUICommand.cs
- TreeViewItem.cs
- ConvertersCollection.cs
- ConfigurationSectionCollection.cs
- ReceiveContextCollection.cs
- RenderDataDrawingContext.cs
- WebPartConnectionsEventArgs.cs
- CommittableTransaction.cs
- WebPartEventArgs.cs
- Helpers.cs
- RowSpanVector.cs
- SafeRightsManagementEnvironmentHandle.cs
- ScriptControlManager.cs
- WebHttpSecurity.cs
- SqlCacheDependencyDatabase.cs
- DisplayMemberTemplateSelector.cs
- DataSysAttribute.cs
- MobileCategoryAttribute.cs
- PublisherMembershipCondition.cs
- DocumentPageTextView.cs
- DynamicFilterExpression.cs
- TransformerInfo.cs
- CustomAssemblyResolver.cs
- StringAnimationUsingKeyFrames.cs
- FontFamilyConverter.cs
- GridViewRowPresenterBase.cs
- CapabilitiesState.cs