Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SortFieldComparer.cs
- SerializationException.cs
- LinkLabel.cs
- Int32CollectionConverter.cs
- MembershipSection.cs
- ReceiveErrorHandling.cs
- AttachmentService.cs
- DrawingAttributeSerializer.cs
- Transform.cs
- CreateUserErrorEventArgs.cs
- NetworkInformationPermission.cs
- GeneralTransform2DTo3D.cs
- DriveInfo.cs
- FontDifferentiator.cs
- XPathAncestorIterator.cs
- ClientRuntimeConfig.cs
- OracleConnectionStringBuilder.cs
- X509UI.cs
- DbProviderFactories.cs
- RegexCode.cs
- BinaryReader.cs
- TextTabProperties.cs
- WindowsContainer.cs
- WebHttpDispatchOperationSelector.cs
- srgsitem.cs
- BuildManager.cs
- GraphicsContainer.cs
- DataGridViewControlCollection.cs
- SynchronizedDispatch.cs
- MsmqInputChannelListenerBase.cs
- CodeArgumentReferenceExpression.cs
- SmiMetaDataProperty.cs
- AsyncOperation.cs
- SQLMoneyStorage.cs
- FastEncoderWindow.cs
- ValidationHelpers.cs
- ClientUtils.cs
- UpDownBase.cs
- DocComment.cs
- WebPartAuthorizationEventArgs.cs
- PropertyManager.cs
- ReceiveReply.cs
- GuidTagList.cs
- TemplateControlCodeDomTreeGenerator.cs
- SendKeys.cs
- MetaModel.cs
- XmlSchemaAppInfo.cs
- SmtpLoginAuthenticationModule.cs
- Literal.cs
- NavigationProperty.cs
- Button.cs
- ToolStripGrip.cs
- LinkedResource.cs
- XamlFilter.cs
- ActivityMarkupSerializationProvider.cs
- HashCryptoHandle.cs
- WriteableOnDemandPackagePart.cs
- CodeNamespace.cs
- DBDataPermissionAttribute.cs
- HostingPreferredMapPath.cs
- AnyAllSearchOperator.cs
- SourceItem.cs
- QuestionEventArgs.cs
- Byte.cs
- RecognizerInfo.cs
- DataMemberAttribute.cs
- MailAddressCollection.cs
- ScrollEventArgs.cs
- COM2Enum.cs
- DecimalStorage.cs
- DataControlFieldHeaderCell.cs
- ImageField.cs
- CodeAccessSecurityEngine.cs
- RegexReplacement.cs
- PageClientProxyGenerator.cs
- ObjectNavigationPropertyMapping.cs
- MgmtConfigurationRecord.cs
- SolidBrush.cs
- ConfigurationFileMap.cs
- EventWaitHandle.cs
- GACIdentityPermission.cs
- Statements.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- HtmlToClrEventProxy.cs
- FormattedTextSymbols.cs
- GridViewRowPresenterBase.cs
- AssemblyBuilderData.cs
- AccessedThroughPropertyAttribute.cs
- XmlStrings.cs
- SmtpNtlmAuthenticationModule.cs
- XmlSchemaElement.cs
- ScriptingRoleServiceSection.cs
- ImageAnimator.cs
- ReferencedType.cs
- GenericTypeParameterBuilder.cs
- SerializationObjectManager.cs
- Select.cs
- Int64AnimationBase.cs
- DynamicActionMessageFilter.cs
- SoapRpcMethodAttribute.cs