Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Shared / MS / Internal / FreezableOperations.cs / 1 / FreezableOperations.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: FreezableOperations class definition. // // History: // 2005/02/02 : [....] - Created // //--------------------------------------------------------------------------- using System; using System.Windows; using MS.Internal.PresentationCore; namespace MS.Internal { ////// Internal static class which provides helper methods for common /// Freezable operations. /// [FriendAccessAllowed] // Built into Core, also used by Framework. internal static class FreezableOperations { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// A null-safe wrapper around Freezable.Clone(). (If a null /// is encountered it returns null.) /// internal static Freezable Clone(Freezable freezable) { if (freezable == null) { return null; } return freezable.Clone(); } ////// Semantically equivilent to Freezable.Clone().Freeze() except that /// GetAsFrozen avoids copying any portions of the Freezable graph /// which are already frozen. /// public static Freezable GetAsFrozen(Freezable freezable) { if (freezable == null) { return null; } return freezable.GetAsFrozen(); } ////// If freezable is already frozen, it returns freezable /// If freezable is not frozen, it returns a copy that is frozen if possible /// internal static Freezable GetAsFrozenIfPossible(Freezable freezable) { if (freezable == null) { return null; } if (freezable.CanFreeze) { freezable = freezable.GetAsFrozen(); } return freezable; } ////// Moves the specified changed handler from the old value /// to the new value correctly no-oping nulls. This is useful /// for non-Freezables which expose a Freezable property. /// internal static void PropagateChangedHandlers( Freezable oldValue, Freezable newValue, EventHandler changedHandler) { if (newValue != null && !newValue.IsFrozen) { newValue.Changed += changedHandler; } if (oldValue != null && !oldValue.IsFrozen) { oldValue.Changed -= changedHandler; } } #endregion Internal Methods } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: FreezableOperations class definition. // // History: // 2005/02/02 : [....] - Created // //--------------------------------------------------------------------------- using System; using System.Windows; using MS.Internal.PresentationCore; namespace MS.Internal { ////// Internal static class which provides helper methods for common /// Freezable operations. /// [FriendAccessAllowed] // Built into Core, also used by Framework. internal static class FreezableOperations { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// A null-safe wrapper around Freezable.Clone(). (If a null /// is encountered it returns null.) /// internal static Freezable Clone(Freezable freezable) { if (freezable == null) { return null; } return freezable.Clone(); } ////// Semantically equivilent to Freezable.Clone().Freeze() except that /// GetAsFrozen avoids copying any portions of the Freezable graph /// which are already frozen. /// public static Freezable GetAsFrozen(Freezable freezable) { if (freezable == null) { return null; } return freezable.GetAsFrozen(); } ////// If freezable is already frozen, it returns freezable /// If freezable is not frozen, it returns a copy that is frozen if possible /// internal static Freezable GetAsFrozenIfPossible(Freezable freezable) { if (freezable == null) { return null; } if (freezable.CanFreeze) { freezable = freezable.GetAsFrozen(); } return freezable; } ////// Moves the specified changed handler from the old value /// to the new value correctly no-oping nulls. This is useful /// for non-Freezables which expose a Freezable property. /// internal static void PropagateChangedHandlers( Freezable oldValue, Freezable newValue, EventHandler changedHandler) { if (newValue != null && !newValue.IsFrozen) { newValue.Changed += changedHandler; } if (oldValue != null && !oldValue.IsFrozen) { oldValue.Changed -= changedHandler; } } #endregion Internal Methods } } // 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
- ExpressionContext.cs
- xamlnodes.cs
- ExtentKey.cs
- LineGeometry.cs
- ArrayList.cs
- PixelShader.cs
- CodeSnippetCompileUnit.cs
- OutputCacheProfileCollection.cs
- HttpResponse.cs
- DBSqlParser.cs
- CalendarItem.cs
- WebScriptEndpointElement.cs
- ListMarkerSourceInfo.cs
- ListControlDesigner.cs
- BaseUriHelper.cs
- Blend.cs
- CodePropertyReferenceExpression.cs
- EncryptedPackage.cs
- MediaContext.cs
- SByteStorage.cs
- SqlCacheDependency.cs
- QuaternionValueSerializer.cs
- SessionStateItemCollection.cs
- QueryNode.cs
- ArrangedElement.cs
- TreeViewCancelEvent.cs
- StateMachine.cs
- TableLayoutRowStyleCollection.cs
- CalendarTable.cs
- FontCollection.cs
- TableCell.cs
- ConfigDefinitionUpdates.cs
- CngProvider.cs
- BaseTemplateCodeDomTreeGenerator.cs
- FormViewInsertedEventArgs.cs
- FixedSOMFixedBlock.cs
- UIServiceHelper.cs
- FreezableDefaultValueFactory.cs
- XmlBindingWorker.cs
- EncoderNLS.cs
- CodeMemberMethod.cs
- StylesEditorDialog.cs
- BookmarkScope.cs
- RemotingConfiguration.cs
- LockedBorderGlyph.cs
- StylusButtonCollection.cs
- HiddenFieldPageStatePersister.cs
- DataGridDetailsPresenterAutomationPeer.cs
- NavigationService.cs
- ScriptModule.cs
- MailDefinition.cs
- CodeTypeDelegate.cs
- TextAnchor.cs
- WebUtil.cs
- PropertyCollection.cs
- WorkflowMarkupSerializerMapping.cs
- ObfuscateAssemblyAttribute.cs
- QilGeneratorEnv.cs
- SafeSecurityHelper.cs
- PrtCap_Base.cs
- XPathBinder.cs
- __Filters.cs
- ClickablePoint.cs
- _AutoWebProxyScriptHelper.cs
- ToolCreatedEventArgs.cs
- ArgumentNullException.cs
- PeerApplication.cs
- EdgeModeValidation.cs
- EventSchemaTraceListener.cs
- DNS.cs
- XPathScanner.cs
- Assert.cs
- XmlQualifiedName.cs
- SettingsPropertyValue.cs
- UIAgentAsyncEndRequest.cs
- TokenBasedSet.cs
- DetailsViewCommandEventArgs.cs
- FrugalList.cs
- XmlAnyElementAttributes.cs
- UrlMappingCollection.cs
- ResourceDescriptionAttribute.cs
- IChannel.cs
- SafeFreeMibTable.cs
- XmlC14NWriter.cs
- CustomLineCap.cs
- ValidatingReaderNodeData.cs
- TraceSource.cs
- DataGrid.cs
- Base64Encoder.cs
- ResourceDescriptionAttribute.cs
- WebBrowserBase.cs
- BitmapEffectGroup.cs
- RowUpdatedEventArgs.cs
- AuthorizationSection.cs
- ProfileService.cs
- SplitterPanel.cs
- IIS7UserPrincipal.cs
- HttpValueCollection.cs
- TerminatingOperationBehavior.cs
- ButtonAutomationPeer.cs