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
- querybuilder.cs
- AssemblyBuilderData.cs
- OdbcDataAdapter.cs
- Size.cs
- Message.cs
- ConfigurationException.cs
- EnumValidator.cs
- CodeConditionStatement.cs
- FormatSettings.cs
- FlowLayout.cs
- Memoizer.cs
- Process.cs
- WebPartMenuStyle.cs
- LongTypeConverter.cs
- ObjectQueryProvider.cs
- SelectedCellsCollection.cs
- MarshalByValueComponent.cs
- HealthMonitoringSection.cs
- DomNameTable.cs
- XmlSchema.cs
- Rfc2898DeriveBytes.cs
- TypeDependencyAttribute.cs
- SerializationSectionGroup.cs
- RtfToken.cs
- securitycriticaldata.cs
- HttpGetClientProtocol.cs
- XmlWhitespace.cs
- DataObjectPastingEventArgs.cs
- XmlDataSourceNodeDescriptor.cs
- TraceSwitch.cs
- HtmlInputReset.cs
- DocumentDesigner.cs
- DBBindings.cs
- SupportingTokenParameters.cs
- Animatable.cs
- MimePart.cs
- MenuItemStyle.cs
- CommandPlan.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SqlCachedBuffer.cs
- BitmapEffect.cs
- PrimarySelectionAdorner.cs
- DesignerActionListCollection.cs
- ReadOnlyAttribute.cs
- SByte.cs
- OneOfElement.cs
- DecoderExceptionFallback.cs
- UnmanagedMarshal.cs
- ExeConfigurationFileMap.cs
- RoleManagerModule.cs
- DBConnection.cs
- DataBindingExpressionBuilder.cs
- PageThemeCodeDomTreeGenerator.cs
- EntityDesignerBuildProvider.cs
- ButtonFieldBase.cs
- LockedActivityGlyph.cs
- Stylesheet.cs
- StrongNamePublicKeyBlob.cs
- TokenBasedSetEnumerator.cs
- _Semaphore.cs
- GregorianCalendar.cs
- AdRotator.cs
- DesignOnlyAttribute.cs
- sortedlist.cs
- XPathChildIterator.cs
- WebPartEventArgs.cs
- ServiceDebugElement.cs
- Int16.cs
- OutputCacheSettingsSection.cs
- ToolStripComboBox.cs
- ColorIndependentAnimationStorage.cs
- Wizard.cs
- BaseInfoTable.cs
- DocumentCollection.cs
- ObjectComplexPropertyMapping.cs
- RequestResizeEvent.cs
- HttpCapabilitiesSectionHandler.cs
- DocumentViewerConstants.cs
- DataGridViewRowsRemovedEventArgs.cs
- IdnMapping.cs
- ListBase.cs
- Condition.cs
- FunctionImportElement.cs
- DPTypeDescriptorContext.cs
- ProxyWebPartConnectionCollection.cs
- AnnotationResourceCollection.cs
- ViewCellSlot.cs
- FontResourceCache.cs
- NamedPermissionSet.cs
- Timer.cs
- StatusBarPanelClickEvent.cs
- MultilineStringConverter.cs
- SecureUICommand.cs
- SQLInt64Storage.cs
- Int32CAMarshaler.cs
- HtmlElementErrorEventArgs.cs
- ControlLocalizer.cs
- WebEventTraceProvider.cs
- InkCanvasInnerCanvas.cs
- DataGridViewRowConverter.cs