Interface ISideBySideEditor
The side-by-side editor control that coordinates things between the source and target language edit controls that appear side by side inside this control.
Namespace: Sdl.DesktopEditor.EditorApi
Assembly: Sdl.DesktopEditor.EditorApi.dll
Syntax
public interface ISideBySideEditor : IControl, IDisposable
Properties
ActiveEditControl
The edit control that currently is editable, if it is
the source or target edit control, or null if neither.
Declaration
IFrameworkEditControl ActiveEditControl { get; }
Property Value
| Type | Description |
|---|---|
| IFrameworkEditControl |
ActiveRowNumber
Declaration
int ActiveRowNumber { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
AutoDisposeDocument
Determines if the currently assigned document should be automatically disposed of when another document is assigned and/or when the editor is disposed.
Declaration
bool AutoDisposeDocument { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
The initial value of this property reflects the auto-dispose parameter passed to SetDocument(IBilingualDocument, Boolean).
AutomationId
Id used for UI Automation
Declaration
string AutomationId { set; }
Property Value
| Type | Description |
|---|---|
| System.String |
AutoScrollSource
When true the source edit control is automatically scrolled so that it is aligned with the current selection in the target edit control when the selection in the target control is moved.
Declaration
bool AutoScrollSource { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
When this property is false the source edit control can still be
explicitly scrolled to align it with the current selection in the
target edit control by calling ScrollSourceToTargetSelection().
DisplaySettings
The display settings that will be used in both the source and target edit controls.
Declaration
EditControlDisplaySettings DisplaySettings { get; }
Property Value
| Type | Description |
|---|---|
| EditControlDisplaySettings |
Document
The bilingual document that contains the content shown in the source and target editors.
Declaration
IBilingualDocument Document { get; }
Property Value
| Type | Description |
|---|---|
| IBilingualDocument |
Remarks
Assign a document to the editor by calling SetDocument(IBilingualDocument, Boolean).
If the AutoDisposeDocument property is true this document
will be disposed by the editor when it is no longer needed. To get notifications
when the document is disposed, connect to the Disposing event.
DocumentEditingUser
Sets the user to be used for revisions
Declaration
string DocumentEditingUser { set; }
Property Value
| Type | Description |
|---|---|
| System.String |
EnableImplicitRowActivation
When true, row activation will occur when the user row selection changes.
When false, row activation will only occur when the user manually activates it.
Declaration
bool EnableImplicitRowActivation { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
FocusedControl
The edit control that currently has input focus, if it is
the source or target edit control, or null if neither.
Declaration
IFrameworkEditControl FocusedControl { get; }
Property Value
| Type | Description |
|---|---|
| IFrameworkEditControl |
HideFileTags
When true, segments containing file tags are hidden.
Declaration
bool HideFileTags { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
HideHideableTags
When true any tags with CanHide
set to true will not be shown in the editor.
Declaration
bool HideHideableTags { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
Hidden tags can still be manipulated through normal editing operations in the surrounding text, so they may get accidentally deleted!
When source and target use different settings this property is false.
HideTextTooltips
Allows hiding and restoration of tooltips on text nodes. This affects, for example, text inside a commented or revision marked range.
Declaration
bool HideTextTooltips { set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsInitialUpdateCompleted
true when the control has been fully initialized. This is set just
before the AfterInitialUpdate event is raised.
Declaration
bool IsInitialUpdateCompleted { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
When a different document is assigned to the control this property may
be false until the control has been updated to reflect the new content.
LayoutSynchronizer
To synchronize cell height between source and target controls every ISideBySideEditor implementation must provide a LayoutSynchronizer.
Declaration
ILayoutSynchronizer LayoutSynchronizer { get; }
Property Value
| Type | Description |
|---|---|
| ILayoutSynchronizer |
ProjectEditorConfig
Editor configuration based on Project restrictions (secure mode/ normal mode)
Declaration
ProjectEditorSettings ProjectEditorConfig { get; set; }
Property Value
| Type | Description |
|---|---|
| ProjectEditorSettings |
RowVisibilityDelegate
The delegate that will be used when calculating which rows are visible and which are hidden in the edit control.
Declaration
Predicate<IRowInfo> RowVisibilityDelegate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Predicate<IRowInfo> |
ShowSourceSegmentIdColumn
Determines whether the left segment column id will be displayed
Declaration
bool ShowSourceSegmentIdColumn { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
ShowWhitespaceCharacters
When true whitespace characters such as space, tab, non-breaking spaces etc. are
shown with symbols in both the source and target editor (default is false).
Declaration
bool ShowWhitespaceCharacters { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
When source and target use different settings this property is false.
Source
The edit control showing the source language content in the side-by-side editor.
Declaration
IFrameworkEditControl Source { get; }
Property Value
| Type | Description |
|---|---|
| IFrameworkEditControl |
SourceRowNumberProvider
Gets or sets an optional source row provider (used in Alignment target editor context). The provider should return -1 when a correspondent row doesn't exist.
Declaration
CorrespondenceProvider SourceRowNumberProvider { get; set; }
Property Value
| Type | Description |
|---|---|
| CorrespondenceProvider |
SplitContainer
The splitter control that hosts the source and target controls.
Declaration
SplitContainer SplitContainer { get; }
Property Value
| Type | Description |
|---|---|
| System.Windows.Forms.SplitContainer |
SuppressFormatting
When true all semi-WYSIWYG formatting information will be ignored
and all text in the source and target controls will be formatted using the default font and
foreground color of the respective Control.
Declaration
bool SuppressFormatting { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
This setting is off by default.
NOTE: It is important to set the HideHideableTags to true
if this setting is enabled, otherwise there will be no visual indication
to the presence of hidden tags, as the surrounding text will all have the
same formatting.
Changing this setting will affect the corresponding setting on both the source
and target controls. If the source and target have different settings the value of this
property will be false.
Note that font fallback will still be in effect, which may cause a different font to be used for characters that cannot be displayed using the default font.
TagDisplayMode
The display mode for tags in both source and target edit controls.
Declaration
TagDisplayMode TagDisplayMode { get; set; }
Property Value
| Type | Description |
|---|---|
| TagDisplayMode |
Remarks
If source and target uses different tag display modes this property
returns TagDisplayMode.Unspecified.
Changing this property will cause the source and target content to be re-formatted.
Target
The edit control showing the target language content in the side-by-side editor.
Declaration
IFrameworkEditControl Target { get; }
Property Value
| Type | Description |
|---|---|
| IFrameworkEditControl |
Methods
Redo()
Performs a redo operation on the correct edit control and updates the caret position in both the source and target controls.
Declaration
bool Redo()
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
RedoMultiple(Int64)
Performs multiple redo operations on the correct edit controls and updates the caret position in both the source and target controls.
Declaration
bool RedoMultiple(long count)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int64 | count |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
Redraw()
Force a re-layout, re-draw and refresh of the content of both the source and the target control.
Declaration
void Redraw()
Remarks
Call this method to update the editor if the document content has changed as the result of external API operations, e.g. after loading a document from a file.
ScrollSourceToTargetSelection()
Scrolls the source edit control so that the active end of the current selection in the target is aligned with the corresponding source content.
Declaration
void ScrollSourceToTargetSelection()
SetDocument(IBilingualDocument, Boolean)
Assigns the specified document to the editor. The document can thereafter be accessed from the Document property, and the content of the document is shown in the source and target edit controls.
Declaration
void SetDocument(IBilingualDocument document, bool autoDispose)
Parameters
| Type | Name | Description |
|---|---|---|
| IBilingualDocument | document | The document who's content should be displayed in the edit controls,
or |
| System.Boolean | autoDispose | Determines whether the control should call Dispose() on the document when it is no longer needed (i.e. when another document is set, or when the editor is disposed). |
Remarks
The auto-dispose flag indicates whether the control should take ownership of the document, and automatically dispose of it when it is no longer needed. This behavior can be changed at a later stage by setting the AutoDisposeDocument property. If auto-dispose is not set it is the responsibility of the application to ensure that the document gets properly disposed of when no longer needed. This is important, as the document can not be garbage collected until it has been explicitly disposed.
IMPORTANT: This operation will cause the source and target edit control instances to be destroyed and re-created. Any external event handlers connected to the original source and target controls should be disconnected before this call and (if desired) re-connected to the new controls after this operation.
Passing null for the document will render the source and target controls empty.
ToggleFocus()
Toggles the focus between the source and target and moves the selection to the start of the equivalent row in the focused control.
Declaration
void ToggleFocus()
Undo()
Performs an undo operation on the correct edit control and updates the caret position in both the source and target controls.
Declaration
bool Undo()
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
UndoMultiple(Int64)
Performs multiple undo operations on the correct edit controls and updates the caret position in both the source and target controls.
Declaration
bool UndoMultiple(long count)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int64 | count |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
UpdateActiveRow(IEditControl)
Updates the active row in the editor to match the position of the current selection
Declaration
void UpdateActiveRow(IEditControl editControl)
Parameters
| Type | Name | Description |
|---|---|---|
| IEditControl | editControl |
Events
ActiveRowChanged
Fired whenever the active row changes.
Declaration
event EventHandler<ActiveRowChangedEventArgs> ActiveRowChanged
Event Type
| Type | Description |
|---|---|
| System.EventHandler<ActiveRowChangedEventArgs> |
AfterEditControlsCreated
Raised after the source and target edit controls have been created. This allows external components to add, for example, custom columns to the side-by-side editor at a controlled point.
Declaration
event EventHandler<AfterEditControlsCreatedEventArgs> AfterEditControlsCreated
Event Type
| Type | Description |
|---|---|
| System.EventHandler<AfterEditControlsCreatedEventArgs> |
AfterInitialUpdate
Raised when the visible area of both the source and the target control has been fully laid out and painted for the first time. This event will be raised also if a different document is assigned to the control (after the initial update resulting from that).
Declaration
event EventHandler<AfterInitialUpdateEventArgs> AfterInitialUpdate
Event Type
| Type | Description |
|---|---|
| System.EventHandler<AfterInitialUpdateEventArgs> |
FocusedControlChanged
Fired when the source or target edit control gets or loses focus.
Declaration
event EventHandler<FocusedControlChangedEventArgs> FocusedControlChanged
Event Type
| Type | Description |
|---|---|
| System.EventHandler<FocusedControlChangedEventArgs> |
Remarks
You can also handle focus changes by directly binding to the GotFocus or LostFocus
events on the Control
events of the Source or Target controls.
SelectionChanged
Fired when the selection changes in the source or target edit control.
Declaration
event EventHandler<SelectionChangedEventArgs> SelectionChanged
Event Type
| Type | Description |
|---|---|
| System.EventHandler<SelectionChangedEventArgs> |