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
- FormsAuthenticationTicket.cs
- XmlEntity.cs
- ActiveXSerializer.cs
- PromptStyle.cs
- DoubleAnimationUsingKeyFrames.cs
- KeyPullup.cs
- Command.cs
- FlowThrottle.cs
- TableRowCollection.cs
- CommentAction.cs
- Rect3D.cs
- Rotation3DKeyFrameCollection.cs
- PopupControlService.cs
- TextWriter.cs
- Point4D.cs
- BaseDataList.cs
- Vector3D.cs
- RSACryptoServiceProvider.cs
- TextBox.cs
- TrackingProfile.cs
- VisualBasicExpressionConverter.cs
- Mappings.cs
- MouseBinding.cs
- GridSplitterAutomationPeer.cs
- RoleManagerSection.cs
- DataGridViewComboBoxEditingControl.cs
- PartitionResolver.cs
- storepermission.cs
- DataServices.cs
- Parser.cs
- IIS7UserPrincipal.cs
- XmlObjectSerializerReadContextComplex.cs
- NameNode.cs
- DataGridCaption.cs
- AuthenticationModuleElement.cs
- IRCollection.cs
- SwitchLevelAttribute.cs
- AssemblyHash.cs
- ItemsControlAutomationPeer.cs
- RowToFieldTransformer.cs
- StrokeNode.cs
- ReachDocumentReferenceCollectionSerializer.cs
- SelectManyQueryOperator.cs
- MethodInfo.cs
- MessagePartDescription.cs
- CompilerTypeWithParams.cs
- RadioButton.cs
- Deflater.cs
- BindingExpressionUncommonField.cs
- AssemblyAssociatedContentFileAttribute.cs
- CaseInsensitiveOrdinalStringComparer.cs
- SqlDependencyUtils.cs
- ScriptControlDescriptor.cs
- Adorner.cs
- BStrWrapper.cs
- XmlDataDocument.cs
- ReadOnlyDictionary.cs
- AppliedDeviceFiltersEditor.cs
- RegexGroupCollection.cs
- X509SubjectKeyIdentifierClause.cs
- SecurityManager.cs
- AnnotationStore.cs
- ClickablePoint.cs
- UICuesEvent.cs
- DetailsViewInsertEventArgs.cs
- WebBrowserNavigatedEventHandler.cs
- PropertyChangingEventArgs.cs
- DiagnosticsConfiguration.cs
- EntityPropertyMappingAttribute.cs
- ObsoleteAttribute.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- OrderByLifter.cs
- ApplicationDirectory.cs
- InputProviderSite.cs
- EntityDataSourceValidationException.cs
- SchemaTableOptionalColumn.cs
- ReadOnlyNameValueCollection.cs
- DynamicMethod.cs
- AutomationPropertyInfo.cs
- _ListenerResponseStream.cs
- ConstantProjectedSlot.cs
- SamlSerializer.cs
- WorkflowRuntimeServiceElementCollection.cs
- WebBrowserUriTypeConverter.cs
- _FixedSizeReader.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- Crc32Helper.cs
- BaseProcessProtocolHandler.cs
- ListenerSessionConnection.cs
- Aggregates.cs
- PriorityQueue.cs
- Trustee.cs
- Ipv6Element.cs
- Simplifier.cs
- WeakReferenceEnumerator.cs
- MenuItemBinding.cs
- typedescriptorpermissionattribute.cs
- ConfigXmlReader.cs
- EncryptedPackageFilter.cs
- DbParameterHelper.cs