Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / FixedSOMGroup.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BrowserCapabilitiesCodeGenerator.cs
- WebHttpBinding.cs
- TreeNodeEventArgs.cs
- XamlDebuggerXmlReader.cs
- TreeViewItemAutomationPeer.cs
- StateFinalizationDesigner.cs
- filewebresponse.cs
- WebReferenceOptions.cs
- DbProviderManifest.cs
- CodeArgumentReferenceExpression.cs
- Win32SafeHandles.cs
- TypeTypeConverter.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- ObjectNotFoundException.cs
- SkinBuilder.cs
- AccessDataSourceView.cs
- FilterElement.cs
- ComponentChangingEvent.cs
- PenCursorManager.cs
- SByteConverter.cs
- ToolStripItemEventArgs.cs
- CreateUserWizard.cs
- X509SubjectKeyIdentifierClause.cs
- QilDataSource.cs
- ToolStripGripRenderEventArgs.cs
- TableLayoutSettingsTypeConverter.cs
- oledbconnectionstring.cs
- ContextStack.cs
- Label.cs
- ToolStripStatusLabel.cs
- SqlDataAdapter.cs
- DefaultTextStoreTextComposition.cs
- DockingAttribute.cs
- XamlParser.cs
- WebPartConnectionsCloseVerb.cs
- EnumConverter.cs
- TerminatorSinks.cs
- FloatUtil.cs
- RestHandlerFactory.cs
- EventLogger.cs
- HeaderedContentControl.cs
- TraceContext.cs
- SamlAttribute.cs
- ListBoxChrome.cs
- VBIdentifierDesigner.xaml.cs
- ReferenceSchema.cs
- TreeNodeEventArgs.cs
- XsdBuilder.cs
- HttpRuntime.cs
- ExpressionBuilderCollection.cs
- TextEditorThreadLocalStore.cs
- SerializationInfoEnumerator.cs
- Int64.cs
- TextTrailingCharacterEllipsis.cs
- XmlIterators.cs
- AnonymousIdentificationModule.cs
- CollectionCodeDomSerializer.cs
- SafeRightsManagementQueryHandle.cs
- CreateInstanceBinder.cs
- CqlGenerator.cs
- ScriptControlManager.cs
- ContentOnlyMessage.cs
- SudsCommon.cs
- QueryPageSettingsEventArgs.cs
- MenuItemAutomationPeer.cs
- SharingService.cs
- BamlMapTable.cs
- QueryGeneratorBase.cs
- CommonObjectSecurity.cs
- Link.cs
- SqlHelper.cs
- CodeCompiler.cs
- StaticFileHandler.cs
- Triplet.cs
- DependencyObjectType.cs
- UserControl.cs
- SessionIDManager.cs
- RouteItem.cs
- NavigationPropertyEmitter.cs
- ReachSerializationUtils.cs
- XmlWriterSettings.cs
- ObjectParameter.cs
- OracleParameter.cs
- _ProxyRegBlob.cs
- SafeNativeMethods.cs
- ForceCopyBuildProvider.cs
- PerformanceCounterPermissionEntryCollection.cs
- MDIControlStrip.cs
- SymmetricKeyWrap.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- BindingMAnagerBase.cs
- TouchesCapturedWithinProperty.cs
- safemediahandle.cs
- HttpCookiesSection.cs
- SystemNetHelpers.cs
- PolyBezierSegment.cs
- DashStyle.cs
- DataGridViewAutoSizeModeEventArgs.cs
- WpfXamlLoader.cs
- ScrollBarAutomationPeer.cs