C# (CSharp) SIL.FieldWorks.SharpViews Namespace

Nested Namespaces

SIL.FieldWorks.SharpViews.Builders
SIL.FieldWorks.SharpViews.FieldWorksReplacements
SIL.FieldWorks.SharpViews.Hookups
SIL.FieldWorks.SharpViews.Paragraphs
SIL.FieldWorks.SharpViews.Selections
SIL.FieldWorks.SharpViews.SharpViewsTests

Classes

Name Description
AssembledStyles AssembledStyles (roughly equivalent to the old VwPropertyStore) represents the results of applying various styles (and explicit formatting). It is designed to be especially efficient when the same properties are independently derived for different parts of the display; for example, if parts of several lexical entries are independently marked bold, only a single AssembledStyles object is created to represent the effect of adding 'Bold' to whatever the context AssembledStyles was. Enhance JohnT: this is only a skeleton at present, it eventually needs most if not all the properties in VwPropertyStore.
AssembledStyles.BackColorPropSetter
AssembledStyles.BaselineOffsetPropSetter
AssembledStyles.BgrSetter Base class for properties that should be set to a BGR (rather than ARGB) value.
AssembledStyles.BoolSetter Base class for properties that should be set to a bool value.
AssembledStyles.BorderColorPropSetter
AssembledStyles.BordersPropSetter
AssembledStyles.ColorSetter Base class for properties set as colors. Keep this for when we do BorderColor or anything else that doesn't have to follow the old Chrp model.
AssembledStyles.FaceNamePropSetter
AssembledStyles.FirstLineIndentPropSetter
AssembledStyles.FontItalicPropSetter
AssembledStyles.FontSizePropSetter
AssembledStyles.FontWeightPropSetter
AssembledStyles.ForeColorPropSetter
AssembledStyles.IntPropSetter
AssembledStyles.LineHeightPropSetter
AssembledStyles.MarginsPropSetter
AssembledStyles.PadsPropSetter
AssembledStyles.PropSetterImpl A family of little classes used to set properties of an AssembledStyles.
AssembledStyles.RtlPropSetter
AssembledStyles.StringPropSetter
AssembledStyles.StylePropSetter
AssembledStyles.ThicknessPropSetter
AssembledStyles.UnderlineColorPropSetter
AssembledStyles.UnderlinePropSetter
AssembledStylesCache This is a class that retrieves assembled styles, either by matching an existing one, or by the path used to create it. We keep track of the path using two dictionaries, one for object properties and one for integer ones. The object one could serve for everything, but a lot of integers would get boxed, and we'd have to do all kinds of trickery to avoid the nuisance that two independent boxes of the same integer are not equal. We could achieve the same functionality without the Triple-keyed dictionaries at all, but much less efficiently: we'd have to create the derived AS every time before finding out that it already exists.
BlockBox
Box The root class of all boxes, that is, rectanglar screen areas that lay out data.
CellBox
DivBox Class that corresponds to a 'div' element in HTML. May only occur inside other divs. Enhance JohnT: Maybe also in table cells, when we get that far?
FixedColumnWidths
GraphicsHolder
GraphicsManager A class that manages the lifetime of an IVwGraphics. Intended usage is using(var gm = new GraphicsManager(this, g)) { // do something with gm.VwGraphics }
GroupBox Base class for all boxes that have children.
ImageBox
LayoutCallbacks This class handles some callbacks which a view may need to make during layout and similar operations, including expanding a lazy box. It stands as a proxy for the root site, and forwards all the messages to it when disposed. During its lifetime, the root box cannot be painted; an attempt to do so will add to the rectangles to be invalidated when the LCB is disposed.
LayoutInfo Class that gathers all the info needed by a box Layout operation that typically needs to be passed down (sometimes with minor alterations) to child boxes.
LayoutTransform A LayoutTransform contains the information that a Box needs to transform points in its own coordinate system (or possibly its container's coordinate system) into points relative to the view as a whole. This class is immutable; if you need a different one, make a new one.
LeafBox
MultiLineInsertData
NoInvalidateLayoutCallbacks Although implemented as a base class, this is conceptually a special case of LayoutCallbacks, when we are expanding a lazy box and don't want to do invalidates.
PaintTransform A PaintTransform is used when actually painting boxes, or performing similar opertions like hit testing that depend on actual drawing coordinates. The first four constructor arguments are the same as for the base class, and should be the same as the most recent layout operation performed on the box to which the transform is passed. See LayoutTransform for doc. The next four arguments give the resolution at which drawing is actually done, and, in paint pixels, another offset. Typically this offset represents the amount by which the view is scrolled. Conceptually they are the distance that the top left of the view is above and left of the top left of the area in which it is drawn. This means that, after a position relative to the top left of the view is computed as the place to draw something, to convert to paint coordinates we multiply by the ratio of dpiXPaint/dpiXLayout, then subtract dxScroll...and similarly for Y.
PileBox Base class for DivBox and InnerPileBox, more generally, for group boxes that arrange their children one above the other.
ProportionalColumnWidths
RendererFactory The default implementation of IRendererFactory wraps a writing system factory.
RootBox
RootBox.LazyExpandedEventArgs
RootBoxFdo This subclass adds functionality specific to FDO.
RowBox Class that corresponds to a 'row' element in HTML.
RunBox A RunBox is a sort of NullObject for a GroupBox: it is used as a grouping construct when several things that would normally be grouped into a parent box are instead directly added to the higher level parent.
SharpView
SharpViewFdo Subclass of SharpView for stuff that depends on FieldWorks
Thickness Similar to System.Windows.Thickness, this represents the four thicknesses of the sides of a rectangle in 96ths of an inch. It is used for the thickness of a border, padding, and margins. It is not a struct because it Thickness variables are often null, and we do not need to allocate space for four doubles. Another reason to define it is to avoid using PresentationFramework, which may be a problem for Mono.