Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripOverflowButton.cs / 1305376 / 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
- VariantWrapper.cs
- SmtpClient.cs
- EpmTargetPathSegment.cs
- SoapDocumentServiceAttribute.cs
- NativeRightsManagementAPIsStructures.cs
- wmiprovider.cs
- BmpBitmapEncoder.cs
- StatusBarDrawItemEvent.cs
- DeferredTextReference.cs
- LocatorManager.cs
- FileInfo.cs
- StatusBarPanelClickEvent.cs
- CursorInteropHelper.cs
- HttpProfileBase.cs
- COM2Enum.cs
- StylusSystemGestureEventArgs.cs
- EventProvider.cs
- DiscreteKeyFrames.cs
- OleDbCommandBuilder.cs
- ReferenceConverter.cs
- TextEditorLists.cs
- DesigntimeLicenseContext.cs
- Region.cs
- RequestCacheEntry.cs
- SourceLineInfo.cs
- PlainXmlDeserializer.cs
- TextPointer.cs
- EmptyStringExpandableObjectConverter.cs
- InternalConfigHost.cs
- Transform3DGroup.cs
- UniqueIdentifierService.cs
- X509Utils.cs
- ApplicationInterop.cs
- PathStreamGeometryContext.cs
- AttributeEmitter.cs
- OracleInfoMessageEventArgs.cs
- TypefaceCollection.cs
- Transform.cs
- dbdatarecord.cs
- RegexReplacement.cs
- NameTable.cs
- MiniModule.cs
- DataControlButton.cs
- ILGen.cs
- smtppermission.cs
- BinaryWriter.cs
- CodeMemberProperty.cs
- ApplicationSettingsBase.cs
- FtpCachePolicyElement.cs
- TextTreeText.cs
- ResourceCodeDomSerializer.cs
- MetadataItem_Static.cs
- WorkflowStateRollbackService.cs
- SHA256.cs
- WebConfigurationManager.cs
- ManagementInstaller.cs
- FileIOPermission.cs
- AssemblyBuilder.cs
- WinFormsSpinner.cs
- CodeVariableReferenceExpression.cs
- HtmlLink.cs
- WebPartTransformer.cs
- SqlFunctionAttribute.cs
- AutomationTextAttribute.cs
- InvalidComObjectException.cs
- TypeSemantics.cs
- ProcessHostServerConfig.cs
- SmtpException.cs
- CompensationHandlingFilter.cs
- DataError.cs
- HGlobalSafeHandle.cs
- SqlDataSourceCommandParser.cs
- PropertyPushdownHelper.cs
- FixedDSBuilder.cs
- _TransmitFileOverlappedAsyncResult.cs
- XmlSchemaSimpleContent.cs
- QueryContinueDragEvent.cs
- ChameleonKey.cs
- AmbientLight.cs
- CompilerWrapper.cs
- CodeAccessPermission.cs
- OperationPickerDialog.cs
- PenContexts.cs
- MethodSignatureGenerator.cs
- RootDesignerSerializerAttribute.cs
- WebPartDisplayModeEventArgs.cs
- Scene3D.cs
- TypeReference.cs
- XpsPartBase.cs
- DataGridToolTip.cs
- AppDomainProtocolHandler.cs
- MatrixTransform.cs
- ExtractorMetadata.cs
- EdmFunction.cs
- NameValuePair.cs
- NumberAction.cs
- DataGridViewRowPrePaintEventArgs.cs
- IntMinMaxAggregationOperator.cs
- WindowsIdentity.cs
- UniqueTransportManagerRegistration.cs