Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- UpdateRecord.cs
- CheckBoxList.cs
- RTLAwareMessageBox.cs
- Match.cs
- IgnoreFileBuildProvider.cs
- EntryPointNotFoundException.cs
- BrowserCapabilitiesCodeGenerator.cs
- Pair.cs
- DBConcurrencyException.cs
- DesignColumnCollection.cs
- StrokeNodeOperations2.cs
- ConfigXmlCDataSection.cs
- NotFiniteNumberException.cs
- RightsManagementPermission.cs
- HttpContext.cs
- ParameterCollection.cs
- ListSortDescriptionCollection.cs
- FactoryMaker.cs
- XmlElementAttributes.cs
- TextInfo.cs
- ProbeDuplex11AsyncResult.cs
- ObjectItemAttributeAssemblyLoader.cs
- ReflectEventDescriptor.cs
- DataGridViewLinkColumn.cs
- AdCreatedEventArgs.cs
- ShutDownListener.cs
- HMACSHA384.cs
- KeyValueConfigurationCollection.cs
- HideDisabledControlAdapter.cs
- ContainerFilterService.cs
- _FtpControlStream.cs
- UriExt.cs
- ReadOnlyNameValueCollection.cs
- UIElementParaClient.cs
- GreenMethods.cs
- DecimalStorage.cs
- BlockUIContainer.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- MexTcpBindingElement.cs
- Policy.cs
- WebPartChrome.cs
- QueryParameter.cs
- InProcStateClientManager.cs
- DBBindings.cs
- X509CertificateCollection.cs
- UIElement3D.cs
- PeerNameRecord.cs
- SerializationInfoEnumerator.cs
- SoapAttributeAttribute.cs
- TraceUtility.cs
- XmlSchemaObject.cs
- PointCollectionValueSerializer.cs
- Ipv6Element.cs
- SerializationSectionGroup.cs
- BooleanKeyFrameCollection.cs
- GridViewRow.cs
- XamlReaderHelper.cs
- GraphicsState.cs
- EntityDataSourceStatementEditorForm.cs
- SubMenuStyle.cs
- ActivityInstance.cs
- FixedSOMPageElement.cs
- Debug.cs
- StructuredTypeInfo.cs
- FamilyMap.cs
- RecognizedPhrase.cs
- BitmapEffectOutputConnector.cs
- JavaScriptSerializer.cs
- IndexExpression.cs
- SecurityTokenTypes.cs
- Operand.cs
- MemoryPressure.cs
- TypeSystem.cs
- WindowsScrollBarBits.cs
- OleDbConnectionFactory.cs
- WorkflowInstanceExtensionProvider.cs
- ScaleTransform3D.cs
- KeyNotFoundException.cs
- ChooseAction.cs
- ModelTreeEnumerator.cs
- DeploymentSection.cs
- XmlILModule.cs
- GlyphInfoList.cs
- ChtmlTextWriter.cs
- StorageScalarPropertyMapping.cs
- OlePropertyStructs.cs
- WpfKnownType.cs
- ManagementNamedValueCollection.cs
- DetailsView.cs
- IndexedWhereQueryOperator.cs
- TextBoxBase.cs
- FixedDocument.cs
- Graphics.cs
- ParserContext.cs
- UrlPath.cs
- SqlDataSourceAdvancedOptionsForm.cs
- SetUserLanguageRequest.cs
- XmlSchemaProviderAttribute.cs
- XmlSchemaInferenceException.cs
- CompilationSection.cs