Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripOverflow.cs / 1305376 / 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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityPolicySection.cs
- SafeFileMapViewHandle.cs
- WSUtilitySpecificationVersion.cs
- GeometryHitTestParameters.cs
- ShaperBuffers.cs
- ValidatingCollection.cs
- SystemIPGlobalStatistics.cs
- ResXFileRef.cs
- Operator.cs
- UnionExpr.cs
- InfoCardTraceRecord.cs
- BrowserCapabilitiesFactory.cs
- NumberSubstitution.cs
- Publisher.cs
- BlockExpression.cs
- Dictionary.cs
- BamlBinaryReader.cs
- SystemIPv4InterfaceProperties.cs
- PolyBezierSegmentFigureLogic.cs
- PersianCalendar.cs
- ContourSegment.cs
- CmsInterop.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- BufferedGraphicsManager.cs
- DropTarget.cs
- CryptoStream.cs
- TypeGeneratedEventArgs.cs
- ConnectionProviderAttribute.cs
- CodeTypeDelegate.cs
- ListBoxItemAutomationPeer.cs
- ContentTypeSettingClientMessageFormatter.cs
- EmptyEnumerator.cs
- SponsorHelper.cs
- ApplyImportsAction.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- SamlAction.cs
- Shape.cs
- TextEncodedRawTextWriter.cs
- WindowCollection.cs
- XmlChoiceIdentifierAttribute.cs
- XmlSchemaSimpleTypeList.cs
- HijriCalendar.cs
- ImagingCache.cs
- Message.cs
- PasswordTextNavigator.cs
- DBCommandBuilder.cs
- UnsafeMethods.cs
- TokenBasedSetEnumerator.cs
- ClientConvert.cs
- GorillaCodec.cs
- XmlCharCheckingWriter.cs
- CacheVirtualItemsEvent.cs
- ContainerParaClient.cs
- GridViewCommandEventArgs.cs
- Transform.cs
- FontFamily.cs
- RelationshipEndCollection.cs
- DesignerDataColumn.cs
- EntityDataSourceValidationException.cs
- DataViewListener.cs
- ConstrainedDataObject.cs
- KnownTypesHelper.cs
- ImplicitInputBrush.cs
- AsyncCompletedEventArgs.cs
- XmlDownloadManager.cs
- BamlReader.cs
- CodeTypeReferenceExpression.cs
- SimpleApplicationHost.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- GenerateTemporaryAssemblyTask.cs
- SelectiveScrollingGrid.cs
- ScriptComponentDescriptor.cs
- PointCollection.cs
- InfoCardTrace.cs
- MergeFailedEvent.cs
- BypassElementCollection.cs
- ConstructorNeedsTagAttribute.cs
- NotifyInputEventArgs.cs
- CryptoStream.cs
- GACIdentityPermission.cs
- WorkflowPrinting.cs
- RecipientInfo.cs
- GeneratedCodeAttribute.cs
- ColumnWidthChangedEvent.cs
- MultipleViewPatternIdentifiers.cs
- DefaultObjectMappingItemCollection.cs
- FileCodeGroup.cs
- FixedSOMLineCollection.cs
- XmlSchemaImporter.cs
- PackageFilter.cs
- _SslState.cs
- DesignerActionGlyph.cs
- FrugalMap.cs
- DataGridViewCellFormattingEventArgs.cs
- BuilderInfo.cs
- VisualStyleRenderer.cs
- String.cs
- CommandBinding.cs
- SyndicationSerializer.cs
- LogicalExpr.cs