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
- CustomWebEventKey.cs
- FileDialogCustomPlacesCollection.cs
- SoundPlayer.cs
- WebPartsPersonalizationAuthorization.cs
- AsymmetricSignatureFormatter.cs
- WebPartZoneBaseDesigner.cs
- SqlNodeAnnotation.cs
- OrderedHashRepartitionEnumerator.cs
- SoapObjectInfo.cs
- SafeRightsManagementPubHandle.cs
- SmiXetterAccessMap.cs
- KeyNameIdentifierClause.cs
- RequestTimeoutManager.cs
- PackagePart.cs
- AttributeSetAction.cs
- SessionStateItemCollection.cs
- TcpChannelHelper.cs
- TcpClientSocketManager.cs
- FrugalList.cs
- DebuggerAttributes.cs
- HttpValueCollection.cs
- DispatcherObject.cs
- DeviceContext2.cs
- HuffModule.cs
- NotCondition.cs
- TextAutomationPeer.cs
- AvtEvent.cs
- RegionIterator.cs
- FontFamily.cs
- MdiWindowListStrip.cs
- EntityContainerAssociationSet.cs
- HttpInputStream.cs
- DbConnectionInternal.cs
- WorkflowLayouts.cs
- ChannelParameterCollection.cs
- Control.cs
- SslStream.cs
- DummyDataSource.cs
- XmlReturnWriter.cs
- WebPartAuthorizationEventArgs.cs
- User.cs
- __Filters.cs
- Message.cs
- AffineTransform3D.cs
- GroupDescription.cs
- SizeChangedInfo.cs
- SqlSupersetValidator.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- SplashScreenNativeMethods.cs
- SortFieldComparer.cs
- HandleExceptionArgs.cs
- AsyncOperationManager.cs
- SoapInteropTypes.cs
- FirewallWrapper.cs
- RectangleHotSpot.cs
- EnumerableValidator.cs
- PointCollection.cs
- LookupBindingPropertiesAttribute.cs
- XPathAxisIterator.cs
- DefaultAssemblyResolver.cs
- FormatConvertedBitmap.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ToolStripContentPanelDesigner.cs
- MaskInputRejectedEventArgs.cs
- QualificationDataItem.cs
- TraceUtils.cs
- NumberFunctions.cs
- ReceiveDesigner.xaml.cs
- ChtmlTextWriter.cs
- Span.cs
- Freezable.cs
- InstanceDataCollectionCollection.cs
- Gdiplus.cs
- sapiproxy.cs
- XmlObjectSerializer.cs
- DaylightTime.cs
- TextEffectResolver.cs
- DataRowComparer.cs
- XPathQilFactory.cs
- DynamicILGenerator.cs
- SafeHandles.cs
- SystemTcpStatistics.cs
- ControlCachePolicy.cs
- DynamicVirtualDiscoSearcher.cs
- RepeaterItemEventArgs.cs
- WindowShowOrOpenTracker.cs
- XDRSchema.cs
- OrthographicCamera.cs
- Privilege.cs
- InputScopeAttribute.cs
- WMIGenerator.cs
- WebServiceTypeData.cs
- PeerNameRecordCollection.cs
- EndpointAddressAugust2004.cs
- Normalization.cs
- PasswordRecovery.cs
- FixUp.cs
- CombinedTcpChannel.cs
- FormConverter.cs
- EventProxy.cs