Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripOverflow.cs / 1 / ToolStripOverflow.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.Diagnostics.CodeAnalysis; using System.Windows.Forms.Layout; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; ////// /// ToolStripOverflow /// [ComVisible(true)] [ClassInterface(ClassInterfaceType.AutoDispatch)] public class ToolStripOverflow : ToolStripDropDown, IArrangedElement { #if DEBUG internal static readonly TraceSwitch PopupLayoutDebug = new TraceSwitch("PopupLayoutDebug", "Debug ToolStripPopup Layout code"); #else internal static readonly TraceSwitch PopupLayoutDebug; #endif private ToolStripOverflowButton ownerItem; ///public ToolStripOverflow (ToolStripItem parentItem) : base(parentItem) { if (parentItem == null) { throw new ArgumentNullException("parentItem"); } ownerItem = parentItem as ToolStripOverflowButton; } /// protected internal override ToolStripItemCollection DisplayedItems { get { if (ParentToolStrip != null) { ToolStripItemCollection items = ParentToolStrip.OverflowItems; return items; } return new ToolStripItemCollection(null, false); } } public override ToolStripItemCollection Items { get { return new ToolStripItemCollection(null, /*ownedCollection=*/false, /*readonly=*/true); } } private ToolStrip ParentToolStrip { get { if (ownerItem != null) { return ownerItem.ParentToolStrip; } return null; } } /// /// ArrangedElementCollection IArrangedElement.Children { get { return DisplayedItems; } } /// /// IArrangedElement IArrangedElement.Container { get { return ParentInternal; } } /// /// bool IArrangedElement.ParticipatesInLayout { get { return GetState(STATE_VISIBLE); } } /// /// PropertyStore IArrangedElement.Properties { get { return Properties; } } /// /// void IArrangedElement.SetBounds(Rectangle bounds, BoundsSpecified specified) { SetBoundsCore(bounds.X, bounds.Y, bounds.Width, bounds.Height, specified); } /// /// /// Summary of CreateLayoutEngine. /// /// public override LayoutEngine LayoutEngine { get { return FlowLayout.Instance; } } protected override AccessibleObject CreateAccessibilityInstance() { return new ToolStripOverflowAccessibleObject(this); } [SuppressMessage("Microsoft.Security", "CA2119:SealMethodsThatSatisfyPrivateInterfaces")] public override Size GetPreferredSize(Size constrainingSize) { constrainingSize.Width = 200; return base.GetPreferredSize(constrainingSize); } protected override void OnLayout(LayoutEventArgs e) { if (ParentToolStrip != null && ParentToolStrip.IsInDesignMode) { if (FlowLayout.GetFlowDirection(this) != FlowDirection.TopDown) { FlowLayout.SetFlowDirection(this, FlowDirection.TopDown); } if (FlowLayout.GetWrapContents(this)) { FlowLayout.SetWrapContents(this, false); } } else { if (FlowLayout.GetFlowDirection(this) != FlowDirection.LeftToRight) { FlowLayout.SetFlowDirection(this, FlowDirection.LeftToRight); } if (!FlowLayout.GetWrapContents(this)) { FlowLayout.SetWrapContents(this, true); } } base.OnLayout(e); } ///protected override void SetDisplayedItems() { // do nothing here.... this is really for the setting the overflow/displayed items on the // main winbar. Our working item collection is our displayed item collection... calling // base would clear it out. Size biggestItemSize = Size.Empty; for (int j = 0; j < DisplayedItems.Count; j++) { ToolStripItem item = DisplayedItems[j]; if (((IArrangedElement)item).ParticipatesInLayout) { HasVisibleItems = true; biggestItemSize = LayoutUtils.UnionSizes(biggestItemSize, item.Bounds.Size); } } SetLargestItemSize(biggestItemSize); } private class ToolStripOverflowAccessibleObject : ToolStripAccessibleObject { public ToolStripOverflowAccessibleObject(ToolStripOverflow owner) : base(owner) { } public override AccessibleObject GetChild(int index) { return ((ToolStripOverflow)Owner).DisplayedItems[index].AccessibilityObject; } public override int GetChildCount() { return ((ToolStripOverflow)Owner).DisplayedItems.Count; } } } } // 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.Diagnostics.CodeAnalysis; using System.Windows.Forms.Layout; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; ////// /// ToolStripOverflow /// [ComVisible(true)] [ClassInterface(ClassInterfaceType.AutoDispatch)] public class ToolStripOverflow : ToolStripDropDown, IArrangedElement { #if DEBUG internal static readonly TraceSwitch PopupLayoutDebug = new TraceSwitch("PopupLayoutDebug", "Debug ToolStripPopup Layout code"); #else internal static readonly TraceSwitch PopupLayoutDebug; #endif private ToolStripOverflowButton ownerItem; ///public ToolStripOverflow (ToolStripItem parentItem) : base(parentItem) { if (parentItem == null) { throw new ArgumentNullException("parentItem"); } ownerItem = parentItem as ToolStripOverflowButton; } /// protected internal override ToolStripItemCollection DisplayedItems { get { if (ParentToolStrip != null) { ToolStripItemCollection items = ParentToolStrip.OverflowItems; return items; } return new ToolStripItemCollection(null, false); } } public override ToolStripItemCollection Items { get { return new ToolStripItemCollection(null, /*ownedCollection=*/false, /*readonly=*/true); } } private ToolStrip ParentToolStrip { get { if (ownerItem != null) { return ownerItem.ParentToolStrip; } return null; } } /// /// ArrangedElementCollection IArrangedElement.Children { get { return DisplayedItems; } } /// /// IArrangedElement IArrangedElement.Container { get { return ParentInternal; } } /// /// bool IArrangedElement.ParticipatesInLayout { get { return GetState(STATE_VISIBLE); } } /// /// PropertyStore IArrangedElement.Properties { get { return Properties; } } /// /// void IArrangedElement.SetBounds(Rectangle bounds, BoundsSpecified specified) { SetBoundsCore(bounds.X, bounds.Y, bounds.Width, bounds.Height, specified); } /// /// /// Summary of CreateLayoutEngine. /// /// public override LayoutEngine LayoutEngine { get { return FlowLayout.Instance; } } protected override AccessibleObject CreateAccessibilityInstance() { return new ToolStripOverflowAccessibleObject(this); } [SuppressMessage("Microsoft.Security", "CA2119:SealMethodsThatSatisfyPrivateInterfaces")] public override Size GetPreferredSize(Size constrainingSize) { constrainingSize.Width = 200; return base.GetPreferredSize(constrainingSize); } protected override void OnLayout(LayoutEventArgs e) { if (ParentToolStrip != null && ParentToolStrip.IsInDesignMode) { if (FlowLayout.GetFlowDirection(this) != FlowDirection.TopDown) { FlowLayout.SetFlowDirection(this, FlowDirection.TopDown); } if (FlowLayout.GetWrapContents(this)) { FlowLayout.SetWrapContents(this, false); } } else { if (FlowLayout.GetFlowDirection(this) != FlowDirection.LeftToRight) { FlowLayout.SetFlowDirection(this, FlowDirection.LeftToRight); } if (!FlowLayout.GetWrapContents(this)) { FlowLayout.SetWrapContents(this, true); } } base.OnLayout(e); } ///protected override void SetDisplayedItems() { // do nothing here.... this is really for the setting the overflow/displayed items on the // main winbar. Our working item collection is our displayed item collection... calling // base would clear it out. Size biggestItemSize = Size.Empty; for (int j = 0; j < DisplayedItems.Count; j++) { ToolStripItem item = DisplayedItems[j]; if (((IArrangedElement)item).ParticipatesInLayout) { HasVisibleItems = true; biggestItemSize = LayoutUtils.UnionSizes(biggestItemSize, item.Bounds.Size); } } SetLargestItemSize(biggestItemSize); } private class ToolStripOverflowAccessibleObject : ToolStripAccessibleObject { public ToolStripOverflowAccessibleObject(ToolStripOverflow owner) : base(owner) { } public override AccessibleObject GetChild(int index) { return ((ToolStripOverflow)Owner).DisplayedItems[index].AccessibilityObject; } public override int GetChildCount() { return ((ToolStripOverflow)Owner).DisplayedItems.Count; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ConfigurationElement.cs
- WebSysDefaultValueAttribute.cs
- ServiceHttpModule.cs
- PathFigureCollectionConverter.cs
- DataBinding.cs
- KeyNotFoundException.cs
- TraceHandlerErrorFormatter.cs
- XmlBoundElement.cs
- ByteKeyFrameCollection.cs
- Mapping.cs
- CollectionViewSource.cs
- controlskin.cs
- SafeRightsManagementQueryHandle.cs
- ZoneIdentityPermission.cs
- DtrList.cs
- ByteStreamMessageEncoder.cs
- FixedSOMTextRun.cs
- Documentation.cs
- BamlTreeMap.cs
- ParseNumbers.cs
- WebResponse.cs
- ReliabilityContractAttribute.cs
- ModelVisual3D.cs
- SiteMapNode.cs
- DateTimeOffset.cs
- SendMailErrorEventArgs.cs
- DataGridViewRowPrePaintEventArgs.cs
- SourceFileBuildProvider.cs
- PropertyGeneratedEventArgs.cs
- Misc.cs
- XmlKeywords.cs
- TabPage.cs
- UnderstoodHeaders.cs
- StateChangeEvent.cs
- ListViewInsertionMark.cs
- Gdiplus.cs
- DataStorage.cs
- UpdateProgress.cs
- SourceItem.cs
- Tokenizer.cs
- AlgoModule.cs
- XmlSerializerAssemblyAttribute.cs
- HtmlShim.cs
- AnonymousIdentificationModule.cs
- SplashScreen.cs
- StyleSelector.cs
- ParameterToken.cs
- SplitterEvent.cs
- DataGridItem.cs
- PersistenceContext.cs
- ParameterCollection.cs
- WebPartTransformer.cs
- BaseCodeDomTreeGenerator.cs
- PersonalizationDictionary.cs
- CodeTypeDelegate.cs
- Select.cs
- VersionedStreamOwner.cs
- TransactionState.cs
- SplitContainerDesigner.cs
- NavigationFailedEventArgs.cs
- QueryContext.cs
- UnsafeNativeMethods.cs
- GeometryCombineModeValidation.cs
- CodeSnippetCompileUnit.cs
- EventListenerClientSide.cs
- Accessors.cs
- FunctionQuery.cs
- CodeAttachEventStatement.cs
- SignalGate.cs
- InstanceDataCollection.cs
- ToolStripProgressBar.cs
- PropertyPathWorker.cs
- CacheOutputQuery.cs
- Deflater.cs
- OutputCacheSettingsSection.cs
- AdornedElementPlaceholder.cs
- TextureBrush.cs
- FileSecurity.cs
- ThreadExceptionEvent.cs
- MemberPathMap.cs
- FieldNameLookup.cs
- Command.cs
- WebResourceAttribute.cs
- PaperSize.cs
- NetworkAddressChange.cs
- XmlHierarchicalDataSourceView.cs
- ValueSerializer.cs
- FixedSchema.cs
- DetailsViewPagerRow.cs
- XmlEncoding.cs
- SqlXml.cs
- DataSourceXmlAttributeAttribute.cs
- Win32KeyboardDevice.cs
- ServiceHostFactory.cs
- ProfileGroupSettings.cs
- ReadOnlyObservableCollection.cs
- MSHTMLHostUtil.cs
- FullTextBreakpoint.cs
- RetrieveVirtualItemEventArgs.cs
- XmlWrappingReader.cs