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
- LayoutEditorPart.cs
- Pts.cs
- WsatConfiguration.cs
- Polyline.cs
- TargetException.cs
- InstanceHandleReference.cs
- XmlFileEditor.cs
- PerformanceCounterManager.cs
- WindowsScroll.cs
- LiteralSubsegment.cs
- CodePageUtils.cs
- _Events.cs
- RewritingValidator.cs
- TextWriterTraceListener.cs
- DataGridTextBox.cs
- HtmlSelect.cs
- TrustLevel.cs
- CodeCompileUnit.cs
- DataServiceEntityAttribute.cs
- Currency.cs
- AutoGeneratedFieldProperties.cs
- PhonemeEventArgs.cs
- MultilineStringConverter.cs
- MDIWindowDialog.cs
- ToolstripProfessionalRenderer.cs
- ConfigurationValues.cs
- XmlValidatingReaderImpl.cs
- CounterSample.cs
- InplaceBitmapMetadataWriter.cs
- PropertyMap.cs
- Cursor.cs
- InertiaRotationBehavior.cs
- FamilyMap.cs
- ValueType.cs
- XmlSchemaObjectCollection.cs
- SingleQueryOperator.cs
- PropertiesTab.cs
- TcpTransportManager.cs
- CommonProperties.cs
- RegisteredArrayDeclaration.cs
- WasEndpointConfigContainer.cs
- FormViewUpdatedEventArgs.cs
- ClientScriptManager.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- Select.cs
- ECDiffieHellmanCng.cs
- DocumentAutomationPeer.cs
- SymbolTable.cs
- WebPart.cs
- PrimitiveType.cs
- MultitargetUtil.cs
- ConfigurationStrings.cs
- StatusBarPanelClickEvent.cs
- CounterSample.cs
- CompressionTransform.cs
- MailDefinition.cs
- QilInvoke.cs
- EventsTab.cs
- TextFormatterHost.cs
- PassportAuthentication.cs
- LayoutDump.cs
- DetailsView.cs
- HostProtectionPermission.cs
- AudioFormatConverter.cs
- MessageSecurityTokenVersion.cs
- XhtmlBasicValidationSummaryAdapter.cs
- PathFigureCollectionConverter.cs
- CultureInfo.cs
- PropertyDescriptorGridEntry.cs
- ServiceBusyException.cs
- BinaryReader.cs
- DataGridRelationshipRow.cs
- Semaphore.cs
- TypeBuilderInstantiation.cs
- StylusPointPropertyInfoDefaults.cs
- XsltLibrary.cs
- AuthenticationSchemesHelper.cs
- ProfileSettings.cs
- Exceptions.cs
- EventHandlersDesigner.cs
- PersonalizationStateInfoCollection.cs
- ErrorProvider.cs
- CompositeScriptReference.cs
- PLINQETWProvider.cs
- DependencyObjectProvider.cs
- RestHandlerFactory.cs
- FigureHelper.cs
- ErrorHandler.cs
- DocumentGridContextMenu.cs
- Focus.cs
- StylusPlugInCollection.cs
- DocumentGridPage.cs
- HttpApplicationFactory.cs
- WebProxyScriptElement.cs
- Update.cs
- TransactionWaitAsyncResult.cs
- LinqDataSourceDisposeEventArgs.cs
- CodeBlockBuilder.cs
- Int32Converter.cs
- TextFormatterHost.cs