Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Documents / FixedSOMGroup.cs / 1 / FixedSOMGroup.cs
/*++ File: FixedSOMGroup.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: A concrete container that can be used to put together to group different or same types of containers History: 06/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Globalization; internal class FixedSOMGroup :FixedSOMPageElement, IComparable { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors public FixedSOMGroup(FixedSOMPage page) : base(page) { } #endregion Constructors #region IComparable int IComparable.CompareTo(object comparedObj) { int result = Int32.MinValue; FixedSOMGroup compared = comparedObj as FixedSOMGroup; Debug.Assert(compared != null); if (compared == null) { throw new ArgumentException(SR.Get(SRID.UnexpectedParameterType, comparedObj.GetType(), typeof(FixedSOMGroup)), "comparedObj"); } bool RTL = this.IsRTL && compared.IsRTL; SpatialComparison compareHor = base._CompareHorizontal(compared, RTL); SpatialComparison compareVer = base._CompareVertical(compared); Debug.Assert(compareHor != SpatialComparison.None); Debug.Assert(compareVer != SpatialComparison.None); switch (compareVer) { case SpatialComparison.Before: result = -1; break; case SpatialComparison.After: result = 1; break; case SpatialComparison.OverlapBefore: if ((int)compareHor <= (int)SpatialComparison.Equal) { result = -1; } else { result = 1; } break; case SpatialComparison.OverlapAfter: if ((int)compareHor >= (int)SpatialComparison.Equal) { result = 1; } else { result = -1; } break; case SpatialComparison.Equal: switch (compareHor) { case SpatialComparison.After: case SpatialComparison.OverlapAfter: result = 1; break; case SpatialComparison.Before: case SpatialComparison.OverlapBefore: result = -1; break; case SpatialComparison.Equal: result = 0; break; default: Debug.Assert(false); break; } break; default: //Shouldn't happen Debug.Assert(false); break; } return result; } #endregion #region Public methods //------------------------------------------------------------------- // // Public methods // //--------------------------------------------------------------------- public void AddContainer(FixedSOMPageElement pageElement) { FixedSOMFixedBlock block = pageElement as FixedSOMFixedBlock; if (block == null || (!block.IsFloatingImage && !block.IsWhiteSpace)) { if (pageElement.IsRTL) { _RTLCount++; } else { _LTRCount++; } } _semanticBoxes.Add(pageElement); if (_boundingRect.IsEmpty) { _boundingRect = pageElement.BoundingRect; } else { _boundingRect.Union(pageElement.BoundingRect); } } #if DEBUG public override void Render(DrawingContext dc, string label, DrawDebugVisual debugVisual) { Pen pen = new Pen(Brushes.Maroon, 3); Rect rect = _boundingRect; rect.Inflate(5,5); dc.DrawRectangle(null, pen , rect); if (label != null) { if (this.IsRTL) { label += "R"; } base.RenderLabel(dc, label); } foreach (FixedSOMSemanticBox box in _semanticBoxes) { box.Render(dc, "", debugVisual); } } #endif #endregion Public methods #region Public Properties public override bool IsRTL { get { return _RTLCount > _LTRCount; } } #endregion Public Properties #region Private fields private int _RTLCount; private int _LTRCount; #endregion Private fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /*++ File: FixedSOMGroup.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: A concrete container that can be used to put together to group different or same types of containers History: 06/17/2005: agurcan - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Globalization; internal class FixedSOMGroup :FixedSOMPageElement, IComparable { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors public FixedSOMGroup(FixedSOMPage page) : base(page) { } #endregion Constructors #region IComparable int IComparable.CompareTo(object comparedObj) { int result = Int32.MinValue; FixedSOMGroup compared = comparedObj as FixedSOMGroup; Debug.Assert(compared != null); if (compared == null) { throw new ArgumentException(SR.Get(SRID.UnexpectedParameterType, comparedObj.GetType(), typeof(FixedSOMGroup)), "comparedObj"); } bool RTL = this.IsRTL && compared.IsRTL; SpatialComparison compareHor = base._CompareHorizontal(compared, RTL); SpatialComparison compareVer = base._CompareVertical(compared); Debug.Assert(compareHor != SpatialComparison.None); Debug.Assert(compareVer != SpatialComparison.None); switch (compareVer) { case SpatialComparison.Before: result = -1; break; case SpatialComparison.After: result = 1; break; case SpatialComparison.OverlapBefore: if ((int)compareHor <= (int)SpatialComparison.Equal) { result = -1; } else { result = 1; } break; case SpatialComparison.OverlapAfter: if ((int)compareHor >= (int)SpatialComparison.Equal) { result = 1; } else { result = -1; } break; case SpatialComparison.Equal: switch (compareHor) { case SpatialComparison.After: case SpatialComparison.OverlapAfter: result = 1; break; case SpatialComparison.Before: case SpatialComparison.OverlapBefore: result = -1; break; case SpatialComparison.Equal: result = 0; break; default: Debug.Assert(false); break; } break; default: //Shouldn't happen Debug.Assert(false); break; } return result; } #endregion #region Public methods //------------------------------------------------------------------- // // Public methods // //--------------------------------------------------------------------- public void AddContainer(FixedSOMPageElement pageElement) { FixedSOMFixedBlock block = pageElement as FixedSOMFixedBlock; if (block == null || (!block.IsFloatingImage && !block.IsWhiteSpace)) { if (pageElement.IsRTL) { _RTLCount++; } else { _LTRCount++; } } _semanticBoxes.Add(pageElement); if (_boundingRect.IsEmpty) { _boundingRect = pageElement.BoundingRect; } else { _boundingRect.Union(pageElement.BoundingRect); } } #if DEBUG public override void Render(DrawingContext dc, string label, DrawDebugVisual debugVisual) { Pen pen = new Pen(Brushes.Maroon, 3); Rect rect = _boundingRect; rect.Inflate(5,5); dc.DrawRectangle(null, pen , rect); if (label != null) { if (this.IsRTL) { label += "R"; } base.RenderLabel(dc, label); } foreach (FixedSOMSemanticBox box in _semanticBoxes) { box.Render(dc, "", debugVisual); } } #endif #endregion Public methods #region Public Properties public override bool IsRTL { get { return _RTLCount > _LTRCount; } } #endregion Public Properties #region Private fields private int _RTLCount; private int _LTRCount; #endregion Private fields } } // 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
- Helper.cs
- CacheOutputQuery.cs
- CustomErrorsSection.cs
- OracleTransaction.cs
- ClientRuntimeConfig.cs
- DeflateStream.cs
- FileLogRecordHeader.cs
- LineServicesRun.cs
- InfoCardSymmetricCrypto.cs
- BinaryCommonClasses.cs
- SamlAuthenticationClaimResource.cs
- MeasurementDCInfo.cs
- SafeCryptHandles.cs
- DBNull.cs
- GetMemberBinder.cs
- RelationshipConverter.cs
- ResourceProviderFactory.cs
- ListItemCollection.cs
- DataGridViewColumn.cs
- ProtocolsConfigurationEntry.cs
- SapiGrammar.cs
- PlaceHolder.cs
- RoleManagerSection.cs
- Parameter.cs
- PlanCompilerUtil.cs
- XmlSchemaInferenceException.cs
- ScrollViewerAutomationPeer.cs
- ClientApiGenerator.cs
- TextView.cs
- ListViewItem.cs
- NavigationProgressEventArgs.cs
- StylusPoint.cs
- ViewStateException.cs
- SystemUdpStatistics.cs
- ListBoxItemAutomationPeer.cs
- DataBoundControlHelper.cs
- isolationinterop.cs
- PropertyKey.cs
- Propagator.JoinPropagator.cs
- DictionaryEntry.cs
- DateTimeUtil.cs
- IISMapPath.cs
- TextRangeEditLists.cs
- Compiler.cs
- TemplateField.cs
- PLINQETWProvider.cs
- MetadataFile.cs
- PageParser.cs
- BaseHashHelper.cs
- AddressingVersion.cs
- DataGridViewMethods.cs
- RelatedCurrencyManager.cs
- ProviderException.cs
- ValueTypeFixupInfo.cs
- TextureBrush.cs
- VirtualPathProvider.cs
- TraceSection.cs
- SiteMapNodeCollection.cs
- ConfigurationErrorsException.cs
- SHA1Managed.cs
- shaperfactoryquerycachekey.cs
- InputMethodStateTypeInfo.cs
- ContextStaticAttribute.cs
- Registration.cs
- ContentControl.cs
- BinaryObjectWriter.cs
- BaseCollection.cs
- TargetControlTypeCache.cs
- RoleService.cs
- PassportPrincipal.cs
- MessageHeaderDescription.cs
- Roles.cs
- EdmError.cs
- CommandEventArgs.cs
- DefaultEventAttribute.cs
- UserValidatedEventArgs.cs
- ValidationErrorCollection.cs
- XsdDataContractImporter.cs
- TreeNodeBindingCollection.cs
- HtmlWindow.cs
- TypeUtil.cs
- ListItemCollection.cs
- AutoGeneratedField.cs
- VarRemapper.cs
- EventSourceCreationData.cs
- PrintPreviewGraphics.cs
- recordstatefactory.cs
- ArithmeticException.cs
- InkSerializer.cs
- WebPartMenuStyle.cs
- AssemblyAttributes.cs
- PowerStatus.cs
- CmsInterop.cs
- MultiAsyncResult.cs
- FileLoadException.cs
- SchemaElementLookUpTable.cs
- BamlRecordHelper.cs
- ClientUrlResolverWrapper.cs
- MemberRelationshipService.cs
- MTConfigUtil.cs