Code:
/ FX-1434 / FX-1434 / 1.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
- _NetworkingPerfCounters.cs
- InternalConfigSettingsFactory.cs
- DataGridViewRowCancelEventArgs.cs
- PolyBezierSegmentFigureLogic.cs
- DesignerSerializationVisibilityAttribute.cs
- XmlSchemaDatatype.cs
- GetChildSubtree.cs
- AVElementHelper.cs
- SchemaCollectionCompiler.cs
- DebuggerService.cs
- SqlFactory.cs
- WindowsTreeView.cs
- MessagePropertyVariants.cs
- validationstate.cs
- PieceDirectory.cs
- DragEventArgs.cs
- RootAction.cs
- PolyBezierSegment.cs
- SettingsPropertyIsReadOnlyException.cs
- TrimSurroundingWhitespaceAttribute.cs
- ResXBuildProvider.cs
- DataSourceXmlSerializer.cs
- CatalogPartCollection.cs
- TypedServiceOperationListItem.cs
- XmlExpressionDumper.cs
- CultureMapper.cs
- DocumentGrid.cs
- DBSchemaTable.cs
- SafeNativeMethods.cs
- HttpResponseInternalWrapper.cs
- EventMetadata.cs
- GenericEnumConverter.cs
- SizeF.cs
- SmiMetaData.cs
- FunctionDetailsReader.cs
- TextParagraphCache.cs
- FilterQuery.cs
- ColorConvertedBitmap.cs
- BaseParser.cs
- XmlQueryContext.cs
- NumericUpDownAccelerationCollection.cs
- PropVariant.cs
- TraceSection.cs
- Debug.cs
- Path.cs
- AppearanceEditorPart.cs
- UpdatePanelTriggerCollection.cs
- XmlMembersMapping.cs
- securitycriticaldataClass.cs
- DateTimeConverter2.cs
- Win32.cs
- ToolBarButtonClickEvent.cs
- FormsIdentity.cs
- X509RawDataKeyIdentifierClause.cs
- XmlRawWriter.cs
- sortedlist.cs
- ToolTipService.cs
- ButtonStandardAdapter.cs
- VarRemapper.cs
- OuterGlowBitmapEffect.cs
- UpDownEvent.cs
- ToolStripGripRenderEventArgs.cs
- FixedHighlight.cs
- SqlParameterCollection.cs
- DataColumn.cs
- SessionKeyExpiredException.cs
- ExtendLockAsyncResult.cs
- Crc32.cs
- PropertyGrid.cs
- SubqueryRules.cs
- NumberSubstitution.cs
- XmlSchemaCompilationSettings.cs
- ComponentChangingEvent.cs
- AuthenticationManager.cs
- ViewgenGatekeeper.cs
- DataRelationPropertyDescriptor.cs
- DataColumnChangeEvent.cs
- ObjectStorage.cs
- TextSpan.cs
- StorageInfo.cs
- NotifyParentPropertyAttribute.cs
- XmlLanguageConverter.cs
- VBIdentifierNameEditor.cs
- PrintDialogException.cs
- DynamicScriptObject.cs
- TraceSection.cs
- NumericExpr.cs
- HostExecutionContextManager.cs
- VirtualPathProvider.cs
- XPathNavigatorKeyComparer.cs
- BrowserTree.cs
- NavigatorInput.cs
- TextViewSelectionProcessor.cs
- Brush.cs
- ApplicationBuildProvider.cs
- SubpageParaClient.cs
- InstallerTypeAttribute.cs
- BaseTemplateParser.cs
- HandlerBase.cs
- ControlBuilder.cs