本文整理汇总了C#中IVwEnv.CloseTableBody方法的典型用法代码示例。如果您正苦于以下问题:C# IVwEnv.CloseTableBody方法的具体用法?C# IVwEnv.CloseTableBody怎么用?C# IVwEnv.CloseTableBody使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IVwEnv
的用法示例。
在下文中一共展示了IVwEnv.CloseTableBody方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DisplayWithWritingSystemLabel
private void DisplayWithWritingSystemLabel(IVwEnv vwenv, int ws)
{
ITsString tssLabel = NameOfWs(ws);
// We use a table to display
// encodings in column one and the strings in column two.
// The table uses 100% of the available width.
VwLength vlTable;
vlTable.nVal = 10000;
vlTable.unit = VwUnit.kunPercent100;
int dxs; // Width of displayed string.
int dys; // Height of displayed string (not used here).
vwenv.get_StringWidth(tssLabel, null, out dxs, out dys);
VwLength vlColWs; // 5-pt space plus max label width.
vlColWs.nVal = dxs + 5000;
vlColWs.unit = VwUnit.kunPoint1000;
// The Main column is relative and uses the rest of the space.
VwLength vlColMain;
vlColMain.nVal = 1;
vlColMain.unit = VwUnit.kunRelative;
// Enhance JohnT: possibly allow for right-to-left UI by reversing columns?
vwenv.OpenTable(2, // Two columns.
vlTable, // Table uses 100% of available width.
0, // Border thickness.
VwAlignment.kvaLeft, // Default alignment.
VwFramePosition.kvfpVoid, // No border.
VwRule.kvrlNone, // No rules between cells.
0, // No forced space between cells.
0, // No padding inside cells.
false);
// Specify column widths. The first argument is the number of columns,
// not a column index. The writing system column only occurs at all if its
// width is non-zero.
vwenv.MakeColumns(1, vlColWs);
vwenv.MakeColumns(1, vlColMain);
vwenv.OpenTableBody();
vwenv.OpenTableRow();
// First cell has writing system abbreviation displayed using m_ttpLabel.
//vwenv.Props = m_ttpLabel;
vwenv.OpenTableCell(1, 1);
vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum,
(int)TptEditable.ktptNotEditable);
vwenv.AddString(tssLabel);
vwenv.CloseTableCell();
// Second cell has the string contents for the alternative.
// DN version has some property setting, including trailing margin and RTL.
if (m_fRtlScript)
{
vwenv.set_IntProperty((int) FwTextPropType.ktptRightToLeft,
(int) FwTextPropVar.ktpvEnum,
(int) FwTextToggleVal.kttvForceOn);
vwenv.set_IntProperty((int) FwTextPropType.ktptAlign,
(int) FwTextPropVar.ktpvEnum,
(int) FwTextAlign.ktalTrailing);
}
//if (!m_editable)
//{
// vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum,
// (int)TptEditable.ktptNotEditable);
//}
vwenv.set_IntProperty((int) FwTextPropType.ktptPadTop, (int) FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.OpenTableCell(1, 1);
vwenv.AddStringProp(m_flid, this);
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
}
示例2: Display
//.........这里部分代码省略.........
// (int)FwTextToggleVal.kttvForceOn);
// vwenv.set_IntProperty((int)FwTextPropType.ktptAlign,
// (int)FwTextPropVar.ktpvEnum,
// (int)FwTextAlign.ktalTrailing);
// }
// vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, 2000);
// vwenv.AddStringAltMember(m_flid, m_rgws[0].Hvo, this);
// return;
//}
ITsStrFactory tsf = TsStrFactoryClass.Create();
// We use a table to display
// encodings in column one and the strings in column two.
// The table uses 100% of the available width.
VwLength vlTable;
vlTable.nVal = 10000;
vlTable.unit = VwUnit.kunPercent100;
// The width of the writing system column is determined from the width of the
// longest one which will be displayed.
int dxs; // Width of displayed string.
int dys; // Height of displayed string (not used here).
int dxsMax = 0; // Max width required.
for (int i = 0; i < m_rgws.Length; ++i)
{
// Set qtss to a string representing the writing system.
vwenv.get_StringWidth(NameOfWs(tsf, i),
m_ttpLabel, out dxs, out dys);
dxsMax = Math.Max(dxsMax, dxs);
}
VwLength vlColWs; // 5-pt space plus max label width.
vlColWs.nVal = dxsMax + 5000;
vlColWs.unit = VwUnit.kunPoint1000;
// Enhance JohnT: possibly allow for right-to-left UI by reversing columns?
// The Main column is relative and uses the rest of the space.
VwLength vlColMain;
vlColMain.nVal = 1;
vlColMain.unit = VwUnit.kunRelative;
vwenv.OpenTable(2, // Two columns.
vlTable, // Table uses 100% of available width.
0, // Border thickness.
VwAlignment.kvaLeft, // Default alignment.
VwFramePosition.kvfpVoid, // No border.
VwRule.kvrlNone, // No rules between cells.
0, // No forced space between cells.
0, // No padding inside cells.
false);
// Specify column widths. The first argument is the number of columns,
// not a column index. The writing system column only occurs at all if its
// width is non-zero.
vwenv.MakeColumns(1, vlColWs);
vwenv.MakeColumns(1, vlColMain);
vwenv.OpenTableBody();
Set<ILgWritingSystem> visibleWss = new Set<ILgWritingSystem>();
// if we passed in a view and have WritingSystemsToDisplay
// then we'll load that list in order to filter our larger m_rgws list.
AddViewWritingSystems(visibleWss);
for (int i = 0; i < m_rgws.Length; ++i)
{
if (SkipEmptyWritingSystem(visibleWss, i, hvo))
continue;
vwenv.OpenTableRow();
// First cell has writing system abbreviation displayed using m_ttpLabel.
vwenv.Props = m_ttpLabel;
vwenv.OpenTableCell(1,1);
vwenv.AddString(NameOfWs(tsf, i));
vwenv.CloseTableCell();
// Second cell has the string contents for the alternative.
// DN version has some property setting, including trailing margin and
// RTL.
if (m_rgws[i].RightToLeft)
{
vwenv.set_IntProperty((int)FwTextPropType.ktptRightToLeft,
(int)FwTextPropVar.ktpvEnum,
(int)FwTextToggleVal.kttvForceOn);
vwenv.set_IntProperty((int)FwTextPropType.ktptAlign,
(int)FwTextPropVar.ktpvEnum,
(int)FwTextAlign.ktalTrailing);
}
if (!m_editable)
{
vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum,
(int)TptEditable.ktptNotEditable);
}
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.OpenTableCell(1,1);
vwenv.AddStringAltMember(m_flid, m_rgws[i].Hvo, this);
vwenv.CloseTableCell();
vwenv.CloseTableRow();
}
vwenv.CloseTableBody();
vwenv.CloseTable();
}
示例3: Display
//.........这里部分代码省略.........
CloseSingleLinePile(vwenv, false);
}
else
{
for (int i = m_rule.RightEnvIndex; i < m_rule.RightEnvLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.OpenTableRow();
// input result header cell
vwenv.Props = m_rowHeaderProps;
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_resultStr);
vwenv.CloseTableCell();
// result left context cell
vwenv.Props = m_resultCtxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderLeading, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rule.LeftEnvIndex != -1)
{
for (int i = 0; i < m_rule.LeftEnvLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// result right switch cell
vwenv.Props = m_resultCtxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderLeading, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderTrailing, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rule.RightSwitchIndex != -1)
{
for (int i = m_rule.RightSwitchIndex; i < m_rule.RightSwitchLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
if (m_rule.MiddleIndex != -1 && m_rule.IsMiddleWithLeftSwitch)
{
for (int i = m_rule.MiddleIndex; i < m_rule.MiddleLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// result left switch cell
vwenv.Props = m_resultCtxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderTrailing, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rule.MiddleIndex != -1 && !m_rule.IsMiddleWithLeftSwitch)
{
for (int i = m_rule.MiddleIndex; i < m_rule.MiddleLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
if (m_rule.LeftSwitchIndex != -1)
{
for (int i = m_rule.LeftSwitchIndex; i < m_rule.LeftSwitchLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// result right context cell
vwenv.Props = m_resultCtxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderTrailing, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rule.RightEnvIndex != -1)
{
for (int i = m_rule.RightEnvIndex; i < m_rule.RightEnvLimit; i++)
vwenv.AddObj(m_rule.StrucDescOS[i].Hvo, this, kfragContext);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
break;
default:
base.Display(vwenv, hvo, frag);
break;
}
}
示例4: Display
//.........这里部分代码省略.........
{
// We are displaying a back translation or Scripture in draftview in a table
// Open a table to display the BT para in column 1, and the icon in column 2.
VwLength vlTable; // we use this to specify that the table takes 100% of the width.
vlTable.nVal = 10000;
vlTable.unit = VwUnit.kunPercent100;
VwLength vlColumn; // and this one to specify 90% for the text
vlColumn.nVal = DisplayTranslation ? 9000 : 10000;
vlColumn.unit = VwUnit.kunPercent100;
int nColumns = DisplayTranslation ? 2 : 1;
vwenv.OpenTable(nColumns, // One or two columns.
vlTable, // Table uses 100% of available width.
0, // Border thickness.
VwAlignment.kvaLeft, // Default alignment.
VwFramePosition.kvfpVoid, // No border.
//VwFramePosition.kvfpBox,
//VwRule.kvrlAll, // rule lines between cells
VwRule.kvrlNone,
0, //No space between cells.
0, //No padding inside cells.
false);
// Specify column widths. The first argument is the number of columns,
// not a column index.
vwenv.MakeColumns(nColumns, vlColumn);
vwenv.OpenTableBody();
vwenv.OpenTableRow();
// Display paragraph in the first cell
vwenv.OpenTableCell(1, 1);
InsertParagraphBody(vwenv, hvo, frag, true, ContentType, this);
vwenv.CloseTableCell();
if (DisplayTranslation)
{
// Stylesheet should never be null for a VC that displays BTs, but to be safe...
Debug.Assert (m_stylesheet != null);
if (m_stylesheet != null)
{
IStPara para = m_cache.ServiceLocator.GetInstance<IStParaRepository>().GetObject(hvo);
ITsTextProps styleRules = para.StyleRules;
if (styleRules == null)
{
Debug.Fail("Style Rules should not be null");
styleRules = NormalStyle;
}
string paraStyleName = styleRules.GetStrPropValue((int)FwTextPropType.ktptNamedStyle);
ITsTextProps ttp = m_stylesheet.GetStyleRgch(0, paraStyleName);
Debug.Assert(ttp != null);
if (ttp != null)
{
int var;
int spaceBefore = ttp.GetIntPropValues((int)FwTextPropType.ktptSpaceBefore, out var);
if (spaceBefore > 0)
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, var, spaceBefore);
}
}
// BT status icon in the next cell, not editable
vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum,
(int)TptEditable.ktptNotEditable);
vwenv.OpenTableCell(1, 1);
vwenv.AddObjVec(StTxtParaTags.kflidTranslations, this, (int)ScrFrags.kfrBtTranslationStatus);
vwenv.CloseTableCell();
}
// Close table
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
}
break;
case (int)ScrFrags.kfrBtTranslationStatus:
{
ICmTranslation trans = m_cache.ServiceLocator.GetInstance<ICmTranslationRepository>().GetObject(hvo);
if (trans != null)
{
string status = trans.Status.get_String(m_wsDefault).Text;
IPicture picture;
if (status == BackTranslationStatus.Checked.ToString())
picture = m_CheckedPic;
else if (status == BackTranslationStatus.Finished.ToString())
picture = m_FinishedPic;
else
picture = m_UnfinishedPic;
vwenv.OpenDiv();
vwenv.AddPicture(picture, -1, 0, 0);
vwenv.NoteDependency(new [] {hvo}, new [] {CmTranslationTags.kflidStatus}, 1);
vwenv.CloseDiv();
}
}
break;
default:
base.Display(vwenv, hvo, frag);
break;
}
}
示例5: DisplayAnnotationFragment
/// ------------------------------------------------------------------------------------
/// <summary>
/// Displays the annotation fragment.
/// </summary>
/// ------------------------------------------------------------------------------------
private void DisplayAnnotationFragment(IVwEnv vwenv, int hvo)
{
IScrScriptureNote ann = m_cache.ServiceLocator.GetInstance<IScrScriptureNoteRepository>().GetObject(hvo);
bool isExpanded = (m_expandTable.ContainsKey(hvo) && m_expandTable[hvo]);
int hvoFirstResponse = ann.ResponsesOS.Count > 0 ? ann.ResponsesOS[0].Hvo : 0;
bool responseExpanded = m_expandTable.ContainsKey(hvoFirstResponse) && m_expandTable[hvoFirstResponse];
// put the separator at the top of the note
InsertNoteSeparator(vwenv);
// Open a table to display the first line of the annotation.
VwLength vlTable; // we use this to specify that the table takes 100% of the width.
vlTable.nVal = 10000;
vlTable.unit = VwUnit.kunPercent100;
int borderThickness = 2000;
int columnCount = 9;
VwFramePosition framePos = VwFramePosition.kvfpVoid;
if (ann.Hvo == SelectedNoteHvo)
{
columnCount = 7;
framePos = (ann.ResponsesOS.Count == 0 || !isExpanded || !responseExpanded) ?
VwFramePosition.kvfpBox : (VwFramePosition.kvfpAbove | VwFramePosition.kvfpVsides);
}
vwenv.OpenTable(columnCount,
vlTable, // Table uses 100% of available width.
borderThickness,
VwAlignment.kvaLeft, // Default alignment.
framePos,
//VwFramePosition.kvfpBox,
//VwRule.kvrlAll, // rule lines between cells
VwRule.kvrlNone,
0, //No space between cells.
0, //No padding inside cells.
false);
vwenv.NoteDependency(new int[] { hvo, hvo }, new int[]{m_expansionTag,
ScrScriptureNoteTags.kflidResponses}, 2);
// Specify column widths. The first argument is the number of columns,
// not a column index.
VwLength vlColumn;
if (ann.Hvo != SelectedNoteHvo)
{
vlColumn.nVal = borderThickness;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(1, vlColumn);
}
vlColumn.nVal = 13000;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(2, vlColumn);
vlColumn.nVal = 60000;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(1, vlColumn);
vlColumn.nVal = 2;
vlColumn.unit = VwUnit.kunRelative;
vwenv.MakeColumns(1, vlColumn); // Column for the CONNOT categories
vlColumn.nVal = 12000;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(1, vlColumn); // Column for the chooser button when showing quote
vlColumn.nVal = 3;
vlColumn.unit = VwUnit.kunRelative;
vwenv.MakeColumns(1, vlColumn); // Column for the quote when collapsed
vlColumn.nVal = 12000;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(1, vlColumn); // Column for the chooser button when not showing quote
if (ann.Hvo != SelectedNoteHvo)
{
vlColumn.nVal = borderThickness;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(1, vlColumn);
}
vwenv.OpenTableBody();
DisplayAnnotation(vwenv, ann, isExpanded);
// Only display the responses if this note is expanded and has responses.
if (!isExpanded || ann.ResponsesOS.Count == 0)
{
// Close table
vwenv.CloseTableBody();
vwenv.CloseTable();
return;
}
vwenv.NoteDependency(new int[] { ann.ResponsesOS.ToHvoArray()[0] },
new int[] { m_expansionTag }, 1);
OpenTableRow(vwenv, ann);
// Display empty first cell
vwenv.OpenTableCell(1, 1);
vwenv.CloseTableCell();
// Display expand box (+/-) in the second cell
//.........这里部分代码省略.........
示例6: DisplayResponseFragment
/// ------------------------------------------------------------------------------------
/// <summary>
/// Displays the response fragment.
/// </summary>
/// ------------------------------------------------------------------------------------
private void DisplayResponseFragment(IVwEnv vwenv, int hvo)
{
IStJournalText text = m_cache.ServiceLocator.GetInstance<IStJournalTextRepository>().GetObject(hvo);
// Open a table to display the the response.
VwLength vlTable; // we use this to specify that the table takes 100% of the width.
vlTable.nVal = 10000;
vlTable.unit = VwUnit.kunPercent100;
VwFramePosition framePos = VwFramePosition.kvfpVoid;
if (text.Owner.Hvo == SelectedNoteHvo)
{
framePos = (VwFramePosition.kvfpBelow | VwFramePosition.kvfpVsides);
}
vwenv.OpenTable(5, // Number of columns.
vlTable, // Table uses 100% of available width.
2000, // Border thickness.
VwAlignment.kvaLeft, // Default alignment.
framePos, // No border.
//VwFramePosition.kvfpBox,
//VwRule.kvrlAll, // rule lines between cells
VwRule.kvrlNone,
0, //No space between cells.
0, //No padding inside cells.
false);
// Specify column widths. The first argument is the number of columns,
// not a column index.
VwLength vlColumn; // and this one to specify 90% for the text
vlColumn.nVal = 12000;
vlColumn.unit = VwUnit.kunPoint1000;
vwenv.MakeColumns(3, vlColumn);
// vlColumn.nVal = 60000;
// vlColumn.unit = VwUnit.kunPoint1000;
// vwenv.MakeColumns(1, vlColumn);
vlColumn.nVal = 1;
vlColumn.unit = VwUnit.kunRelative;
vwenv.MakeColumns(2, vlColumn);
vwenv.OpenTableBody();
DisplayResponse(vwenv, text, m_expandTable.ContainsKey(hvo) && m_expandTable[hvo]);
// Close table
vwenv.CloseTableBody();
vwenv.CloseTable();
}
示例7: AddEditRow
/// ------------------------------------------------------------------------------------
/// <summary>
/// Add a table/row for editing a new object.
/// </summary>
/// <param name="vwenv">The vwenv.</param>
/// <param name="hvo">The hvo.</param>
/// ------------------------------------------------------------------------------------
private void AddEditRow(IVwEnv vwenv, int hvo)
{
// set the border color to gray
vwenv.set_IntProperty((int )FwTextPropType.ktptBorderColor,
(int)FwTextPropVar.ktpvDefault,
(int)RGB(BorderColor)); //SystemColors.ControlDark));
// Make a table
VwLength[] rglength = m_xbv.GetColWidthInfo();
int colCount = m_columns.Count;
if (m_fShowSelected)
colCount++;
VwLength vl100; // Length representing 100%.
vl100.unit = rglength[0].unit;
vl100.nVal = 1;
for (int i = 0; i < colCount; ++i)
{
Debug.Assert(vl100.unit == rglength[i].unit);
vl100.nVal += rglength[i].nVal;
}
vwenv.OpenTable(colCount, // this many columns
vl100, // using 100% of available space
72000 / 96, //0, // no border
VwAlignment.kvaLeft, // cells by default left aligned
// VwFramePosition.kvfpBelow, //.kvfpBox, //.kvfpVoid, // no frame
VwFramePosition.kvfpBelow | VwFramePosition.kvfpRhs,
VwRule.kvrlCols, // vertical lines between columns
0, // no space between cells
0, // no padding within cell.
false);
for (int i = 0; i < colCount; ++i)
vwenv.MakeColumns(1, rglength[i]);
// the table only has a body (no header or footer), and only one row.
vwenv.OpenTableBody();
vwenv.OpenTableRow();
IVwCacheDa cda = m_cache.DomainDataByFlid as IVwCacheDa;
// Make the cells.
if (m_fShowColumnsRTL)
{
for (int i = m_columns.Count; i > 0; --i)
AddEditCell(vwenv, cda, i);
}
else
{
for (int i = 1; i <= m_columns.Count; ++i)
AddEditCell(vwenv, cda, i);
}
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
}
示例8: Display
//.........这里部分代码省略.........
vwenv.set_IntProperty((int)FwTextPropType.ktptOffset, (int)FwTextPropVar.ktpvMilliPoint, -charOffset);
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_arrow);
vwenv.CloseTableCell();
// RHS cell
vwenv.Props = m_ctxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, ctxtPadding);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_cache.GetVectorSize(hvo, (int)PhSegRuleRHS.PhSegRuleRHSTags.kflidStrucChange) > 0)
{
vwenv.AddObjVecItems((int)PhSegRuleRHS.PhSegRuleRHSTags.kflidStrucChange, this, kfragContext);
}
else
{
OpenContextPile(vwenv, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp((int)PhSegRuleRHS.PhSegRuleRHSTags.kflidStrucChange, this, kfragEmpty);
CloseContextPile(vwenv, false);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// slash cell
vwenv.Props = m_charProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptOffset, (int)FwTextPropVar.ktpvMilliPoint, -charOffset);
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_slash);
vwenv.CloseTableCell();
// left context cell
vwenv.Props = m_ctxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, ctxtPadding);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_cache.GetObjProperty(hvo, (int)PhSegRuleRHS.PhSegRuleRHSTags.kflidLeftContext) != 0)
{
vwenv.AddObjProp((int)PhSegRuleRHS.PhSegRuleRHSTags.kflidLeftContext, this, kfragContext);
}
else
{
OpenContextPile(vwenv, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp((int)PhSegRuleRHS.PhSegRuleRHSTags.kflidLeftContext, this, kfragEmpty);
CloseContextPile(vwenv, false);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// underscore cell
vwenv.Props = m_charProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptOffset, (int)FwTextPropVar.ktpvMilliPoint, -charOffset);
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_underscore);
vwenv.CloseTableCell();
// right context cell
vwenv.Props = m_ctxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, ctxtPadding);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_cache.GetObjProperty(hvo, (int)PhSegRuleRHS.PhSegRuleRHSTags.kflidRightContext) != 0)
{
vwenv.AddObjProp((int)PhSegRuleRHS.PhSegRuleRHSTags.kflidRightContext, this, kfragContext);
}
else
{
OpenContextPile(vwenv, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp((int)PhSegRuleRHS.PhSegRuleRHSTags.kflidRightContext, this, kfragEmpty);
CloseContextPile(vwenv, false);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
break;
case kfragRule:
if (m_cache.GetVectorSize(hvo, (int)PhRegularRule.PhSegmentRuleTags.kflidStrucDesc) > 0)
{
vwenv.AddObjVecItems((int)PhRegularRule.PhSegmentRuleTags.kflidStrucDesc, this, kfragContext);
}
else
{
OpenContextPile(vwenv, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp((int)PhRegularRule.PhSegmentRuleTags.kflidStrucDesc, this, kfragEmpty);
CloseContextPile(vwenv, false);
}
break;
default:
base.Display(vwenv, hvo, frag);
break;
}
}
示例9: Display
public override void Display(IVwEnv vwenv, int hvo, int frag)
{
switch (frag)
{
case kfragPattern:
VwLength tableLen;
tableLen.nVal = 10000;
tableLen.unit = VwUnit.kunPercent100;
vwenv.OpenTable(1, tableLen, 0, VwAlignment.kvaCenter, VwFramePosition.kvfpVoid, VwRule.kvrlNone, 0, 0, false);
VwLength patternLen;
patternLen.nVal = 1;
patternLen.unit = VwUnit.kunRelative;
vwenv.MakeColumns(1, patternLen);
vwenv.OpenTableBody();
vwenv.OpenTableRow();
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderColor, (int)FwTextPropVar.ktpvDefault, (int)ColorUtil.ConvertColorToBGR(Color.Gray));
vwenv.set_IntProperty((int)FwTextPropType.ktptAlign, (int)FwTextPropVar.ktpvEnum, (int)FwTextAlign.ktalCenter);
vwenv.set_IntProperty((int)FwTextPropType.ktptPadBottom, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (((ComplexConcPatternSda) vwenv.DataAccess).Root.IsLeaf)
{
OpenSingleLinePile(vwenv, GetMaxNumLines(vwenv), false);
vwenv.Props = m_bracketProps;
vwenv.AddProp(ComplexConcPatternSda.ktagChildren, this, kfragEmpty);
CloseSingleLinePile(vwenv, false);
}
else
{
vwenv.AddObjVecItems(ComplexConcPatternSda.ktagChildren, this, kfragNode);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
break;
case kfragNode:
ComplexConcPatternNode node = ((ComplexConcPatternSda) vwenv.DataAccess).Nodes[hvo];
int maxNumLines = GetMaxNumLines(vwenv);
if (node is ComplexConcOrNode)
{
OpenSingleLinePile(vwenv, maxNumLines);
vwenv.AddProp(ktagInnerNonBoundary, this, kfragOR);
CloseSingleLinePile(vwenv, false);
}
else if (node is ComplexConcWordBdryNode)
{
OpenSingleLinePile(vwenv, maxNumLines);
vwenv.AddProp(ktagInnerNonBoundary, this, kfragHash);
CloseSingleLinePile(vwenv);
}
else if (node is ComplexConcGroupNode)
{
int numLines = GetNumLines(node);
bool hasMinMax = node.Maximum != 1 || node.Minimum != 1;
if (numLines == 1)
{
OpenSingleLinePile(vwenv, maxNumLines, false);
// use normal parentheses for a single line group
vwenv.AddProp(ktagLeftBoundary, this, kfragLeftParen);
vwenv.AddObjVecItems(ComplexConcPatternSda.ktagChildren, this, kfragNode);
vwenv.AddProp(hasMinMax ? ktagInnerNonBoundary : ktagRightBoundary, this, kfragRightParen);
if (hasMinMax)
DisplayMinMax(numLines, vwenv);
CloseSingleLinePile(vwenv, false);
}
else
{
vwenv.Props = m_bracketProps;
vwenv.set_IntProperty((int) FwTextPropType.ktptMarginLeading, (int) FwTextPropVar.ktpvMilliPoint, PileMargin);
vwenv.OpenInnerPile();
AddExtraLines(maxNumLines - numLines, ktagLeftNonBoundary, vwenv);
vwenv.AddProp(ktagLeftNonBoundary, this, kfragLeftParenUpHook);
for (int i = 1; i < numLines - 1; i++)
vwenv.AddProp(ktagLeftNonBoundary, this, kfragLeftParenExt);
vwenv.AddProp(ktagLeftBoundary, this, kfragLeftParenLowHook);
vwenv.CloseInnerPile();
vwenv.AddObjVecItems(ComplexConcPatternSda.ktagChildren, this, kfragNode);
vwenv.Props = m_bracketProps;
vwenv.set_IntProperty((int) FwTextPropType.ktptMarginTrailing, (int) FwTextPropVar.ktpvMilliPoint, PileMargin);
vwenv.OpenInnerPile();
AddExtraLines(maxNumLines - numLines, hasMinMax ? ktagInnerNonBoundary : ktagRightNonBoundary, vwenv);
vwenv.AddProp(hasMinMax ? ktagInnerNonBoundary : ktagRightNonBoundary, this, kfragRightParenUpHook);
for (int i = 1; i < numLines - 1; i++)
vwenv.AddProp(hasMinMax ? ktagInnerNonBoundary : ktagRightNonBoundary, this, kfragRightParenExt);
vwenv.AddProp(hasMinMax ? ktagInnerNonBoundary : ktagRightBoundary, this, kfragRightParenLowHook);
vwenv.CloseInnerPile();
if (hasMinMax)
DisplayMinMax(numLines, vwenv);
}
}
//.........这里部分代码省略.........
示例10: AddDoublePara
internal void AddDoublePara(IVwEnv vwenv, int hvo)
{
// We use a table to display the source WS in column 1, and the dest ws in column 2.
FwViews.VwLength vlTable; // we use this to specify that the table takes 100% of the width.
vlTable.nVal = 10000;
vlTable.unit = FwViews.VwUnit.kunPercent100;
FwViews.VwLength vlColumn; // and this one to specify half the width for each column
vlColumn.nVal = 5000;
vlColumn.unit = FwViews.VwUnit.kunPercent100;
// Enhance JohnT: possibly allow for right-to-left UI by reversing columns?
vwenv.OpenTable(2, // Two columns.
ref vlTable, // Table uses 100% of available width.
0, // Border thickness.
FwViews.VwAlignment.kvaLeft, // Default alignment.
FwViews.VwFramePosition.kvfpVoid, // No border.
FwViews.VwRule.kvrlNone, // No rules between cells.
3000, // Three points of space between cells.
3000); // Three points padding inside cells.
// Specify column widths. The first argument is the number of columns,
// not a column index.
vwenv.MakeColumns(2, vlColumn);
vwenv.OpenTableBody();
vwenv.OpenTableRow();
// Source cell, not editable
vwenv.OpenTableCell(1,1);
vwenv.set_IntProperty((int)FwKernelLib.FwTextPropType.ktptEditable, (int)FwKernelLib.FwTextPropVar.ktpvEnum,
(int)FwKernelLib.TptEditable.ktptNotEditable);
vwenv.AddStringAltMember(ktagParaContents, m_wsSrc, this);
vwenv.CloseTableCell();
// Dest cell, editable, therefore with white background.
vwenv.set_IntProperty((int)FwKernelLib.FwTextPropType.ktptBackColor, (int)FwKernelLib.FwTextPropVar.ktpvDefault,
m_colorEditable);
vwenv.OpenTableCell(1,1);
vwenv.AddStringAltMember(ktagParaContents, m_wsDst, this);
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
}
示例11: Display
//.........这里部分代码省略.........
// Set qtss to a string representing the writing system.
vwenv.get_StringWidth(NameOfWs(i), m_ttpLabel, out dxs, out dys);
m_mDxmpLabelWidth = Math.Max(m_mDxmpLabelWidth, dxs);
}
VwLength vlColWs; // 5-pt space plus max label width.
vlColWs.nVal = m_mDxmpLabelWidth + 5000;
vlColWs.unit = VwUnit.kunPoint1000;
// Enhance JohnT: possibly allow for right-to-left UI by reversing columns?
// The Main column is relative and uses the rest of the space.
VwLength vlColMain;
vlColMain.nVal = 1;
vlColMain.unit = VwUnit.kunRelative;
vwenv.OpenTable(2, // Two columns.
vlTable, // Table uses 100% of available width.
0, // Border thickness.
VwAlignment.kvaLeft, // Default alignment.
VwFramePosition.kvfpVoid, // No border.
VwRule.kvrlNone, // No rules between cells.
0, // No forced space between cells.
0, // No padding inside cells.
false);
// Specify column widths. The first argument is the number of columns,
// not a column index. The writing system column only occurs at all if its
// width is non-zero.
vwenv.MakeColumns(1, vlColWs);
vwenv.MakeColumns(1, vlColMain);
vwenv.OpenTableBody();
var visibleWss = new Set<ILgWritingSystem>();
// if we passed in a view and have WritingSystemsToDisplay
// then we'll load that list in order to filter our larger m_rgws list.
AddViewWritingSystems(visibleWss);
for (int i = 0; i < m_rgws.Count; ++i)
{
if (SkipEmptyWritingSystem(visibleWss, i, hvo))
continue;
vwenv.OpenTableRow();
// First cell has writing system abbreviation displayed using m_ttpLabel.
vwenv.Props = m_ttpLabel;
vwenv.OpenTableCell(1,1);
vwenv.AddString(NameOfWs(i));
vwenv.CloseTableCell();
// Second cell has the string contents for the alternative.
// DN version has some property setting, including trailing margin and
// RTL.
if (m_rgws[i].RightToLeftScript)
{
vwenv.set_IntProperty((int)FwTextPropType.ktptRightToLeft,
(int)FwTextPropVar.ktpvEnum,
(int)FwTextToggleVal.kttvForceOn);
vwenv.set_IntProperty((int)FwTextPropType.ktptAlign,
(int)FwTextPropVar.ktpvEnum,
(int)FwTextAlign.ktalTrailing);
}
if (!m_editable)
{
vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum,
(int)TptEditable.ktptNotEditable);
}
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, 2000);
vwenv.OpenTableCell(1,1);
var wsdef = m_rgws[i] as WritingSystemDefinition;
if (wsdef != null && wsdef.IsVoice)
{
// We embed it in a conc paragraph to ensure it never takes more than a line.
// It will typically be covered up by a sound control.
// Also set foreground color to match the window, so nothing shows even if the sound doesn't overlap it perfectly.
// (transparent does not seem to work as a foreground color)
vwenv.set_IntProperty((int)FwTextPropType.ktptForeColor, (int)FwTextPropVar.ktpvDefault,
(int)ColorUtil.ConvertColorToBGR(Color.FromKnownColor(KnownColor.Window)));
// Must not spell-check a conc para, leads to layout failures when the paragraph tries to cast the source to
// a conc text source, if it is overridden by a spelling text source.
vwenv.set_IntProperty((int)FwTextPropType.ktptSpellCheck, (int)FwTextPropVar.ktpvEnum, (int)SpellingModes.ksmDoNotCheck);
vwenv.OpenConcPara(0, 1, VwConcParaOpts.kcpoDefault, 0);
vwenv.AddStringAltMember(m_flid, m_rgws[i].Handle, this);
vwenv.CloseParagraph();
}
else
{
if (!string.IsNullOrEmpty(TextStyle))
{
vwenv.set_StringProperty((int) FwTextPropType.ktptNamedStyle, TextStyle);
}
vwenv.AddStringAltMember(m_flid, m_rgws[i].Handle, this);
}
vwenv.CloseTableCell();
vwenv.CloseTableRow();
}
vwenv.CloseTableBody();
vwenv.CloseTable();
}
示例12: Display
//.........这里部分代码省略.........
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.OpenTableRow();
// index header cell
vwenv.Props = m_headerProps;
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_indexStr);
vwenv.CloseTableCell();
// index left empty cell
vwenv.Props = m_indexProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderLeading, (int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.OpenTableCell(1, 1);
vwenv.CloseTableCell();
// index cells
for (int i = 0; i < m_rule.InputOS.Count; i++)
{
vwenv.Props = m_indexProps;
vwenv.OpenTableCell(1, 1);
vwenv.AddString(tsf.MakeString(Convert.ToString(i + 1), userWs));
vwenv.CloseTableCell();
}
// index right empty cell
vwenv.Props = m_indexProps;
vwenv.OpenTableCell(1, 1);
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
vwenv.CloseTableCell();
// double arrow cell
vwenv.Props = m_arrowProps;
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_doubleArrow);
vwenv.CloseTableCell();
// result table cell
vwenv.OpenTableCell(1, 1);
vwenv.OpenTable(1, tableLen, 0, VwAlignment.kvaLeft, VwFramePosition.kvfpVoid, VwRule.kvrlNone, 0, 4000, false);
vwenv.MakeColumns(1, outputLen);
vwenv.OpenTableBody();
vwenv.OpenTableRow();
// result header cell
vwenv.Props = m_headerProps;
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_resultStr);
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.OpenTableRow();
// result cell
vwenv.Props = m_resultProps;
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rule.OutputOS.Count == 0)
vwenv.AddProp(MoAffixProcessTags.kflidOutput, this, kfragEmpty);
示例13: Display
//.........这里部分代码省略.........
vwenv.CloseTableCell();
// RHS cell
vwenv.Props = m_ctxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, ctxtPadding);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rhs.StrucChangeOS.Count > 0)
{
vwenv.AddObjVecItems(PhSegRuleRHSTags.kflidStrucChange, this, kfragContext);
}
else
{
vwenv.NoteDependency(new[] {hvo}, new[] {PhSegRuleRHSTags.kflidStrucChange}, 1);
OpenSingleLinePile(vwenv, maxNumLines, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp(PhSegRuleRHSTags.kflidStrucChange, this, kfragEmpty);
CloseSingleLinePile(vwenv, false);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// slash cell
vwenv.Props = m_charProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptOffset, (int)FwTextPropVar.ktpvMilliPoint, -charOffset);
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_slash);
vwenv.CloseTableCell();
// left context cell
vwenv.Props = m_ctxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, ctxtPadding);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rhs.LeftContextOA != null)
{
vwenv.AddObjProp(PhSegRuleRHSTags.kflidLeftContext, this, kfragContext);
}
else
{
vwenv.NoteDependency(new[] { hvo }, new[] { PhSegRuleRHSTags.kflidLeftContext }, 1);
OpenSingleLinePile(vwenv, maxNumLines, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp(PhSegRuleRHSTags.kflidLeftContext, this, kfragEmpty);
CloseSingleLinePile(vwenv, false);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
// underscore cell
vwenv.Props = m_charProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptOffset, (int)FwTextPropVar.ktpvMilliPoint, -charOffset);
vwenv.OpenTableCell(1, 1);
vwenv.AddString(m_underscore);
vwenv.CloseTableCell();
// right context cell
vwenv.Props = m_ctxtProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptPadTop, (int)FwTextPropVar.ktpvMilliPoint, ctxtPadding);
vwenv.OpenTableCell(1, 1);
vwenv.OpenParagraph();
if (m_rhs.RightContextOA != null)
{
vwenv.AddObjProp(PhSegRuleRHSTags.kflidRightContext, this, kfragContext);
}
else
{
vwenv.NoteDependency(new[] { hvo }, new[] { PhSegRuleRHSTags.kflidRightContext }, 1);
OpenSingleLinePile(vwenv, maxNumLines, false);
vwenv.Props = m_bracketProps;
vwenv.AddProp(PhSegRuleRHSTags.kflidRightContext, this, kfragEmpty);
CloseSingleLinePile(vwenv, false);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
break;
case kfragRule:
if (m_rhs.OwningRule.StrucDescOS.Count > 0)
{
vwenv.AddObjVecItems(PhSegmentRuleTags.kflidStrucDesc, this, kfragContext);
}
else
{
OpenSingleLinePile(vwenv, GetMaxNumLines(), false);
vwenv.Props = m_bracketProps;
vwenv.AddProp(PhSegmentRuleTags.kflidStrucDesc, this, kfragEmpty);
CloseSingleLinePile(vwenv, false);
}
break;
default:
base.Display(vwenv, hvo, frag);
break;
}
}
示例14: Display
//.........这里部分代码省略.........
vwenv.set_IntProperty((int)FwTextPropType.ktptFontSize,
(int)FwTextPropVar.ktpvMilliPoint, 10000);
vwenv.AddString(m_tssTitle);
}
vwenv.CloseTableCell();
// Second cell has ws labels.
vwenv.set_IntProperty((int)FwTextPropType.ktptBackColor,
(int) FwTextPropVar.ktpvDefault, m_editBackColor);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderLeading,
(int)FwTextPropVar.ktpvMilliPoint, 1000);
if (i == 0)
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderTop,
(int)FwTextPropVar.ktpvMilliPoint, 1000);
if (i == m_writingSystems.Length - 1)
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom,
(int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.OpenTableCell(1,1);
vwenv.Props = m_ttpDataCellProps;
vwenv.Props = m_ttpWsLabel;
vwenv.AddString(m_WsLabels[i]);
vwenv.CloseTableCell();
// Third cell has the Title property, in a box.
vwenv.set_IntProperty((int)FwTextPropType.ktptBackColor,
(int) FwTextPropVar.ktpvDefault, m_editBackColor);
// Set the underlying directionality so that arrow keys work properly.
bool fRTL = m_writingSystems[i].RightToLeftScript;
vwenv.set_IntProperty((int)FwTextPropType.ktptRightToLeft,
(int)FwTextPropVar.ktpvEnum, fRTL ? -1 : 0);
vwenv.set_IntProperty((int)FwTextPropType.ktptAlign,
(int)FwTextPropVar.ktpvEnum,
fRTL ? (int)FwTextAlign.ktalRight : (int)FwTextAlign.ktalLeft);
if (i == 0)
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderTop,
(int)FwTextPropVar.ktpvMilliPoint, 1000);
if (i == m_writingSystems.Length - 1)
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom,
(int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.OpenTableCell(1,1);
vwenv.OpenParagraph();
vwenv.Props = m_ttpDataCellProps;
vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum,
this.Editable ? (int)TptEditable.ktptIsEditable : (int)TptEditable.ktptNotEditable);
if (IsScripture)
{
vwenv.AddStringAltMember(m_vtagStTextTitle, m_writingSystems[i].Handle, this);
}
else
{
vwenv.AddStringAltMember(CmMajorObjectTags.kflidName, m_writingSystems[i].Handle, this);
}
vwenv.CloseParagraph();
vwenv.CloseTableCell();
vwenv.set_IntProperty((int)FwTextPropType.ktptMarginTrailing,
(int)FwTextPropVar.ktpvMilliPoint, 10000);
vwenv.set_IntProperty((int)FwTextPropType.ktptBorderTrailing,
(int)FwTextPropVar.ktpvMilliPoint, 1000);
vwenv.OpenTableCell(1, 1);
vwenv.CloseTableCell();
vwenv.CloseTableRow();
}
//// Second row.
//vwenv.OpenTableRow();
//
//// First cell has 'Comments' label in bold.
//vwenv.Props = m_ttpBold;
//vwenv.OpenTableCell(1,1);
//vwenv.set_IntProperty((int)FwTextPropType.ktptMarginLeading,
// (int)FwTextPropVar.ktpvMilliPoint, 10000);
//vwenv.AddString(m_tssComments);
//vwenv.CloseTableCell();
//
//// Second cell has the Description property, in a box.
//vwenv.set_IntProperty((int)FwTextPropType.ktptMarginTrailing,
// (int)FwTextPropVar.ktpvMilliPoint, 10000);
//vwenv.OpenTableCell(1,1);
//vwenv.Props = m_ttpDataCellProps;
//vwenv.set_IntProperty((int)FwTextPropType.ktptBorderBottom,
// (int)FwTextPropVar.ktpvMilliPoint, 1000);
//vwenv.AddStringAltMember(
// (int)CmMajorObject.CmMajorObjectTags.kflidDescription, m_wsAnalysis, this);
//vwenv.CloseTableCell();
//
//vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
break;
default:
throw new Exception("Bad frag id in TitleContentsVc");
}
}
示例15: Display
/// ------------------------------------------------------------------------------------
/// <summary>
/// Display the header or footer as a table containing three cells (left-, center-, and
/// right-aligned), each with a TS String taken from the given PubHeader
/// </summary>
/// <param name="vwenv"></param>
/// <param name="hvo">id of a PubHeader object</param>
/// <param name="frag">Constant (ignored)</param>
/// ------------------------------------------------------------------------------------
public override void Display(IVwEnv vwenv, int hvo, int frag)
{
CheckDisposed();
// If there is only data in the outside columns, then make a two column
// table. If there is only data in the center column then make a 1 column
// table. Otherwise make it three columns.
int columnCount = 3;
if (m_autoAdjustColumns)
{
if (!DataInOutsideColumns(hvo))
columnCount = 1;
else if (!DataInCenterColumn(hvo))
columnCount = 2;
}
VwLength width;
width.unit = VwUnit.kunPercent100;
width.nVal = 10000;
vwenv.OpenTable(columnCount, width, 0, VwAlignment.kvaLeft,
VwFramePosition.kvfpVoid, VwRule.kvrlNone, 0, 0, false);
switch(columnCount)
{
case 1: width.nVal = 10000; break;
case 2: width.nVal = 5000; break;
case 3: width.nVal = 3333; break;
}
vwenv.MakeColumns(columnCount, width);
vwenv.OpenTableBody();
vwenv.OpenTableRow();
// Left Column
if (columnCount > 1)
AddColumn(vwenv, FwTextAlign.ktalLeft, LeftElementFlid);
// Center Column
if (columnCount != 2)
AddColumn(vwenv, FwTextAlign.ktalCenter, PubHeader.PubHeaderTags.kflidCenteredText);
// Right Column
if (columnCount > 1)
AddColumn(vwenv, FwTextAlign.ktalRight, RightElementFlid);
vwenv.CloseTableRow();
vwenv.CloseTableBody();
vwenv.CloseTable();
}