Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BinHexDecoder.cs
- ConfigsHelper.cs
- ComponentCollection.cs
- PropertyRef.cs
- ExpanderAutomationPeer.cs
- ResXFileRef.cs
- NetworkInformationException.cs
- CompareValidator.cs
- RtfNavigator.cs
- ConnectionStringsSection.cs
- ColorConverter.cs
- VectorConverter.cs
- NativeCompoundFileAPIs.cs
- FrameAutomationPeer.cs
- RowUpdatingEventArgs.cs
- QilGenerator.cs
- Point3DAnimationUsingKeyFrames.cs
- ConfigurationSectionGroup.cs
- __Filters.cs
- CalendarSelectionChangedEventArgs.cs
- SchemaLookupTable.cs
- UnhandledExceptionEventArgs.cs
- MethodCallConverter.cs
- BulletedListDesigner.cs
- Span.cs
- WindowsScrollBarBits.cs
- ApplicationId.cs
- GenericUI.cs
- RtfToken.cs
- SchemaNames.cs
- XmlSchemaInclude.cs
- SqlDataSourceSummaryPanel.cs
- TableFieldsEditor.cs
- StrongNameKeyPair.cs
- CollectionTraceRecord.cs
- NotifyCollectionChangedEventArgs.cs
- IteratorDescriptor.cs
- DataTemplateSelector.cs
- SecureStringHasher.cs
- EdmTypeAttribute.cs
- AppDomainProtocolHandler.cs
- MethodExecutor.cs
- ListBox.cs
- CheckableControlBaseAdapter.cs
- BorderGapMaskConverter.cs
- DesignerActionUIService.cs
- _WebProxyDataBuilder.cs
- BinHexDecoder.cs
- ProfileSection.cs
- CodeParameterDeclarationExpressionCollection.cs
- AdjustableArrowCap.cs
- RTLAwareMessageBox.cs
- Renderer.cs
- DocumentNUp.cs
- Hashtable.cs
- DataMemberListEditor.cs
- HGlobalSafeHandle.cs
- RichTextBoxAutomationPeer.cs
- ValidationErrorCollection.cs
- HtmlTextViewAdapter.cs
- DataBinding.cs
- XmlSchemaExporter.cs
- Calendar.cs
- ExtendedProtectionPolicyElement.cs
- SamlAdvice.cs
- OrderingExpression.cs
- HierarchicalDataSourceConverter.cs
- Component.cs
- XmlCompatibilityReader.cs
- util.cs
- XamlSerializerUtil.cs
- TrackingMemoryStreamFactory.cs
- bidPrivateBase.cs
- UserPersonalizationStateInfo.cs
- SafeWaitHandle.cs
- InkCollectionBehavior.cs
- PerfCounterSection.cs
- DataReaderContainer.cs
- TypeFieldSchema.cs
- WebPartChrome.cs
- SqlInfoMessageEvent.cs
- OleDbWrapper.cs
- FormatConvertedBitmap.cs
- ColumnHeaderConverter.cs
- panel.cs
- RequestCacheEntry.cs
- SqlFactory.cs
- CapabilitiesUse.cs
- MatrixUtil.cs
- SafeRegistryHandle.cs
- LabelAutomationPeer.cs
- AQNBuilder.cs
- SqlDataSourceEnumerator.cs
- RestClientProxyHandler.cs
- OrthographicCamera.cs
- Model3D.cs
- smtpconnection.cs
- ChangeBlockUndoRecord.cs
- InArgument.cs
- NameNode.cs