Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlHierarchyData.cs
- BuilderInfo.cs
- XamlFigureLengthSerializer.cs
- VirtualDirectoryMapping.cs
- GlyphingCache.cs
- TripleDESCryptoServiceProvider.cs
- KnownAssembliesSet.cs
- AdRotator.cs
- XmlUTF8TextWriter.cs
- TransactionProtocolConverter.cs
- MenuItemBinding.cs
- DigitalSignature.cs
- DataGridViewCellParsingEventArgs.cs
- SamlAttributeStatement.cs
- ThicknessAnimation.cs
- ClusterSafeNativeMethods.cs
- DesignerDataConnection.cs
- FormViewAutoFormat.cs
- DataSysAttribute.cs
- OleDbError.cs
- EncoderReplacementFallback.cs
- UiaCoreTypesApi.cs
- SqlParameterizer.cs
- SectionXmlInfo.cs
- BamlTreeNode.cs
- ParameterInfo.cs
- WebPartConnectionsCancelEventArgs.cs
- ImageSourceConverter.cs
- TableRowGroup.cs
- DynamicDocumentPaginator.cs
- OperationResponse.cs
- RuleSettings.cs
- WindowsSysHeader.cs
- PropertyGroupDescription.cs
- EventPropertyMap.cs
- ParameterBuilder.cs
- LinqDataSourceDisposeEventArgs.cs
- Grant.cs
- SQLInt16.cs
- MbpInfo.cs
- ServicesUtilities.cs
- ReverseComparer.cs
- DrawListViewColumnHeaderEventArgs.cs
- GradientStop.cs
- GZipDecoder.cs
- isolationinterop.cs
- MessageRpc.cs
- AnimationStorage.cs
- MsmqAppDomainProtocolHandler.cs
- EventLogLink.cs
- WebPartDeleteVerb.cs
- Calendar.cs
- EventRecord.cs
- mediaeventshelper.cs
- StringToken.cs
- xsdvalidator.cs
- WithStatement.cs
- DesignerVerbToolStripMenuItem.cs
- ConfigurationValidatorAttribute.cs
- RegexGroupCollection.cs
- DefaultBindingPropertyAttribute.cs
- BrowserCapabilitiesFactoryBase.cs
- RTLAwareMessageBox.cs
- IImplicitResourceProvider.cs
- BufferModeSettings.cs
- ColumnMapTranslator.cs
- ThrowHelper.cs
- ColorTransformHelper.cs
- QuaternionAnimationBase.cs
- IsolatedStorageFileStream.cs
- SQLBinaryStorage.cs
- PeerNearMe.cs
- HighlightVisual.cs
- ParenthesizePropertyNameAttribute.cs
- CompilationUtil.cs
- UserMapPath.cs
- StateManagedCollection.cs
- CardSpaceSelector.cs
- SystemIPv4InterfaceProperties.cs
- ResXFileRef.cs
- OrElse.cs
- ListItemCollection.cs
- XPathDocumentIterator.cs
- DependencyProperty.cs
- StorageConditionPropertyMapping.cs
- ToolStripArrowRenderEventArgs.cs
- QuaternionValueSerializer.cs
- IInstanceContextProvider.cs
- TextBoxAutoCompleteSourceConverter.cs
- LoadRetryHandler.cs
- DataGridViewComboBoxEditingControl.cs
- XmlMemberMapping.cs
- PropertyGeneratedEventArgs.cs
- RegexCode.cs
- EditableRegion.cs
- InitializationEventAttribute.cs
- DBConnection.cs
- ConfigurationElement.cs
- BaseResourcesBuildProvider.cs
- LayoutExceptionEventArgs.cs