private void DisplayInflFeatures(IVwEnv vwenv, IDictionary<IFsFeatDefn, object> inflFeatures)
{
int numLines = GetNumLines(inflFeatures);
if (numLines == 1)
{
// use normal brackets for a single line constraint
vwenv.AddProp(ktagInnerNonBoundary, this, kfragLeftBracket);
DisplayInflFeatureLines(vwenv, inflFeatures, false);
vwenv.AddProp(ktagInnerNonBoundary, this, kfragRightBracket);
}
else
{
// left bracket pile
vwenv.Props = m_bracketProps;
vwenv.set_IntProperty((int) FwTextPropType.ktptMarginLeading, (int) FwTextPropVar.ktpvMilliPoint, PileMargin);
vwenv.OpenInnerPile();
vwenv.AddProp(ktagLeftNonBoundary, this, kfragLeftBracketUpHook);
for (int i = 1; i < numLines - 1; i++)
vwenv.AddProp(ktagLeftNonBoundary, this, kfragLeftBracketExt);
vwenv.AddProp(ktagLeftBoundary, this, kfragLeftBracketLowHook);
vwenv.CloseInnerPile();
// feature pile
vwenv.set_IntProperty((int) FwTextPropType.ktptAlign, (int) FwTextPropVar.ktpvEnum, (int) FwTextAlign.ktalLeft);
vwenv.OpenInnerPile();
DisplayInflFeatureLines(vwenv, inflFeatures, true);
vwenv.CloseInnerPile();
// right bracket pile
vwenv.Props = m_bracketProps;
vwenv.set_IntProperty((int) FwTextPropType.ktptMarginTrailing, (int) FwTextPropVar.ktpvMilliPoint, PileMargin);
vwenv.OpenInnerPile();
vwenv.AddProp(ktagInnerNonBoundary, this, kfragRightBracketUpHook);
for (int i = 1; i < numLines - 1; i++)
vwenv.AddProp(ktagInnerNonBoundary, this, kfragRightBracketExt);
vwenv.AddProp(ktagInnerNonBoundary, this, kfragRightBracketLowHook);
vwenv.CloseInnerPile();
}
}