Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / PtsHost / EmbeddedObject.cs / 1 / EmbeddedObject.cs
// // Copyright (C) Microsoft Corporation. All rights reserved. // // File: EmbeddedObject.cs // // Description: Definition for embedded object inside a text paragraph. // // History: // 05/05/2003 : [....] - moving from Avalon branch. // //---------------------------------------------------------------------------- using System; using System.Windows; using MS.Internal.Documents; using MS.Internal.PtsHost.UnsafeNativeMethods; namespace MS.Internal.PtsHost { ////// EmbeddedObject class stores information about object embedded within /// a text paragraph. /// internal abstract class EmbeddedObject { ////// Constructor. /// /// /// Embedded object's character position. /// protected EmbeddedObject(int dcp) { Dcp = dcp; } ////// Dispose object. /// internal virtual void Dispose() { } ////// Update object using date from another embedded object of the same /// type. /// /// /// Source of updated data. /// internal abstract void Update(EmbeddedObject newObject); ////// Embedded object's owner. /// internal abstract DependencyObject Element { get; } ////// Position within a text paragraph (number of characters from the /// beginning of text paragraph). /// internal int Dcp; } ////// Stores information about attached object embedded within a text paragraph. /// internal class AttachedObject : EmbeddedObject { ////// Constructor. /// /// /// Attached object's character position. /// /// /// Paragraph associated with attached object. /// internal AttachedObject(int dcp, BaseParagraph para) : base(dcp) { Para = para; } ////// Dispose object. /// internal override void Dispose() { Para.Dispose(); Para = null; base.Dispose(); } ////// Update object using date from another attached object of the same /// type. /// /// /// Source of updated data. /// internal override void Update(EmbeddedObject newObject) { AttachedObject newAttachedObject = newObject as AttachedObject; ErrorHandler.Assert(newAttachedObject != null, ErrorHandler.EmbeddedObjectTypeMismatch); ErrorHandler.Assert(newAttachedObject.Element.Equals(Element), ErrorHandler.EmbeddedObjectOwnerMismatch); Dcp = newAttachedObject.Dcp; Para.SetUpdateInfo(PTS.FSKCHANGE.fskchInside, false); } ////// Attached object's owner. /// internal override DependencyObject Element { get { return Para.Element; } } ////// Paragraph associated with attached object. /// internal BaseParagraph Para; } ////// Stores information about inline object embedded within a text line. /// internal sealed class InlineObject : EmbeddedObject { ////// Constructor. /// /// /// Embedded object's character position. /// /// /// UIElementIsland associated with embedded object. /// /// /// TextParagraph associated with embedded object. /// internal InlineObject(int dcp, UIElementIsland uiElementIsland, TextParagraph para) : base(dcp) { _para = para; _uiElementIsland = uiElementIsland; _uiElementIsland.DesiredSizeChanged += new DesiredSizeChangedEventHandler(_para.OnUIElementDesiredSizeChanged); } ////// Dispose object. /// internal override void Dispose() { if (_uiElementIsland != null) { _uiElementIsland.DesiredSizeChanged -= new DesiredSizeChangedEventHandler(_para.OnUIElementDesiredSizeChanged); } base.Dispose(); } ////// Update object using date from another embedded object of the same /// type. /// /// /// Source of updated data. /// internal override void Update(EmbeddedObject newObject) { // These should definitely be the same InlineObject newInline = newObject as InlineObject; ErrorHandler.Assert(newInline != null, ErrorHandler.EmbeddedObjectTypeMismatch); ErrorHandler.Assert(newInline._uiElementIsland == _uiElementIsland, ErrorHandler.EmbeddedObjectOwnerMismatch); // We've ensured ownership is still with the old InlineObject, so we now null this out to prevent dispose from disconnecting. newInline._uiElementIsland = null; } ////// Embedded object's owner. /// internal override DependencyObject Element { get { return _uiElementIsland.Root; } } private UIElementIsland _uiElementIsland; private TextParagraph _para; } ////// Stores information about figure embedded within a text paragraph. /// internal sealed class FigureObject : AttachedObject { ////// Constructor. /// /// /// Figure object's character position. /// /// /// Paragraph associated with figure object. /// internal FigureObject(int dcp, FigureParagraph para) : base(dcp, para) { } } ////// Stores information about floater embedded within a text paragraph. /// internal sealed class FloaterObject : AttachedObject { ////// Constructor. /// /// /// Floater object's character position. /// /// /// Paragraph associated with floater object. /// internal FloaterObject(int dcp, FloaterParagraph para) : base(dcp, para) { } } } // 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
- IChannel.cs
- WebPartsPersonalizationAuthorization.cs
- BuildTopDownAttribute.cs
- StdRegProviderWrapper.cs
- ArrayConverter.cs
- PreviewPageInfo.cs
- BufferBuilder.cs
- SqlDesignerDataSourceView.cs
- UdpConstants.cs
- BasicKeyConstraint.cs
- AutomationElementCollection.cs
- Emitter.cs
- safex509handles.cs
- UDPClient.cs
- BulletedListDesigner.cs
- ScriptingJsonSerializationSection.cs
- SQLByteStorage.cs
- TextRunCacheImp.cs
- EllipseGeometry.cs
- UITypeEditor.cs
- TypeUsageBuilder.cs
- RepeaterItemEventArgs.cs
- CryptoProvider.cs
- DataFormats.cs
- ItemContainerProviderWrapper.cs
- _LocalDataStoreMgr.cs
- DivideByZeroException.cs
- StringSource.cs
- Size3DValueSerializer.cs
- DefaultCommandExtensionCallback.cs
- WebPartEditVerb.cs
- WindowsFormsHelpers.cs
- SafeRightsManagementEnvironmentHandle.cs
- TransactionScope.cs
- PackagePartCollection.cs
- ProfileSettings.cs
- SafeNativeMethods.cs
- XmlSubtreeReader.cs
- RuntimeIdentifierPropertyAttribute.cs
- HTMLTextWriter.cs
- TextChangedEventArgs.cs
- GridViewRow.cs
- Transform3D.cs
- CombinedTcpChannel.cs
- CheckedListBox.cs
- KeyNotFoundException.cs
- InternalBufferOverflowException.cs
- DoubleUtil.cs
- EnumValAlphaComparer.cs
- CopyEncoder.cs
- WebPartConnectionsConfigureVerb.cs
- CryptographicAttribute.cs
- PreservationFileWriter.cs
- DynamicEntity.cs
- UdpDuplexChannel.cs
- Debugger.cs
- ActiveXHelper.cs
- ObjectDataSource.cs
- SafeProcessHandle.cs
- RemotingException.cs
- ListParagraph.cs
- BigInt.cs
- Lazy.cs
- MatrixTransform.cs
- DebugView.cs
- WebPartConnectionsCancelVerb.cs
- ComNativeDescriptor.cs
- DependencyPropertyKind.cs
- CodeMethodReturnStatement.cs
- GZipStream.cs
- WindowsToolbarAsMenu.cs
- MonthChangedEventArgs.cs
- COM2Properties.cs
- LogReservationCollection.cs
- UshortList2.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- EditorPartChrome.cs
- DbConnectionStringCommon.cs
- DataContractSerializerSection.cs
- DesignerCatalogPartChrome.cs
- XmlNamespaceManager.cs
- WindowsScrollBarBits.cs
- WebBrowserBase.cs
- SafeArrayTypeMismatchException.cs
- XPathNodePointer.cs
- ExtendedPropertyDescriptor.cs
- CSharpCodeProvider.cs
- SafeFileMappingHandle.cs
- DropDownList.cs
- ListDesigner.cs
- XmlBinaryReader.cs
- SQLString.cs
- AuthenticationSection.cs
- PageScaling.cs
- LinkUtilities.cs
- XmlDocumentType.cs
- SafePointer.cs
- DefaultAuthorizationContext.cs
- DelegatingMessage.cs
- unsafenativemethodsother.cs