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
- XmlSchemaInfo.cs
- _SslSessionsCache.cs
- List.cs
- XmlWhitespace.cs
- FormViewInsertEventArgs.cs
- HttpCapabilitiesSectionHandler.cs
- StringConcat.cs
- AutomationEvent.cs
- AlphabeticalEnumConverter.cs
- GridViewRow.cs
- ValidationPropertyAttribute.cs
- NativeDirectoryServicesQueryAPIs.cs
- BatchParser.cs
- AtlasWeb.Designer.cs
- WebPartTracker.cs
- ToolStripGripRenderEventArgs.cs
- ProjectionCamera.cs
- util.cs
- StyleBamlTreeBuilder.cs
- printdlgexmarshaler.cs
- NGCSerializerAsync.cs
- ClientSettingsSection.cs
- Gdiplus.cs
- DataControlFieldHeaderCell.cs
- ResetableIterator.cs
- DbProviderConfigurationHandler.cs
- InvalidCastException.cs
- CatalogPartDesigner.cs
- _LocalDataStore.cs
- XmlAttributeOverrides.cs
- TdsParserStateObject.cs
- CounterCreationDataCollection.cs
- FilterInvalidBodyAccessException.cs
- SchemaEntity.cs
- BookmarkScope.cs
- TextPattern.cs
- Registration.cs
- MetadataArtifactLoader.cs
- TextEffectResolver.cs
- FixedSOMGroup.cs
- CalendarSelectionChangedEventArgs.cs
- PenCursorManager.cs
- CodeTryCatchFinallyStatement.cs
- GCHandleCookieTable.cs
- Expander.cs
- Variable.cs
- CompilationSection.cs
- UiaCoreTypesApi.cs
- MachineKeySection.cs
- SqlBooleanMismatchVisitor.cs
- Adorner.cs
- FullTextBreakpoint.cs
- CachedPathData.cs
- DateTimeParse.cs
- FixedHyperLink.cs
- BasicHttpMessageSecurity.cs
- ExpressionBuilder.cs
- InternalControlCollection.cs
- ZipIOCentralDirectoryFileHeader.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- XmlILConstructAnalyzer.cs
- GcSettings.cs
- BitmapEffect.cs
- ProtocolsConfigurationHandler.cs
- ModelToObjectValueConverter.cs
- StringSorter.cs
- Geometry3D.cs
- UniqueID.cs
- InvalidProgramException.cs
- XmlRootAttribute.cs
- UIPermission.cs
- BroadcastEventHelper.cs
- BindingMemberInfo.cs
- DataGridViewRowCollection.cs
- WebBrowserBase.cs
- SchemaInfo.cs
- LinearGradientBrush.cs
- RemoteCryptoTokenProvider.cs
- WebPartsSection.cs
- DependencyObjectPropertyDescriptor.cs
- VarInfo.cs
- SchemaCompiler.cs
- WebBrowserDocumentCompletedEventHandler.cs
- FieldAccessException.cs
- AdornerHitTestResult.cs
- SoapFaultCodes.cs
- DataServiceHostFactory.cs
- DataTableClearEvent.cs
- PeerNearMe.cs
- XamlToRtfWriter.cs
- TranslateTransform.cs
- ThousandthOfEmRealDoubles.cs
- HuffModule.cs
- ErrorHandler.cs
- GcHandle.cs
- ValidationSummary.cs
- StateWorkerRequest.cs
- ProcessRequestArgs.cs
- HwndKeyboardInputProvider.cs
- KnownColorTable.cs