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
- XmlMapping.cs
- DateTimeValueSerializerContext.cs
- HtmlInputRadioButton.cs
- DataServiceStreamProviderWrapper.cs
- RuleAction.cs
- SpotLight.cs
- RepeaterItem.cs
- SqlReferenceCollection.cs
- XmlValidatingReaderImpl.cs
- InitializerFacet.cs
- ContentType.cs
- UnmanagedMarshal.cs
- EventLogger.cs
- DataObjectAttribute.cs
- GrammarBuilderWildcard.cs
- XmlSchemaException.cs
- ContextQuery.cs
- ValueQuery.cs
- TagNameToTypeMapper.cs
- GeneralTransform3DGroup.cs
- Serializer.cs
- LinqDataSourceEditData.cs
- FixedSOMPageConstructor.cs
- ExceptionHandlerDesigner.cs
- SqlTriggerContext.cs
- TemplatedWizardStep.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- QueryExecutionOption.cs
- itemelement.cs
- WebRequestModuleElement.cs
- ObsoleteAttribute.cs
- NullableConverter.cs
- TextSegment.cs
- SqlMethodTransformer.cs
- XDRSchema.cs
- DetailsViewDesigner.cs
- TypeInitializationException.cs
- LocalizationParserHooks.cs
- X509CertificateClaimSet.cs
- AppAction.cs
- ContainerUIElement3D.cs
- HelpHtmlBuilder.cs
- PerformanceCountersElement.cs
- PlatformCulture.cs
- EntityRecordInfo.cs
- Comparer.cs
- TypeGeneratedEventArgs.cs
- ADMembershipProvider.cs
- XmlWhitespace.cs
- FamilyTypefaceCollection.cs
- Select.cs
- QilXmlReader.cs
- ViewEventArgs.cs
- DBCSCodePageEncoding.cs
- EncodingFallbackAwareXmlTextWriter.cs
- Main.cs
- RegistryHandle.cs
- InstanceKey.cs
- CacheManager.cs
- _Connection.cs
- LocalClientSecuritySettingsElement.cs
- TextCollapsingProperties.cs
- DataBoundControl.cs
- ManipulationDeltaEventArgs.cs
- HtmlElementEventArgs.cs
- ServiceModelExtensionElement.cs
- Directory.cs
- DataQuery.cs
- ExpressionBuilderContext.cs
- DbProviderFactories.cs
- UdpTransportBindingElement.cs
- BindUriHelper.cs
- StrongName.cs
- CheckBox.cs
- TCEAdapterGenerator.cs
- PropertyCollection.cs
- XPathDocumentBuilder.cs
- serverconfig.cs
- SqlCharStream.cs
- MailAddressParser.cs
- HttpListener.cs
- DateTimeValueSerializerContext.cs
- WebPartCatalogAddVerb.cs
- Missing.cs
- RSAOAEPKeyExchangeDeformatter.cs
- EventManager.cs
- DummyDataSource.cs
- QilCloneVisitor.cs
- DiscreteKeyFrames.cs
- FrugalList.cs
- WindowsTitleBar.cs
- DeferredTextReference.cs
- DynamicControlParameter.cs
- AssemblyResourceLoader.cs
- HttpsChannelListener.cs
- ConfigurationException.cs
- AuthenticateEventArgs.cs
- SoapSchemaImporter.cs
- Light.cs
- VBCodeProvider.cs