Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Internal / FreezableOperations.cs / 1305600 / 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
- StorageModelBuildProvider.cs
- ToolboxItemCollection.cs
- SuppressMergeCheckAttribute.cs
- InvokeProviderWrapper.cs
- GregorianCalendar.cs
- StringBuilder.cs
- TreeViewEvent.cs
- MappingModelBuildProvider.cs
- XPathPatternBuilder.cs
- HostProtectionException.cs
- mediaclock.cs
- WebPartCollection.cs
- WindowsClaimSet.cs
- ContextItem.cs
- HttpInputStream.cs
- DocComment.cs
- ListViewItem.cs
- DateTime.cs
- ParameterToken.cs
- IFormattable.cs
- CompositeActivityTypeDescriptorProvider.cs
- PathStreamGeometryContext.cs
- input.cs
- WebPartVerbsEventArgs.cs
- KerberosSecurityTokenAuthenticator.cs
- RtType.cs
- TransformedBitmap.cs
- ConfigXmlText.cs
- QueryAccessibilityHelpEvent.cs
- DebugView.cs
- XmlStringTable.cs
- SystemBrushes.cs
- Symbol.cs
- PatternMatcher.cs
- ListenerPerfCounters.cs
- TypeConverterHelper.cs
- InvalidCastException.cs
- SoapObjectInfo.cs
- CheckedListBox.cs
- AliasGenerator.cs
- TextTrailingWordEllipsis.cs
- KerberosSecurityTokenProvider.cs
- Rotation3D.cs
- GuidConverter.cs
- wgx_sdk_version.cs
- File.cs
- OuterGlowBitmapEffect.cs
- EventDescriptorCollection.cs
- shaperfactoryquerycacheentry.cs
- DebugView.cs
- SamlAuthenticationClaimResource.cs
- NonClientArea.cs
- NotSupportedException.cs
- SignedXml.cs
- FlowDocumentReaderAutomationPeer.cs
- DBSchemaTable.cs
- CodeFieldReferenceExpression.cs
- TdsValueSetter.cs
- Highlights.cs
- ItemsControl.cs
- StateMachineAction.cs
- BindableAttribute.cs
- SubMenuStyleCollectionEditor.cs
- DnsPermission.cs
- SplineQuaternionKeyFrame.cs
- OdbcCommandBuilder.cs
- DependencyPropertyDescriptor.cs
- SessionStateModule.cs
- PageVisual.cs
- InkCanvas.cs
- SafeFileHandle.cs
- StringFunctions.cs
- QilName.cs
- LineMetrics.cs
- CodeBinaryOperatorExpression.cs
- StateFinalizationActivity.cs
- DispatchWrapper.cs
- PersonalizationProviderCollection.cs
- ComponentCodeDomSerializer.cs
- Rect.cs
- ExistsInCollection.cs
- TdsParserStateObject.cs
- CreateParams.cs
- RepeatBehaviorConverter.cs
- PropertyKey.cs
- EndEvent.cs
- Floater.cs
- HostedHttpContext.cs
- WebSysDefaultValueAttribute.cs
- Debug.cs
- PrintControllerWithStatusDialog.cs
- ImportContext.cs
- SqlCommandBuilder.cs
- FlowLayoutPanel.cs
- ExternalCalls.cs
- DataListItem.cs
- ToolboxCategory.cs
- TimersDescriptionAttribute.cs
- ListManagerBindingsCollection.cs
- LocatorGroup.cs