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
- CurrentChangedEventManager.cs
- XmlIncludeAttribute.cs
- EntityKeyElement.cs
- SubMenuStyleCollection.cs
- HtmlElementErrorEventArgs.cs
- SatelliteContractVersionAttribute.cs
- UnsafeMethods.cs
- IsolatedStorage.cs
- x509utils.cs
- IArgumentProvider.cs
- controlskin.cs
- ConnectionConsumerAttribute.cs
- DescendantQuery.cs
- XmlSortKey.cs
- UIElement.cs
- TableColumn.cs
- ContextMenuStripGroup.cs
- DuplicateDetector.cs
- XmlBaseWriter.cs
- MetadataImporter.cs
- HierarchicalDataBoundControl.cs
- Vector3DAnimationBase.cs
- MetadataItem_Static.cs
- ChildChangedEventArgs.cs
- LicFileLicenseProvider.cs
- TypeLoadException.cs
- FocusChangedEventArgs.cs
- XmlIlVisitor.cs
- PageWrapper.cs
- CngKeyCreationParameters.cs
- LogFlushAsyncResult.cs
- NameValuePair.cs
- MarshalByRefObject.cs
- BaseDataListActionList.cs
- columnmapkeybuilder.cs
- ValueTypeFixupInfo.cs
- XamlToRtfParser.cs
- NamespaceCollection.cs
- LeftCellWrapper.cs
- webproxy.cs
- PublishLicense.cs
- SimpleBitVector32.cs
- InkSerializer.cs
- RuleSet.cs
- ValidationResult.cs
- SessionIDManager.cs
- SQLInt16.cs
- XmlDesignerDataSourceView.cs
- WindowsSecurityToken.cs
- CheckBoxFlatAdapter.cs
- DataKey.cs
- DiscoveryRequestHandler.cs
- ExpressionBuilderContext.cs
- ContentPlaceHolder.cs
- ValueChangedEventManager.cs
- HtmlImage.cs
- HashHelper.cs
- ImageInfo.cs
- DesignerExtenders.cs
- MembershipValidatePasswordEventArgs.cs
- ApplicationSecurityManager.cs
- GradientStop.cs
- PointUtil.cs
- DocumentSchemaValidator.cs
- ToolboxCategory.cs
- Token.cs
- HtmlForm.cs
- RunInstallerAttribute.cs
- ContainerUtilities.cs
- ListViewItemCollectionEditor.cs
- UserMapPath.cs
- GridItem.cs
- DbProviderConfigurationHandler.cs
- ObjectHelper.cs
- MSAAWinEventWrap.cs
- DesignerActionUIStateChangeEventArgs.cs
- PolicyUtility.cs
- TraceSource.cs
- CompatibleComparer.cs
- BaseTreeIterator.cs
- RegexWorker.cs
- WindowsSlider.cs
- SchemaCollectionCompiler.cs
- WindowsPen.cs
- LocalFileSettingsProvider.cs
- BaseParser.cs
- FileDialogCustomPlacesCollection.cs
- ChannelTracker.cs
- ToolStripItem.cs
- IndependentAnimationStorage.cs
- addressfiltermode.cs
- SqlOuterApplyReducer.cs
- MD5CryptoServiceProvider.cs
- HScrollProperties.cs
- WpfKnownMember.cs
- wgx_render.cs
- Crc32.cs
- GraphicsPathIterator.cs
- ChainedAsyncResult.cs
- XmlToDatasetMap.cs