Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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. // //----------------------------------------------------------------------------- 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
- HtmlInputText.cs
- TextFormatter.cs
- GreenMethods.cs
- StretchValidation.cs
- NativeMethods.cs
- SmiEventSink_Default.cs
- SapiRecognizer.cs
- TextTreeFixupNode.cs
- HttpCachePolicy.cs
- DataRelationCollection.cs
- DataGridLinkButton.cs
- PassportPrincipal.cs
- WebBrowsableAttribute.cs
- ChannelManager.cs
- EntityRecordInfo.cs
- SqlPersonalizationProvider.cs
- MultiTargetingUtil.cs
- ForceCopyBuildProvider.cs
- ProtocolsConfiguration.cs
- InputReportEventArgs.cs
- FlowLayoutPanel.cs
- InvokeFunc.cs
- IgnoreFileBuildProvider.cs
- XhtmlBasicLinkAdapter.cs
- PersonalizablePropertyEntry.cs
- ResourceAssociationType.cs
- TabletCollection.cs
- RowTypeElement.cs
- WebScriptMetadataFormatter.cs
- FixedSOMPageElement.cs
- QueryOperatorEnumerator.cs
- Pen.cs
- ComponentGuaranteesAttribute.cs
- RowVisual.cs
- CannotUnloadAppDomainException.cs
- XmlSchemaSimpleTypeRestriction.cs
- IntSecurity.cs
- WeakEventTable.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- UInt32Converter.cs
- ThumbAutomationPeer.cs
- ISFTagAndGuidCache.cs
- DataGridViewCellMouseEventArgs.cs
- EdmProviderManifest.cs
- TemplateColumn.cs
- LambdaCompiler.Binary.cs
- __TransparentProxy.cs
- UserUseLicenseDictionaryLoader.cs
- UnknownWrapper.cs
- XmlAnyElementAttributes.cs
- CultureMapper.cs
- SurrogateChar.cs
- FormatVersion.cs
- streamingZipPartStream.cs
- WebPartHelpVerb.cs
- PreservationFileReader.cs
- NonVisualControlAttribute.cs
- ImageSource.cs
- DataRecord.cs
- PrinterResolution.cs
- DateTimeFormat.cs
- BitmapImage.cs
- DataSourceCache.cs
- DataViewManagerListItemTypeDescriptor.cs
- DefaultHttpHandler.cs
- Literal.cs
- BCLDebug.cs
- CalloutQueueItem.cs
- SkipQueryOptionExpression.cs
- ParserExtension.cs
- WebDescriptionAttribute.cs
- LayoutEngine.cs
- XmlQueryCardinality.cs
- HtmlDocument.cs
- FormCollection.cs
- ImageSource.cs
- DataStorage.cs
- FileLevelControlBuilderAttribute.cs
- ImageMetadata.cs
- GridSplitterAutomationPeer.cs
- LogManagementAsyncResult.cs
- Win32Exception.cs
- SafeLocalMemHandle.cs
- SHA256Managed.cs
- SqlDataSource.cs
- XNameConverter.cs
- DebuggerAttributes.cs
- AdornerPresentationContext.cs
- SymbolResolver.cs
- GlyphManager.cs
- AssemblyBuilder.cs
- MessageBox.cs
- StrokeCollection2.cs
- QilXmlWriter.cs
- CodeTypeConstructor.cs
- DeclarationUpdate.cs
- GlyphRunDrawing.cs
- ContentElementAutomationPeer.cs
- PermissionListSet.cs
- AttributeProviderAttribute.cs