Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- SqlLiftWhereClauses.cs
- ImageUrlEditor.cs
- GradientSpreadMethodValidation.cs
- ConfigurationPermission.cs
- NativeRightsManagementAPIsStructures.cs
- WebPartMovingEventArgs.cs
- PointCollection.cs
- RenderingEventArgs.cs
- ProgressBarAutomationPeer.cs
- XmlLangPropertyAttribute.cs
- DataPagerCommandEventArgs.cs
- LoginView.cs
- PersistChildrenAttribute.cs
- elementinformation.cs
- URLBuilder.cs
- XDRSchema.cs
- ResolveMatchesCD1.cs
- ProtocolsConfigurationEntry.cs
- MetafileHeaderWmf.cs
- Evidence.cs
- XPathExpr.cs
- LayoutTable.cs
- DashStyle.cs
- BamlTreeMap.cs
- JoinQueryOperator.cs
- BindableAttribute.cs
- XmlSecureResolver.cs
- CompilerCollection.cs
- PropertyToken.cs
- AnonymousIdentificationModule.cs
- MethodToken.cs
- _BufferOffsetSize.cs
- ConstraintManager.cs
- CheckBox.cs
- DesignOnlyAttribute.cs
- PageParserFilter.cs
- UpdatePanelTriggerCollection.cs
- XmlQueryOutput.cs
- Component.cs
- PowerModeChangedEventArgs.cs
- Compiler.cs
- SqlConnectionString.cs
- UnmanagedMarshal.cs
- ImmutablePropertyDescriptorGridEntry.cs
- StoreItemCollection.Loader.cs
- GenericsNotImplementedException.cs
- BindableTemplateBuilder.cs
- EllipseGeometry.cs
- Update.cs
- VisualStyleElement.cs
- TypeHelper.cs
- RotateTransform.cs
- WmlObjectListAdapter.cs
- VectorCollectionConverter.cs
- FormattedText.cs
- WeakEventTable.cs
- OutputCacheModule.cs
- AttributedMetaModel.cs
- NonBatchDirectoryCompiler.cs
- MemoryFailPoint.cs
- TransactionChannel.cs
- WebServiceFaultDesigner.cs
- Semaphore.cs
- ColumnMapProcessor.cs
- SQLBinary.cs
- CLSCompliantAttribute.cs
- HtmlDocument.cs
- HtmlToClrEventProxy.cs
- EventSetter.cs
- AnnotationComponentChooser.cs
- XmlSchemas.cs
- TransactionFilter.cs
- arclist.cs
- WebPartHeaderCloseVerb.cs
- OneOfScalarConst.cs
- SymbolMethod.cs
- ISFClipboardData.cs
- RuleRef.cs
- SupportingTokenBindingElement.cs
- InternalDuplexChannelListener.cs
- XmlUtil.cs
- TypeListConverter.cs
- AutoSizeComboBox.cs
- HashHelper.cs
- KnownBoxes.cs
- CqlWriter.cs
- CheckBox.cs
- XmlEncodedRawTextWriter.cs
- ImpersonateTokenRef.cs
- Schema.cs
- TraceProvider.cs
- BooleanProjectedSlot.cs
- Visual3D.cs
- PublisherIdentityPermission.cs
- KeyValuePair.cs
- NameSpaceExtractor.cs
- XmlDataFileEditor.cs
- MultiByteCodec.cs
- PeerHelpers.cs
- SqlDataRecord.cs