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
- ParameterSubsegment.cs
- XmlName.cs
- BitSet.cs
- EventEntry.cs
- URL.cs
- TriState.cs
- Point.cs
- WinInet.cs
- Module.cs
- TreeNodeConverter.cs
- WebSysDisplayNameAttribute.cs
- _OverlappedAsyncResult.cs
- StructuralType.cs
- Error.cs
- Geometry3D.cs
- WeakEventManager.cs
- SerialPinChanges.cs
- PreProcessor.cs
- TagPrefixCollection.cs
- InputBinder.cs
- GenericTextProperties.cs
- InputQueue.cs
- SHA1CryptoServiceProvider.cs
- XmlSortKey.cs
- StringAnimationUsingKeyFrames.cs
- BitmapFrameDecode.cs
- HyperLinkStyle.cs
- RouteParametersHelper.cs
- NavigationPropertyEmitter.cs
- DesignerDataStoredProcedure.cs
- SystemIcons.cs
- Stack.cs
- MessageProtectionOrder.cs
- TrackBar.cs
- PackageDigitalSignatureManager.cs
- TextSelection.cs
- PerformanceCounterPermission.cs
- SqlDataReaderSmi.cs
- Point3DKeyFrameCollection.cs
- BlockUIContainer.cs
- WebSysDescriptionAttribute.cs
- ViewgenGatekeeper.cs
- PageBuildProvider.cs
- CharStorage.cs
- FileDetails.cs
- X509AsymmetricSecurityKey.cs
- TextElementCollection.cs
- SQLSingle.cs
- DictionaryContent.cs
- PageVisual.cs
- OciLobLocator.cs
- DataColumnPropertyDescriptor.cs
- DecimalKeyFrameCollection.cs
- TracedNativeMethods.cs
- DocumentScope.cs
- IPEndPoint.cs
- PageSettings.cs
- SessionStateSection.cs
- LayoutUtils.cs
- ManualResetEvent.cs
- FunctionQuery.cs
- ListControlConvertEventArgs.cs
- SafeFileMappingHandle.cs
- relpropertyhelper.cs
- ItemCheckEvent.cs
- TextViewBase.cs
- ColorMatrix.cs
- WebPartEditorCancelVerb.cs
- HtmlInputPassword.cs
- HwndMouseInputProvider.cs
- SeekableReadStream.cs
- FontWeightConverter.cs
- TreeBuilder.cs
- ToolbarAUtomationPeer.cs
- PrefixHandle.cs
- UnauthorizedWebPart.cs
- ClientConfigPaths.cs
- TextSelectionProcessor.cs
- FileDataSourceCache.cs
- FreezableCollection.cs
- WithParamAction.cs
- XmlAttributeProperties.cs
- Container.cs
- ContextMenu.cs
- AuthenticateEventArgs.cs
- SelectionEditor.cs
- OptimalTextSource.cs
- CodeExporter.cs
- BuildManagerHost.cs
- Pen.cs
- ThreadAbortException.cs
- BitmapEffectDrawingContextWalker.cs
- ContentElementAutomationPeer.cs
- Exceptions.cs
- GenericIdentity.cs
- ForwardPositionQuery.cs
- Literal.cs
- HtmlEmptyTagControlBuilder.cs
- XmlIgnoreAttribute.cs
- MailBnfHelper.cs