Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / Layout / LayoutEngine.cs / 1 / LayoutEngine.cs
//#define LAYOUT_PERFWATCH //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Layout { using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Drawing; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Security.Permissions; ///public abstract class LayoutEngine { internal IArrangedElement CastToArrangedElement(object obj) { IArrangedElement element = obj as IArrangedElement; if(obj == null) { throw new NotSupportedException(SR.GetString(SR.LayoutEngineUnsupportedType, obj.GetType())); } return element; } internal virtual Size GetPreferredSize(IArrangedElement container, Size proposedConstraints) { return Size.Empty; } /// public virtual void InitLayout(object child, BoundsSpecified specified) { InitLayoutCore(CastToArrangedElement(child), specified); } internal virtual void InitLayoutCore(IArrangedElement element, BoundsSpecified bounds) {} internal virtual void ProcessSuspendedLayoutEventArgs(IArrangedElement container, LayoutEventArgs args) {} #if LAYOUT_PERFWATCH private static int LayoutWatch = 100; #endif /// [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] public virtual bool Layout(object container, LayoutEventArgs layoutEventArgs) { #if LAYOUT_PERFWATCH Debug.WriteLine(container.GetType().Name + "::Layout(" + (layoutEventArgs.AffectedControl != null ? layoutEventArgs.AffectedControl.Name : "null") + ", " + layoutEventArgs.AffectedProperty + ")"); Debug.Indent(); Stopwatch sw = new Stopwatch(); sw.Start(); #endif bool parentNeedsLayout = LayoutCore(CastToArrangedElement(container), layoutEventArgs); #if LAYOUT_PERFWATCH sw.Stop(); if (sw.ElapsedMilliseconds > LayoutWatch && Debugger.IsAttached) { Debugger.Break(); } Debug.Unindent(); Debug.WriteLine(container.GetType().Name + "::Layout elapsed " + sw.ElapsedMilliseconds.ToString() + " returned: " + parentNeedsLayout); #endif return parentNeedsLayout; } internal virtual bool LayoutCore(IArrangedElement container, LayoutEventArgs layoutEventArgs) { return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ManagedFilter.cs
- DataGridViewComboBoxCell.cs
- AnchoredBlock.cs
- CurrentChangingEventArgs.cs
- CLRBindingWorker.cs
- RuntimeConfigurationRecord.cs
- DbMetaDataFactory.cs
- ClientEventManager.cs
- SortedList.cs
- CodeGroup.cs
- Decoder.cs
- MessageSecurityProtocol.cs
- WindowsIdentity.cs
- XsltContext.cs
- ScriptingSectionGroup.cs
- HitTestFilterBehavior.cs
- ObjectSecurity.cs
- Timer.cs
- WindowProviderWrapper.cs
- TypeConverterAttribute.cs
- _Connection.cs
- RecognitionEventArgs.cs
- Metafile.cs
- CharAnimationBase.cs
- ProfileParameter.cs
- ResourceDisplayNameAttribute.cs
- UriExt.cs
- WindowsIdentity.cs
- Converter.cs
- DoWorkEventArgs.cs
- DynamicAttribute.cs
- PropertyGridView.cs
- WebResourceUtil.cs
- Transform3DGroup.cs
- CustomAttributeBuilder.cs
- WmlTextBoxAdapter.cs
- XmlSchemaAnnotation.cs
- PropertyInformation.cs
- SimpleFieldTemplateFactory.cs
- XmlQueryCardinality.cs
- XmlHierarchicalDataSourceView.cs
- TcpStreams.cs
- BypassElementCollection.cs
- DeclarativeCatalogPart.cs
- ArraySegment.cs
- ConsoleKeyInfo.cs
- SizeKeyFrameCollection.cs
- MarkerProperties.cs
- AnchoredBlock.cs
- ListViewTableRow.cs
- GlyphTypeface.cs
- QilList.cs
- Brushes.cs
- SerialStream.cs
- InheritanceRules.cs
- PackWebRequestFactory.cs
- EndpointAddress10.cs
- ResXResourceReader.cs
- EncryptedPackageFilter.cs
- SafeViewOfFileHandle.cs
- QueryGenerator.cs
- SystemColors.cs
- commandenforcer.cs
- BitmapEffectState.cs
- ParseElement.cs
- TemplateColumn.cs
- Mapping.cs
- PageParser.cs
- HttpContext.cs
- BinHexDecoder.cs
- EditorZone.cs
- AssemblyBuilder.cs
- FontCollection.cs
- DocumentPageHost.cs
- AddInController.cs
- CompoundFileIOPermission.cs
- FixedPageProcessor.cs
- IndentTextWriter.cs
- SystemIPv6InterfaceProperties.cs
- CodeDirectiveCollection.cs
- KeyMatchBuilder.cs
- ConfigurationStrings.cs
- InvokeMethodDesigner.xaml.cs
- UserMapPath.cs
- LogExtentCollection.cs
- Imaging.cs
- AutoGeneratedField.cs
- StaticExtension.cs
- ConfigXmlElement.cs
- PackUriHelper.cs
- Wrapper.cs
- MetadataItemEmitter.cs
- CompressStream.cs
- DirectionalLight.cs
- ProxyHwnd.cs
- MetadataArtifactLoaderCompositeResource.cs
- ContentPlaceHolder.cs
- OutputWindow.cs
- GPPOINTF.cs
- SiteMapDesignerDataSourceView.cs