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
- ContentFilePart.cs
- GeneralTransformCollection.cs
- HandlerBase.cs
- Baml2006KeyRecord.cs
- VSWCFServiceContractGenerator.cs
- ZipIOLocalFileHeader.cs
- GeometryValueSerializer.cs
- TraceUtility.cs
- SqlDataSourceCache.cs
- NopReturnReader.cs
- DataGridViewComboBoxEditingControl.cs
- MachineKey.cs
- IntegrationExceptionEventArgs.cs
- SafeNativeMethodsMilCoreApi.cs
- ToolStripSplitButton.cs
- X509SecurityTokenAuthenticator.cs
- MiniAssembly.cs
- SafeProcessHandle.cs
- EventLogEntry.cs
- SelectionListComponentEditor.cs
- StyleCollection.cs
- PackageDigitalSignature.cs
- DataServiceQueryException.cs
- AppDomainCompilerProxy.cs
- _Rfc2616CacheValidators.cs
- NameValueCollection.cs
- FontCollection.cs
- Condition.cs
- EncoderReplacementFallback.cs
- SchemaNotation.cs
- XPathNodeIterator.cs
- FixedSOMPageConstructor.cs
- X509Utils.cs
- TrustManager.cs
- DataObjectFieldAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- PasswordDeriveBytes.cs
- SettingsContext.cs
- FormatterServices.cs
- Tokenizer.cs
- SqlCrossApplyToCrossJoin.cs
- SessionIDManager.cs
- SecurityException.cs
- LexicalChunk.cs
- NavigationPropertySingletonExpression.cs
- CommonObjectSecurity.cs
- PagePropertiesChangingEventArgs.cs
- DragDropManager.cs
- ListBoxChrome.cs
- SpeakCompletedEventArgs.cs
- ReadOnlyHierarchicalDataSourceView.cs
- DataGridViewComboBoxCell.cs
- ToolStripDropDownButton.cs
- Command.cs
- JulianCalendar.cs
- DoubleLinkList.cs
- RuntimeConfig.cs
- ValidationSummary.cs
- PolyLineSegment.cs
- HorizontalAlignConverter.cs
- XmlByteStreamWriter.cs
- Base64Encoder.cs
- ImageList.cs
- WindowsListViewSubItem.cs
- NumericUpDownAccelerationCollection.cs
- EntityClientCacheEntry.cs
- FigureHelper.cs
- SafeNativeMethods.cs
- WindowsRegion.cs
- RawContentTypeMapper.cs
- Vector3DAnimationBase.cs
- BitmapEffectGroup.cs
- AnchoredBlock.cs
- HttpContext.cs
- DiagnosticsConfigurationHandler.cs
- SplayTreeNode.cs
- DirectoryInfo.cs
- Vector.cs
- PassportAuthenticationEventArgs.cs
- DynamicValidator.cs
- FragmentQueryKB.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- CustomErrorCollection.cs
- TextServicesProperty.cs
- KnownTypes.cs
- WebPartHeaderCloseVerb.cs
- AddingNewEventArgs.cs
- DataControlCommands.cs
- RsaKeyIdentifierClause.cs
- GlyphManager.cs
- XPathItem.cs
- SystemNetworkInterface.cs
- EventManager.cs
- PeerFlooder.cs
- BasicExpandProvider.cs
- WrappedIUnknown.cs
- AuthenticationServiceManager.cs
- __ConsoleStream.cs
- SamlAudienceRestrictionCondition.cs
- DesignerAttribute.cs