private static void AddVariantTypeGlossInfo(TsIncStrBldr sb, IWritingSystem wsGloss, IList <IMultiUnicode> multiUnicodeAccessors, IWritingSystem wsUser) { const string sSeriesSeparator = kDefaultSeriesSeparatorLexEntryTypeReverseAbbr; var fBeginSeparator = true; foreach (var multiUnicodeAccessor in multiUnicodeAccessors) { int wsActual2; var tssVariantTypeInfo = multiUnicodeAccessor.GetAlternativeOrBestTss(wsGloss.Handle, out wsActual2); // just concatenate them together separated by comma. if (tssVariantTypeInfo == null || tssVariantTypeInfo.Length <= 0) { continue; } if (!fBeginSeparator) { sb.AppendTsString(TsStringUtils.MakeTss(sSeriesSeparator, wsUser.Handle)); } sb.AppendTsString((tssVariantTypeInfo)); fBeginSeparator = false; } // Handle the special case where no reverse abbr was found. if (fBeginSeparator && multiUnicodeAccessors.Count > 0) { sb.AppendTsString(multiUnicodeAccessors.ElementAt(0).NotFoundTss); } }
private static void InsertHomographNumber(TsIncStrBldr tisb, int nHomograph, HomographConfiguration hc, HomographConfiguration.HeadwordVariant hv) { if (nHomograph > 0 && hc.ShowHomographNumber(hv)) { tisb.SetStrPropValue((int)FwTextPropType.ktptNamedStyle, HomographConfiguration.ksHomographNumberStyle); tisb.Append(nHomograph.ToString()); tisb.SetStrPropValue((int)FwTextPropType.ktptNamedStyle, null); } }
/// <summary> /// /// </summary> /// <param name="sb"></param> /// <param name="glossAffixAccessor">GlossPrepend or GlossAppend</param> /// <param name="wsGloss"></param> /// <param name="wsUser"></param> /// <returns></returns> public static ITsString AddTssGlossAffix(TsIncStrBldr sb, IMultiUnicode glossAffixAccessor, IWritingSystem wsGloss, IWritingSystem wsUser) { if (sb == null) { sb = TsIncStrBldrClass.Create(); } int wsActual1; ITsString tssGlossPrepend = glossAffixAccessor.GetAlternativeOrBestTss(wsGloss.Handle, out wsActual1); if (tssGlossPrepend != null && tssGlossPrepend.Length != 0) { bool isPrepend = (glossAffixAccessor.Flid == LexEntryInflTypeTags.kflidGlossPrepend); AppendGlossAffix(sb, tssGlossPrepend, isPrepend, kDefaultSeparatorLexEntryInflTypeGlossAffix, wsUser); } return(tssGlossPrepend); }
private static void AddGloss(TsIncStrBldr sb, IMultiStringAccessor gloss, IWritingSystem wsGloss) { ITsString tssGloss = GetTssGloss(gloss, wsGloss); sb.AppendTsString(tssGloss); }