const regex = /(?ms)(Classes\\par)(.*?).*Detailed Description/;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?ms)(Classes\\\\par)(.*?).*Detailed Description', '')
const str = `{\\rtf1\\ansi\\ansicpg1252\\uc1 \\deff0\\deflang1033\\deflangfe1033
{\\fonttbl {\\f0\\froman\\fcharset0\\fprq2{\\*\\panose 02020603050405020304}Times New Roman;}
{\\f1\\fswiss\\fcharset0\\fprq2{\\*\\panose 020b0604020202020204}Arial;}
{\\f2\\fmodern\\fcharset0\\fprq1{\\*\\panose 02070309020205020404}Courier New;}
{\\f3\\froman\\fcharset2\\fprq2{\\*\\panose 05050102010706020507}Symbol;}
}
{\\colortbl;\\red0\\green0\\blue0;\\red0\\green0\\blue255;\\red0\\green255\\blue255;\\red0\\green255\\blue0;\\red255\\green0\\blue255;\\red255\\green0\\blue0;\\red255\\green255\\blue0;\\red255\\green255\\blue255;\\red0\\green0\\blue128;\\red0\\green128\\blue128;\\red0\\green128\\blue0;\\red128\\green0\\blue128;\\red128\\green0\\blue0;\\red128\\green128\\blue0;\\red128\\green128\\blue128;\\red192\\green192\\blue192;}
{\\stylesheet
{\\widctlpar\\adjustright \\fs20\\cgrid \\snext0 Normal;}
{\\paperw12240\\paperh15840\\margl1800\\margr1800\\margt1440\\margb1440\\gutter0\\ltrsect}
{\\s1\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs36\\kerning36\\cgrid \\sbasedon0 \\snext0 heading 1;}
{\\s2\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs28\\kerning28\\cgrid \\sbasedon0 \\snext0 heading 2;}
{\\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid \\sbasedon0 \\snext0 heading 3;}
{\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid \\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font;}
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid \\sbasedon0 \\snext0 heading 5;}{\\*\\cs10 \\additive Default Paragraph Font;}
{\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid \\sbasedon0 \\snext15 Title;}
{\\s16\\qc\\sa60\\widctlpar\\outlinelevel1\\adjustright \\f1\\cgrid \\sbasedon0 \\snext16 Subtitle;}
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid \\sbasedon0 \\snext17 BodyText;}
{\\s18\\widctlpar\\fs22\\cgrid \\sbasedon0 \\snext18 DenseText;}
{\\s28\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext28 header;}
{\\s29\\widctlpar\\tqc\\tx4320\\tqr\\tx8640\\qr\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext29 footer;}
{\\s30\\li360\\sa60\\sb120\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid \\sbasedon0 \\snext30 GroupHeader;}
{\\s40\\li0\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext41 Code Example 0;}
{\\s41\\li360\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext42 Code Example 1;}
{\\s42\\li720\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext43 Code Example 2;}
{\\s43\\li1080\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext44 Code Example 3;}
{\\s44\\li1440\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext45 Code Example 4;}
{\\s45\\li1800\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext46 Code Example 5;}
{\\s46\\li2160\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext47 Code Example 6;}
{\\s47\\li2520\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext48 Code Example 7;}
{\\s48\\li2880\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext49 Code Example 8;}
{\\s49\\li3240\\widctlpar\\adjustright \\shading1000\\cbpat8 \\f2\\fs16\\cgrid \\sbasedon0 \\snext49 Code Example 9;}
{\\s50\\li0\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext51 List Continue 0;}
{\\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext52 List Continue 1;}
{\\s52\\li720\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext53 List Continue 2;}
{\\s53\\li1080\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext54 List Continue 3;}
{\\s54\\li1440\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext55 List Continue 4;}
{\\s55\\li1800\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext56 List Continue 5;}
{\\s56\\li2160\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext57 List Continue 6;}
{\\s57\\li2520\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext58 List Continue 7;}
{\\s58\\li2880\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext59 List Continue 8;}
{\\s59\\li3240\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext59 List Continue 9;}
{\\s60\\li0\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext61 DescContinue 0;}
{\\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext62 DescContinue 1;}
{\\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext63 DescContinue 2;}
{\\s63\\li1080\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext64 DescContinue 3;}
{\\s64\\li1440\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext65 DescContinue 4;}
{\\s65\\li1800\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext66 DescContinue 5;}
{\\s66\\li2160\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext67 DescContinue 6;}
{\\s67\\li2520\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext68 DescContinue 7;}
{\\s68\\li2880\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext69 DescContinue 8;}
{\\s69\\li3240\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext69 DescContinue 9;}
{\\s70\\li0\\sa30\\sb30\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext81 LatexTOC 0;}
{\\s71\\li360\\sa27\\sb27\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext82 LatexTOC 1;}
{\\s72\\li720\\sa24\\sb24\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext83 LatexTOC 2;}
{\\s73\\li1080\\sa21\\sb21\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext84 LatexTOC 3;}
{\\s74\\li1440\\sa18\\sb18\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext85 LatexTOC 4;}
{\\s75\\li1800\\sa15\\sb15\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext86 LatexTOC 5;}
{\\s76\\li2160\\sa12\\sb12\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext87 LatexTOC 6;}
{\\s77\\li2520\\sa9\\sb9\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext88 LatexTOC 7;}
{\\s78\\li2880\\sa6\\sb6\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext89 LatexTOC 8;}
{\\s79\\li3240\\sa3\\sb3\\widctlpar\\tqr\\tldot\\tx8640\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext89 LatexTOC 9;}
{\\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext81 \\sautoupd List Bullet 0;}
{\\s81\\fi-360\\li720\\widctlpar\\jclisttab\\tx720{\\*\\pn \\pnlvlbody\\ilvl0\\ls2\\pnrnot0\\pndec }\\ls2\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext82 \\sautoupd List Bullet 1;}
{\\s82\\fi-360\\li1080\\widctlpar\\jclisttab\\tx1080{\\*\\pn \\pnlvlbody\\ilvl0\\ls3\\pnrnot0\\pndec }\\ls3\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext83 \\sautoupd List Bullet 2;}
{\\s83\\fi-360\\li1440\\widctlpar\\jclisttab\\tx1440{\\*\\pn \\pnlvlbody\\ilvl0\\ls4\\pnrnot0\\pndec }\\ls4\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext84 \\sautoupd List Bullet 3;}
{\\s84\\fi-360\\li1800\\widctlpar\\jclisttab\\tx1800{\\*\\pn \\pnlvlbody\\ilvl0\\ls5\\pnrnot0\\pndec }\\ls5\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext85 \\sautoupd List Bullet 4;}
{\\s85\\fi-360\\li2160\\widctlpar\\jclisttab\\tx2160{\\*\\pn \\pnlvlbody\\ilvl0\\ls6\\pnrnot0\\pndec }\\ls6\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext86 \\sautoupd List Bullet 5;}
{\\s86\\fi-360\\li2520\\widctlpar\\jclisttab\\tx2520{\\*\\pn \\pnlvlbody\\ilvl0\\ls7\\pnrnot0\\pndec }\\ls7\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext87 \\sautoupd List Bullet 6;}
{\\s87\\fi-360\\li2880\\widctlpar\\jclisttab\\tx2880{\\*\\pn \\pnlvlbody\\ilvl0\\ls8\\pnrnot0\\pndec }\\ls8\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext88 \\sautoupd List Bullet 7;}
{\\s88\\fi-360\\li3240\\widctlpar\\jclisttab\\tx3240{\\*\\pn \\pnlvlbody\\ilvl0\\ls9\\pnrnot0\\pndec }\\ls9\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext89 \\sautoupd List Bullet 8;}
{\\s89\\fi-360\\li3600\\widctlpar\\jclisttab\\tx3600{\\*\\pn \\pnlvlbody\\ilvl0\\ls10\\pnrnot0\\pndec }\\ls10\\adjustright \\fs20\\cgrid \\sbasedon0 \\snext89 \\sautoupd List Bullet 9;}
{\\s90\\fi-360\\li360\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext91 \\sautoupd List Enum 0;}
{\\s91\\fi-360\\li720\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext92 \\sautoupd List Enum 1;}
{\\s92\\fi-360\\li1080\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext93 \\sautoupd List Enum 2;}
{\\s93\\fi-360\\li1440\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext94 \\sautoupd List Enum 3;}
{\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext95 \\sautoupd List Enum 4;}
{\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext96 \\sautoupd List Enum 5;}
{\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext96 \\sautoupd List Enum 5;}
{\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext98 \\sautoupd List Enum 7;}
{\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext99 \\sautoupd List Enum 8;}
{\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid \\sbasedon0 \\snext99 \\sautoupd List Enum 9;}
}
\\s1\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs36\\kerning36\\cgrid
Class Documentation{\\tc \\v Class Documentation}
\\par \\pard\\plain
\\pard\\plain \\s2\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs28\\kerning28\\cgrid
DocSrc.frmDocSrc Class Reference\\par \\pard\\plain
{\\tc\\tcl2 \\v DocSrc.frmDocSrc}
{\\xe \\v DocSrc.frmDocSrc}
{\\bkmkstart AAAAAAAAAC}
{\\bkmkend AAAAAAAAAC}
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Automatically take source code (focus on: C#, with XML comments) and generate DOORS- and/or EDMS- ready SDDs. }}\\par
{
Inherits Form.}\\par
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Classes\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
class {\\b DocumentationSettings}\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
State/values of the form/project to be documented }}}
}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Public Member Functions\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
{\\b frmDocSrc} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Constructor }{
}\\par
}}
}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Events\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
{\\b EditWordBreakProc} {\\b myCallBackEvent}\\par
}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Private Member Functions\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
static bool {\\b SetForegroundWindow} (IntPtr hwnd)\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
delegate int {\\b EditWordBreakProc} (IntPtr text, int pos_in_text, int bCharSet, int action)\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b CheckIfRunAsCopy} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Check to see if we need to create and run a copy, to enable self-documenting }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
string {\\b GetTimestamp} (string format="yyyy-MM-DD_HH-mm-ss")\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Returns a timestamp, used for ensuring new file names are unique. In practice this wont be called more than once a second. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b btnRun_Click} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
For each checked checkbox, sequentially run the related steps. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b RebuildSolution} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Call MSBuild.exe to rebuild the solution file, and log the results to the pseudo console. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b SendCommandToPseudoConsole} (string fileName, string arguments)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Run command with arguments, display results on the pseudo console. Block other steps from running while this completes, with {\\b WaitWhileOtherStepRuns()} and {\\b SetNoLongerRunning()}. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b OutputHandler} (Object source, DataReceivedEventArgs outLine)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Mimics the colorized Command Prompt, designed to show the user what is happening with the various commands which are run. Specific strings are checked for to set the line colorings, defaulting to a darker gray. HERE}{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b WriteToPseudoConsole} (string str, Color color)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Add colored text lines to the pseudo-console. Auto scrolls to the end. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b GenerateRTF} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Call Doxygen with the code's doxyfile, to generate initial (RTF) document. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b PostProcessRTF} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Call {\\b CleanRtfFile()} to removed undesired sections from the generated RTF file. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b CleanRtfFile} (string rtfFile)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Post-process the RTF file, to remove undesired sections: Front matter, Class References, Index }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b OpenRTFWord} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Open RTF file in Word, ignoring "Convert File" prompt, saving as a Word .DOCX file. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b OpenWordApp} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Create the internal Word application, used to load RTF/DOCX files and call DOORS. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b OpenRtfInWord} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Open the RTF document in Word. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b SaveRtfAsDocx} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save the opened document as DOCX, for imput to DOORS. Prompt if failure and desire to try again. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b DoorsNav} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Run DOORS, login to DOORS, set DOORS location. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b RunDoors} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
MessageBox displaying step 1 on running DOORS <todo>To Be automated in the future.</todo> }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b LoginDoors} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
MessageBox displaying step 2 on running DOORS <todo>To Be automated in the future.</todo> }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b SetDoorsLocation} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
MessageBox displaying step 3 on running DOORS <todo>To Be automated in the future.</todo> }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b DoorsDocxImport} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Run "Export To DOORS" Word Add-in. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b AddDoorsSections} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Update the imported DOORS document, to add front matter, Section 1 "Introduction", etc. <todo>Not implemented yet.</todo> }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b DoorsExportToWord} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
To export an officially formatted WEC SDD from DOORS <todo>Not implemented yet.</todo> }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b btnDoxyWizardDoxyFile_Click} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Open Doxywizard with DoxyFile, to enable easy doxyfile editing }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b btnDeleteXML_Click} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Delete the source code's XML documentation file. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b btnDeleteRtf_Click} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Delete the initial RTF file. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b openToolStripMenuItem_Click} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Load a previous state of the form from an XML file. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b saveAsToolStripMenuItem_Click} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save the current state of the form to an XML file, name chosen by user. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b frmDocSrc_FormClosing} (object sender, FormClosingEventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save last state settings as the form closes. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b LoadStateFile} (string file)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Load a previous state of the form from an XML file. From: HERE}{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b SaveStateFile} (string file)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save the current state of the form to an XML file. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b ObjectStateUpdated} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
If any of the checkboxes/textboxes we care about changes, update doc. Unless DISABLE_OBJECT_STATE_UPDATED is true, then don't update. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b DocStateUpdated} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Set object attributes to match doc. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b frmDocSrc_Shown} (object sender, EventArgs e)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
For character-wrapping (NOT word-wrapping) in the pseudo-console From: HERE}{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
int {\\b myCallBack} (IntPtr text, int pos_in_text, int bCharSet, int action)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
For character-wrapping (NOT word-wrapping) in the pseudo-console From: HERE}{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
IntPtr {\\b GetHandleByTitle} (string wName)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Returns the handle to the first window, whose title contains wName. Case-insensitive. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b SetForegroundWindow} (string wName)\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Set the first window, whose title contains wName. Case-insensitive. }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b WaitWhileOtherStepRuns} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
if another process is running, wait here until it completes todo: probably need to have some sort of timeout feature }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
void {\\b SetNoLongerRunning} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Set RUNNING to false, alert if it was already false }{
}\\par
}}
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
string {\\b CallingMethod} ()\\par
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid {\\i {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
SomeMethod() -SomeOtherMethod() -CallingMethod() }{
}\\par
}}
}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Static Private Member Functions\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
static IntPtr {\\b SendMessage} (IntPtr hwnd, uint message, IntPtr wParam, IntPtr lParam)\\par
}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Private Attributes\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
string {\\b m_xmlPath} = {\\b applicationPath} + "DocSrc_SETTINGS.XML"\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
string {\\b nl} = Environment.NewLine\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
const uint {\\b EM_SETWORDBREAKPROC} = 0x00D0\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
Microsoft.Office.Interop.Word.Document {\\b wd}\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
Microsoft.Office.Interop.Word.Application {\\b app}\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b DISABLE_OBJECT_STATE_UPDATED} = false\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
Process {\\b p} = new Process()\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
bool {\\b RUNNING} = false\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
object {\\b missing} = Missing.Value\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
object {\\b f} = false\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
object {\\b t} = true\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
object {\\b encoding} = WdSaveFormat.wdFormatDocumentDefault\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
object {\\b noEncodingDialog} = true\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
{\\b DocumentationSettings} {\\b doc}\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
DataSet {\\b ds} = new DataSet()\\par
}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Static Private Attributes\\par
\\pard\\plain
{
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
static string {\\b applicationFile} = System.Reflection.Assembly.GetExecutingAssembly().Location.ToLower()\\par
\\pard\\plain \\s80\\fi-360\\li360\\widctlpar\\jclisttab\\tx360{\\*\\pn \\pnlvlbody\\ilvl0\\ls1\\pnrnot0\\pndec }\\ls1\\adjustright \\fs20\\cgrid
static string {\\b applicationPath} = Path.GetDirectoryName({\\b applicationFile}) + @"\\\\"\\par
}
{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Detailed Description\\par
\\pard\\plain
{
\\pard\\plain \\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid {\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Automatically take source code (focus on: C#, with XML comments) and generate DOORS- and/or EDMS- ready SDDs. \\par
}
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Constructor & Destructor Documentation\\par
\\pard\\plain
{\\xe \\v frmDocSrc\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:frmDocSrc}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
DocSrc.frmDocSrc.frmDocSrc ()}}
\\par
{\\bkmkstart AAAAAAAAAD}
{\\bkmkend AAAAAAAAAD}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Constructor }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
Member Function Documentation\\par
\\pard\\plain
{\\xe \\v AddDoorsSections\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:AddDoorsSections}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.AddDoorsSections (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAE}
{\\bkmkend AAAAAAAAAE}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Update the imported DOORS document, to add front matter, Section 1 "Introduction", etc. <todo>Not implemented yet.</todo> }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v btnDeleteRtf_Click\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:btnDeleteRtf_Click}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.btnDeleteRtf_Click (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAF}
{\\bkmkend AAAAAAAAAF}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Delete the initial RTF file. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v btnDeleteXML_Click\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:btnDeleteXML_Click}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.btnDeleteXML_Click (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAG}
{\\bkmkend AAAAAAAAAG}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Delete the source code's XML documentation file. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v btnDoxyWizardDoxyFile_Click\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:btnDoxyWizardDoxyFile_Click}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.btnDoxyWizardDoxyFile_Click (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAH}
{\\bkmkend AAAAAAAAAH}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Open Doxywizard with DoxyFile, to enable easy doxyfile editing }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v btnRun_Click\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:btnRun_Click}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.btnRun_Click (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAI}
{\\bkmkend AAAAAAAAAI}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
For each checked checkbox, sequentially run the related steps. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v CallingMethod\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:CallingMethod}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
string DocSrc.frmDocSrc.CallingMethod (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAJ}
{\\bkmkend AAAAAAAAAJ}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
SomeMethod() -SomeOtherMethod() -CallingMethod() }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid SomeMethod\\par
}}}
{\\xe \\v CheckIfRunAsCopy\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:CheckIfRunAsCopy}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.CheckIfRunAsCopy (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAK}
{\\bkmkend AAAAAAAAAK}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Check to see if we need to create and run a copy, to enable self-documenting }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v CleanRtfFile\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:CleanRtfFile}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.CleanRtfFile (string {\\i rtfFile}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAL}
{\\bkmkend AAAAAAAAAL}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Post-process the RTF file, to remove undesired sections: Front matter, Class References, Index }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i rtfFile} \\cell }{Path of RTF file to open in Word and process, removing undesired sections\\cell }
{\\row }
}
}}
{\\xe \\v DocStateUpdated\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:DocStateUpdated}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.DocStateUpdated (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAM}
{\\bkmkend AAAAAAAAAM}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Set object attributes to match doc. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v DoorsDocxImport\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:DoorsDocxImport}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.DoorsDocxImport (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAN}
{\\bkmkend AAAAAAAAAN}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Run "Export To DOORS" Word Add-in. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v DoorsExportToWord\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:DoorsExportToWord}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.DoorsExportToWord (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAO}
{\\bkmkend AAAAAAAAAO}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
To export an officially formatted WEC SDD from DOORS <todo>Not implemented yet.</todo> }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v DoorsNav\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:DoorsNav}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.DoorsNav (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAP}
{\\bkmkend AAAAAAAAAP}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Run DOORS, login to DOORS, set DOORS location. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v EditWordBreakProc\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:EditWordBreakProc}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
delegate int DocSrc.frmDocSrc.EditWordBreakProc (IntPtr {\\i text}, int {\\i pos_in_text}, int {\\i bCharSet}, int {\\i action}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAQ}
{\\bkmkend AAAAAAAAAQ}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
}
{\\xe \\v frmDocSrc_FormClosing\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:frmDocSrc_FormClosing}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.frmDocSrc_FormClosing (object {\\i sender}, FormClosingEventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAR}
{\\bkmkend AAAAAAAAAR}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save last state settings as the form closes. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v frmDocSrc_Shown\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:frmDocSrc_Shown}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.frmDocSrc_Shown (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAS}
{\\bkmkend AAAAAAAAAS}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
For character-wrapping (NOT word-wrapping) in the pseudo-console From: HERE}}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v GenerateRTF\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:GenerateRTF}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.GenerateRTF (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAT}
{\\bkmkend AAAAAAAAAT}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Call Doxygen with the code's doxyfile, to generate initial (RTF) document. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v GetHandleByTitle\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:GetHandleByTitle}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
IntPtr DocSrc.frmDocSrc.GetHandleByTitle (string {\\i wName}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAU}
{\\bkmkend AAAAAAAAAU}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Returns the handle to the first window, whose title contains wName. Case-insensitive. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i wName} \\cell }{Part or all of the desired window's title\\cell }
{\\row }
}
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid The requested handle, or zero.\\par
}}}
{\\xe \\v GetTimestamp\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:GetTimestamp}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
string DocSrc.frmDocSrc.GetTimestamp (string {\\i format} = {\\f2 "yyyy-MM-DD_HH-mm-ss"}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAV}
{\\bkmkend AAAAAAAAAV}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Returns a timestamp, used for ensuring new file names are unique. In practice this wont be called more than once a second. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i format} \\cell }{Optional format.\\cell }
{\\row }
}
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid Formatted timestamp.\\par
}}}
{\\xe \\v LoadStateFile\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:LoadStateFile}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.LoadStateFile (string {\\i file}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAW}
{\\bkmkend AAAAAAAAAW}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Load a previous state of the form from an XML file. From: HERE}}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i file} \\cell }{XML file name to load from.\\cell }
{\\row }
}
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v LoginDoors\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:LoginDoors}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.LoginDoors (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAX}
{\\bkmkend AAAAAAAAAX}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
MessageBox displaying step 2 on running DOORS <todo>To Be automated in the future.</todo> }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v myCallBack\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:myCallBack}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
int DocSrc.frmDocSrc.myCallBack (IntPtr {\\i text}, int {\\i pos_in_text}, int {\\i bCharSet}, int {\\i action}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAY}
{\\bkmkend AAAAAAAAAY}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
For character-wrapping (NOT word-wrapping) in the pseudo-console From: HERE}}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v ObjectStateUpdated\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:ObjectStateUpdated}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.ObjectStateUpdated (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAAAZ}
{\\bkmkend AAAAAAAAAZ}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
If any of the checkboxes/textboxes we care about changes, update doc. Unless DISABLE_OBJECT_STATE_UPDATED is true, then don't update. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{
\\par
\\pard\\plain \\s81\\fi-360\\li720\\widctlpar\\jclisttab\\tx720{\\*\\pn \\pnlvlbody\\ilvl0\\ls2\\pnrnot0\\pndec }\\ls2\\adjustright \\fs20\\cgrid
This is typically set true when the object values are being changed (like when loaded), to avoid interfering with that. \\par}
}}
{\\xe \\v OpenRtfInWord\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:OpenRtfInWord}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.OpenRtfInWord (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABA}
{\\bkmkend AAAAAAAABA}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Open the RTF document in Word. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v OpenRTFWord\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:OpenRTFWord}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.OpenRTFWord (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABB}
{\\bkmkend AAAAAAAABB}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Open RTF file in Word, ignoring "Convert File" prompt, saving as a Word .DOCX file. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v openToolStripMenuItem_Click\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:openToolStripMenuItem_Click}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.openToolStripMenuItem_Click (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABC}
{\\bkmkend AAAAAAAABC}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Load a previous state of the form from an XML file. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v OpenWordApp\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:OpenWordApp}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.OpenWordApp (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABD}
{\\bkmkend AAAAAAAABD}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Create the internal Word application, used to load RTF/DOCX files and call DOORS. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v OutputHandler\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:OutputHandler}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.OutputHandler (Object {\\i source}, DataReceivedEventArgs {\\i outLine}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABE}
{\\bkmkend AAAAAAAABE}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Mimics the colorized Command Prompt, designed to show the user what is happening with the various commands which are run. Specific strings are checked for to set the line colorings, defaulting to a darker gray. HERE}}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i source} \\cell }{The executing application/process.\\cell }
{\\row }
\\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i outLine} \\cell }{the current ouptut line from source, to display on pseudo console\\cell }
{\\row }
}
}}
{\\xe \\v PostProcessRTF\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:PostProcessRTF}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.PostProcessRTF (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABF}
{\\bkmkend AAAAAAAABF}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Call {\\b CleanRtfFile()} to removed undesired sections from the generated RTF file. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v RebuildSolution\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:RebuildSolution}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.RebuildSolution (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABG}
{\\bkmkend AAAAAAAABG}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Call MSBuild.exe to rebuild the solution file, and log the results to the pseudo console. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v RunDoors\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:RunDoors}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.RunDoors (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABH}
{\\bkmkend AAAAAAAABH}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
MessageBox displaying step 1 on running DOORS <todo>To Be automated in the future.</todo> }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v saveAsToolStripMenuItem_Click\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:saveAsToolStripMenuItem_Click}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.saveAsToolStripMenuItem_Click (object {\\i sender}, EventArgs {\\i e}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABI}
{\\bkmkend AAAAAAAABI}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save the current state of the form to an XML file, name chosen by user. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v SaveRtfAsDocx\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SaveRtfAsDocx}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.SaveRtfAsDocx (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABJ}
{\\bkmkend AAAAAAAABJ}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save the opened document as DOCX, for imput to DOORS. Prompt if failure and desire to try again. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v SaveStateFile\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SaveStateFile}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.SaveStateFile (string {\\i file}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABK}
{\\bkmkend AAAAAAAABK}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Save the current state of the form to an XML file. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i file} \\cell }{XML file name to save as.\\cell }
{\\row }
}
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v SendCommandToPseudoConsole\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SendCommandToPseudoConsole}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.SendCommandToPseudoConsole (string {\\i fileName}, string {\\i arguments}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABL}
{\\bkmkend AAAAAAAABL}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Run command with arguments, display results on the pseudo console. Block other steps from running while this completes, with {\\b WaitWhileOtherStepRuns()} and {\\b SetNoLongerRunning()}. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i fileName} \\cell }{Command/executable file to run.\\cell }
{\\row }
\\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i arguments} \\cell }{Arguments/parameters to the executable.\\cell }
{\\row }
}
}}
{\\xe \\v SendMessage\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SendMessage}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
static IntPtr DocSrc.frmDocSrc.SendMessage (IntPtr {\\i hwnd}, uint {\\i message}, IntPtr {\\i wParam}, IntPtr {\\i lParam}){\\f2 [static]}, {\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABM}
{\\bkmkend AAAAAAAABM}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
}
{\\xe \\v SetDoorsLocation\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SetDoorsLocation}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.SetDoorsLocation (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABN}
{\\bkmkend AAAAAAAABN}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
MessageBox displaying step 3 on running DOORS <todo>To Be automated in the future.</todo> }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/False whether successful.\\par
}}}
{\\xe \\v SetForegroundWindow\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SetForegroundWindow}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
static bool DocSrc.frmDocSrc.SetForegroundWindow (IntPtr {\\i hwnd}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABO}
{\\bkmkend AAAAAAAABO}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
}
{\\xe \\v SetForegroundWindow\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SetForegroundWindow}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
bool DocSrc.frmDocSrc.SetForegroundWindow (string {\\i wName}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABP}
{\\bkmkend AAAAAAAABP}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Set the first window, whose title contains wName. Case-insensitive. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i wName} \\cell }{Part or all of the desired window's title\\cell }
{\\row }
}
{{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Returns:\\par}\\pard\\plain \\s62\\li720\\widctlpar\\ql\\adjustright \\fs20\\cgrid True/false whether was able to find and set the desired window to the front.\\par
}}}
{\\xe \\v SetNoLongerRunning\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:SetNoLongerRunning}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.SetNoLongerRunning (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABQ}
{\\bkmkend AAAAAAAABQ}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Set RUNNING to false, alert if it was already false }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v WaitWhileOtherStepRuns\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:WaitWhileOtherStepRuns}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.WaitWhileOtherStepRuns (){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABR}
{\\bkmkend AAAAAAAABR}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
if another process is running, wait here until it completes todo: probably need to have some sort of timeout feature }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
\\par
}}
{\\xe \\v WriteToPseudoConsole\\:DocSrc::frmDocSrc}
{\\xe \\v DocSrc::frmDocSrc\\:WriteToPseudoConsole}
\\pard\\plain \\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid {
{\\b
void DocSrc.frmDocSrc.WriteToPseudoConsole (string {\\i str}, Color {\\i color}){\\f2 [private]}}}
\\par
{\\bkmkstart AAAAAAAABS}
{\\bkmkend AAAAAAAABS}
{
\\pard\\plain \\s51\\li360\\sa60\\sb30\\qj\\widctlpar\\qj\\adjustright \\fs20\\cgrid
\\par
{
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
Add colored text lines to the pseudo-console. Auto scrolls to the end. }}\\par
{\\s17\\sa60\\sb30\\widctlpar\\qj \\fs22\\cgrid
{\\par
{\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid
Parameters:\\par}
\\pard\\plain \\s61\\li360\\widctlpar\\ql\\adjustright \\fs20\\cgrid \\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i str} \\cell }{New text line to add to the pseudo-console.\\cell }
{\\row }
\\trowd \\trgaph108\\trleft426\\tblind426\\trbrdrt\\brdrs\\brdrw10\\brdrcf15 \\trbrdrl\\brdrs\\brdrw10\\brdrcf15 \\trbrdrb\\brdrs\\brdrw10\\brdrcf15 \\trbrdrr\\brdrs\\brdrw10\\brdrcf15 \\trbrdrh\\brdrs\\brdrw10\\brdrcf15 \\trbrdrv\\brdrs\\brdrw10\\brdrcf15
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx2187
\\clvertalt\\clbrdrt\\brdrs\\brdrw10\\brdrcf15 \\clbrdrl\\brdrs\\brdrw10\\brdrcf15 \\clbrdrb\\brdrs\\brdrw10\\brdrcf15 \\clbrdrr \\brdrs\\brdrw10\\brdrcf15 \\cltxlrtb \\cellx8748
\\pard \\widctlpar\\intbl\\adjustright
{{\\i color} \\cell }{Color of the new text to add to the pseudo-console.\\cell }
{\\row }
}
}}
{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}
\\pard\\plain \\s3\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\cgrid
}`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions