214 lines
5.6 KiB
HolyC
214 lines
5.6 KiB
HolyC
|
#help_index "DolDoc/Task;StdOut/Task"
|
|||
|
public CDoc *DocBorderNew(CDoc *pdoc)
|
|||
|
{//Make new std border doc.
|
|||
|
CDocEntry *doc_e;
|
|||
|
CDoc *bdoc;
|
|||
|
|
|||
|
bdoc=DocNew;
|
|||
|
bdoc->flags|=DOCF_BORDER_DOC;
|
|||
|
if (pdoc) {
|
|||
|
DocPrint(bdoc,"$$CM+H+BY+RX+NC,-7,1$$");
|
|||
|
doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$");
|
|||
|
doc_e->user_data=pdoc;
|
|||
|
doc_e->tag_cb=&EdFilterCB;
|
|||
|
doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$");
|
|||
|
doc_e->user_data=pdoc;
|
|||
|
doc_e->tag_cb=&EdOverStrikeCB;
|
|||
|
doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$");
|
|||
|
doc_e->user_data=pdoc;
|
|||
|
doc_e->tag_cb=&EdDollarCB;
|
|||
|
DocPrint(bdoc,"$$CM+H+BY+RX+NC,-18,1$$");
|
|||
|
doc_e=DocPrint(bdoc,"$$TX+BD+TC,\" \"$$");
|
|||
|
doc_e->user_data=pdoc;
|
|||
|
doc_e->tag_cb=&EdMoreCB;
|
|||
|
doc_e=DocPrint(bdoc,"$$TX+H+BD+TC,\" \"$$");
|
|||
|
doc_e->user_data=pdoc;
|
|||
|
doc_e->tag_cb=&EdDollarTypeCB;
|
|||
|
}
|
|||
|
DocPrint(bdoc,"$$CM+H+TY+NC,0,-1$$");
|
|||
|
doc_e=DocPrint(bdoc,"$$DA+H-TRM-P+BD+RD+CX+IV,LEN=STR_LEN-1,"
|
|||
|
"A=\"%%s...\",SCX=15$$");
|
|||
|
doc_e->data=&Fs->task_title;
|
|||
|
DocDataFmt(bdoc,doc_e);
|
|||
|
DocPrint(bdoc,"$$CM+H+NC,1,0$$$$TX+H+BD+IV,\"%X\"$$",Fs);
|
|||
|
DocPrint(bdoc,"$$TX+H+RX+BD,\"[X]\"$$");
|
|||
|
DocPrint(bdoc,"$$BK,1$$$$TX+H+LX+BD,\"MENU\"$$$$BK,0$$");
|
|||
|
return bdoc;
|
|||
|
}
|
|||
|
|
|||
|
public U0 DocTermNew()
|
|||
|
{//Make into term win task with Put/Display/Border docs.
|
|||
|
CDoc *pdoc=DocNew;
|
|||
|
pdoc->right_click_link=&TermRightClickLink;
|
|||
|
pdoc->max_entries=4096;
|
|||
|
Fs->border_src=BDS_CUR_DRV;
|
|||
|
pdoc->desc='Term';
|
|||
|
Fs->put_doc=Fs->display_doc=pdoc;
|
|||
|
Fs->border_doc=DocBorderNew(pdoc);
|
|||
|
Fs->cur_menu=MenuFile("::/Doc/EdPullDown.DD");
|
|||
|
WinScrollsInit(Fs);
|
|||
|
Raw(OFF);
|
|||
|
}
|
|||
|
|
|||
|
#help_index "DolDoc"
|
|||
|
|
|||
|
#define RIGHT_INCLUDE 0
|
|||
|
#define RIGHT_AINCLUDE 1
|
|||
|
#define RIGHT_COPY 2
|
|||
|
#define RIGHT_MOVE 3
|
|||
|
#define RIGHT_DELETE 4
|
|||
|
#define RIGHT_TYPE 5
|
|||
|
#define RIGHT_ED 6
|
|||
|
#define RIGHT_MOUNT 7
|
|||
|
#define RIGHT_PLAIN 8
|
|||
|
#define RIGHT_INFILE 9
|
|||
|
|
|||
|
I64 PopUpTermRight(U8 *header)
|
|||
|
{
|
|||
|
I64 i;
|
|||
|
CDoc *doc=DocNew;
|
|||
|
if (header) DocPrint(doc,"%s",header);
|
|||
|
DocPrint(doc,"\n\n"
|
|||
|
"TXT=%s\nDD=%s\nJIT=%s\nGR=%s"
|
|||
|
"$$CM+LX,1,3 $$$$BT,\"IncludeJIT\",LE=RIGHT_INCLUDE$$"
|
|||
|
"$$CM+LX,25,0$$$$BT,\"Adam IncludeJIT\",LE=RIGHT_AINCLUDE$$"
|
|||
|
"$$CM+LX,1,3 $$$$BT,\"Copy\",LE=RIGHT_COPY$$"
|
|||
|
"$$CM+LX,25,0$$$$BT,\"Moveor Rename\",LE=RIGHT_MOVE$$"
|
|||
|
"$$CM+LX,1,3 $$$$BT,\"Delete\",LE=RIGHT_DELETE$$"
|
|||
|
"$$CM+LX,25,0$$$$BT,\"TypeTXT;GR\",LE=RIGHT_TYPE$$"
|
|||
|
"$$CM+LX,1,3 $$$$BT,\"DolDocEditDD\",LE=RIGHT_ED$$"
|
|||
|
"$$CM+LX,25,0$$$$BT,\"MountISO.C\",LE=RIGHT_MOUNT$$"
|
|||
|
"$$CM+LX,1,3 $$$$BT,\"PlainText EditTXT\",LE=RIGHT_PLAIN$$"
|
|||
|
"$$CM+LX,25,0$$$$BT,\"InfileIN\",LE=RIGHT_INFILE$$"
|
|||
|
"$$CM+LX,1,3 $$$$BT,\"Cancel\",LE=DOCM_CANCEL$$\n",
|
|||
|
FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR);
|
|||
|
i=PopUpMenu(doc);
|
|||
|
DocDel(doc);
|
|||
|
return i;
|
|||
|
}
|
|||
|
|
|||
|
I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e)
|
|||
|
{//Called with doc locked, exit unlocked
|
|||
|
Bool res;
|
|||
|
U8 *st;
|
|||
|
if (st=DocEntryLink(doc,doc_e)) {
|
|||
|
DocUnlock(doc);
|
|||
|
if (doc_e->de_flags & DOCEF_POPUP)
|
|||
|
res=PopUpEd(st);
|
|||
|
else
|
|||
|
res=Ed(st);
|
|||
|
Free(st);
|
|||
|
return res;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e)
|
|||
|
{//Called with doc locked, exit unlocked
|
|||
|
Bool send_new_line=FALSE,res=FALSE;
|
|||
|
U8 *st,*st2;
|
|||
|
I64 i;
|
|||
|
CEdFileName fn;
|
|||
|
if (st2=DocEntryLink(doc,doc_e)) {
|
|||
|
if (st=DocLinkFile(st2)) {
|
|||
|
DocUnlock(doc);
|
|||
|
if ((i=PopUpTermRight(st))>=0) {
|
|||
|
DocBottom(doc);
|
|||
|
switch (i) {
|
|||
|
case RIGHT_INCLUDE:
|
|||
|
if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) {
|
|||
|
if (!PopUpCancelOk(ST_WARN_ST "Not .HC File\n\n")) {
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
"#include \"%s\";\n$$PT$$$$FG$$$$BG$$",st;
|
|||
|
WinZBufUpdate;
|
|||
|
ExeFile(st,CCF_CMD_LINE);
|
|||
|
res=TRUE;
|
|||
|
break;
|
|||
|
case RIGHT_AINCLUDE:
|
|||
|
if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) {
|
|||
|
if (!PopUpCancelOk(ST_WARN_ST "Not .HC File\n\n")) {
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
"Adam(\"#include \\\"%s\\\"\" );\n$$PT$$$$FG$$$$BG$$",st;
|
|||
|
WinZBufUpdate;
|
|||
|
AdamFile(st,FALSE);
|
|||
|
res=TRUE;
|
|||
|
break;
|
|||
|
case RIGHT_COPY:
|
|||
|
StrCpy(fn.name,st);
|
|||
|
if (DocForm(&fn)) {
|
|||
|
res=ToBool(Copy(st,fn.name));
|
|||
|
} else
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
case RIGHT_MOVE:
|
|||
|
StrCpy(fn.name,st);
|
|||
|
if (DocForm(&fn))
|
|||
|
res=Move(st,fn.name);
|
|||
|
else
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
case RIGHT_DELETE:
|
|||
|
res=ToBool(Del(st));
|
|||
|
break;
|
|||
|
case RIGHT_TYPE:
|
|||
|
res=Type(st);
|
|||
|
break;
|
|||
|
case RIGHT_ED:
|
|||
|
if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_DD)) {
|
|||
|
if (!PopUpCancelOk(ST_WARN_ST "Not DolDoc File\n\n")) {
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
"Ed(\"%s\");\n$$PT$$$$FG$$$$BG$$",st;
|
|||
|
res=Ed(st);
|
|||
|
break;
|
|||
|
case RIGHT_MOUNT:
|
|||
|
if (FileExtDot(st) && !FilesFindMatch(st,"*.ISO.C")) {
|
|||
|
if (!PopUpCancelOk(ST_WARN_ST "Not .ISO.C File\n\n")) {
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
"MountFile(\"%s\");\n$$PT$$$$FG$$$$BG$$",st;
|
|||
|
WinZBufUpdate;
|
|||
|
MountFile(st);
|
|||
|
res=TRUE;
|
|||
|
break;
|
|||
|
case RIGHT_PLAIN:
|
|||
|
"Plain(\"%s\");\n$$PT$$$$FG$$$$BG$$",st;
|
|||
|
res=Plain(st);
|
|||
|
break;
|
|||
|
case RIGHT_INFILE:
|
|||
|
if (FileExtDot(st) && !FilesFindMatch(st,"*.IN*")) {
|
|||
|
if (!PopUpCancelOk(ST_WARN_ST "Not .IN File\n\n")) {
|
|||
|
send_new_line=TRUE;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
"InFile(\"%s\");\n$$PT$$$$FG$$$$BG$$",st;
|
|||
|
WinZBufUpdate;
|
|||
|
InFile(st);
|
|||
|
res=TRUE;
|
|||
|
break;
|
|||
|
}
|
|||
|
} else
|
|||
|
send_new_line=TRUE;
|
|||
|
Free(st);
|
|||
|
} else
|
|||
|
send_new_line=TRUE;
|
|||
|
Free(st2);
|
|||
|
} else
|
|||
|
send_new_line=TRUE;
|
|||
|
DocBottom(doc);
|
|||
|
"$$PT$$$$FG$$$$BG$$";
|
|||
|
if (send_new_line)
|
|||
|
'\n';
|
|||
|
return res;
|
|||
|
}
|