C# (CSharp) SIL.FieldWorks.Common.RootSites Namespace

Nested Namespaces

SIL.FieldWorks.Common.RootSites.SimpleRootSiteTests

Classes

Name Description
AccessibilityWrapper This class implements the DotNet Acessibility interface by wrapping the COM IAccessible interface implemented by the root box. It is uncomfortably similar to COMInterfaces.AccessibleObjectFromIAccessible, but was developed independently since we (JohnT and Dan) didn't find AccessibleObjectFromIAccessible until later. The most important difference is that this version stores the root site as well as its AccessibleRootObject. This handles the problem that DotNet apparently only asks any one object to CreateAccessibilityInstance() once; then it caches the result. So if we return null, or make an AccessibleObjectFromIAccessible that has a null IAccessible, it will never work later when the root box has been made and the IAccessible is available. (In fact, it crashes, because AccessibleObjectFromIAccessible is not coded to handle a null IAccessible.) This class, whenever it needs the IAccessble, checks whether it is null. If so, it checks the root site to see whether it is now possible to get a proper AccessibleRootObject, and if so starts using it. If not, it answers something safe and neutral. It's possible that we could refactor to share some code between the two classes, for example, give AccessibleObjectFromIAccessible a virtual method to get the IAccessible (and always use it), then this class might only need to override that method to try getting the IAcessible from the rootsite if it doesn't already have one. However, we'd have to merge into AccessibleObjectFromIAccessible all the code from here that handles IAccessible being null. Another possible way to remove the duplication is just to delete AccessibleObjectFromIAccessible, since it doesn't seem to be used and was possibly just an unsuccessful attempt at what this class seems to do successfully.
ActiveViewHelper ActiveViewHelper attemps to keep track of the active view (i.e. an IRootSite) of a form.
CollectorEnv CollectorEnv is a base class for objects that implement the IVwEnv interface. The main implementation (in C++) is normally used to actually produce a Views-based display. This class and its subclasses are used by the same code, but for purposes like producing an equivalent string, or testing whether some display will be blank. Note that collectorEnv does not currently fully support multiple-root-object situations (you would have to call the outer Display() method for each root box, and it would not track ihvoRoot...I'm not quite sure where that might be needed.)
CollectorEnv.LocationInfo Contains information about a location. This is essentially a cheap IVwSelection that can be used for finding/replacing.
CollectorEnv.PrevPropCounter
CollectorEnv.StackItem
CollectorEnvServices
FwRightMouseClickEventArgs This event argument class is used to handle right clicks in SimpleRootSite objects. If someone handles the event, then they should set EventHandled to true, so the regular mouse processing is skipped.
IbusRootSiteEventHandler
IbusRootSiteEventHandler.SelectionWrapper
LocalLinkArgs This class is used for the communication between VwBaseVc.DoHotLinkAction and LinkListener.OnHandleLocalHotlink.
MaxStringWidthForColumnEnv Estimates the longest width (in pixels) of string contents in a specified column in a table. Currently only calculates for cells spanning one column in a views table.
NoPictureVc
OnePictureOneEditBoxVc
OnePictureVc
OrientationManager Orientation manager contains methods implementing parts of SimpleRootSite that need to be different when a view is oriented vertically. Subclasses handle non-standard orientations, while the default methods in OritentationManager itself handle normal horizontal orientation.
PicturePropertyCollectorEnv collects pictures as points of interest
PointsOfInterestCollectorEnv
PointsOfInterestCollectorEnv.CollectionModeHelper This is for putting a PointsOfInterestCollectorEnv into a mode for collecting points of interest.
PrintRootSite Implements IVwRootSite in a trivial way for printing.
RootSiteControl This class provides for required behavior when a RootSite class is used as a control on a form. Specifically, it deals with Tabbing issues.
RootSiteDataProviderVc The class that displays the simple string view
RootSiteDataProviderView
RootSiteDataProviderViewBase this was basically copied from: T:SimpleRootSiteTests.SimpleRootSiteDataProviderViewBase so that we could use RootSite as a base.
RootSiteDataProvider_MultiStringView
RootSiteDataProvider_MultiStringViewVc The class that displays the simple string view
SelectionHelper
SelectionHelper.SelInfo
SimpleRootSite Base class for hosting a view in an application.
SimpleRootSite.WindowsLanguageProfileSink
StringCollectorEnv This subclass is used to accumulate a string equivalent to the result that would be produced by calling Display().
StringMeasureEnv This subclass is used to estimate the total width (and max height) of all text that the display shows. Currently it only supports a rough approximation by picking one font to use throughout. Could be enhanced to consider changes in text properties. Could be much more easily made to do the right thing if we had a valid base VwEnv.
StringPropertyCollectorEnv Todo: keep track of editable properties and the flow objects they apply to in OpenFlowObject()
SuspendDrawing Suspends drawing the parent object
TestCollectorEnv This subclass is used to test whether the call to Display produces anything. Adding literals doesn't count.
TextSelInfo TextSelInfo is another variety of selection helper. It provides easy access to certain kinds of information in a selection. NOTE: some clients (e.g. EditingHelper.TextSelInfoBeforeEdit) depend upon the information cached in this object even after the underlying Selection has changed state.
TsStringCollectorEnv Collect the results as a TsString.
VerticalOrientationManager A base class for orientation managers that do vertical alignment.
ViewInputManager