hschumann2/TempleOS-Source-Code
0847
1 2#help_index "DolDoc/Task;StdOut/Task"3public CDoc *DocBorderNew(CDoc *pdoc)4{//Make new std border doc.5 CDocEntry *doc_e;6 CDoc *bdoc;7 8 bdoc=DocNew;9 bdoc->flags|=DOCF_BORDER_DOC;10 if (pdoc) {11 DocPrint(bdoc,"$CM+H+BY+RX+NC,-7,1$");12 doc_e=DocPrint(bdoc,"$TX+H+BD+TC,\" \"$");13 doc_e->user_data=pdoc;14 doc_e->tag_cb=&EdFilterCB;15 doc_e=DocPrint(bdoc,"$TX+H+BD+TC,\" \"$");16 doc_e->user_data=pdoc;17 doc_e->tag_cb=&EdOverStrikeCB;18 doc_e=DocPrint(bdoc,"$TX+H+BD+TC,\" \"$");19 doc_e->user_data=pdoc;20 doc_e->tag_cb=&EdDollarCB;21 DocPrint(bdoc,"$CM+H+BY+RX+NC,-18,1$");22 doc_e=DocPrint(bdoc,"$TX+BD+TC,\" \"$");23 doc_e->user_data=pdoc;24 doc_e->tag_cb=&EdMoreCB;25 doc_e=DocPrint(bdoc,"$TX+H+BD+TC,\" \"$");26 doc_e->user_data=pdoc;27 doc_e->tag_cb=&EdDollarTypeCB;28 }29 DocPrint(bdoc,"$CM+H+TY+NC,0,-1$");30 doc_e=DocPrint(bdoc,"$DA+H-TRM-P+BD+RD+CX+IV,LEN=STR_LEN-1,"31 "A=\"%%s...\",SCX=15$");32 doc_e->data=&Fs->task_title;33 DocDataFmt(bdoc,doc_e);34 DocPrint(bdoc,"$CM+H+NC,1,0$$TX+H+BD+IV,\"%X\"$",Fs);35 DocPrint(bdoc,"$TX+H+RX+BD,\"[X]\"$");36 DocPrint(bdoc,"$BK,1$$TX+H+LX+BD,\"MENU\"$$BK,0$");37 return bdoc;38}39 40public U0 DocTermNew()41{//Make into term win task with Put/Display/Border docs.42 CDoc *pdoc=DocNew;43 pdoc->right_click_link=&TermRightClickLink;44 pdoc->max_entries=4096;45 Fs->border_src=BDS_CUR_DRV;46 pdoc->desc='Term';47 Fs->put_doc=Fs->display_doc=pdoc;48 Fs->border_doc=DocBorderNew(pdoc);49 Fs->cur_menu=MenuFile("::/Doc/EdPullDown.DD");50 WinScrollsInit(Fs);51 Raw(OFF);52}53 54#help_index "DolDoc"55 56#define RIGHT_INCLUDE 057#define RIGHT_AINCLUDE 158#define RIGHT_COPY 259#define RIGHT_MOVE 360#define RIGHT_DELETE 461#define RIGHT_TYPE 562#define RIGHT_ED 663#define RIGHT_MOUNT 764#define RIGHT_PLAIN 865#define RIGHT_INFILE 966 67I64 PopUpTermRight(U8 *header)68{69 I64 i;70 CDoc *doc=DocNew;71 if (header) DocPrint(doc,"%s",header);72 DocPrint(doc,"\n\n"73 "TXT=%s\nDD =%s\nJIT=%s\nGR =%s"74 "$CM+LX,1,3 $$BT,\"Include JIT\",LE=RIGHT_INCLUDE$"75 "$CM+LX,25,0$$BT,\"Adam Include JIT\",LE=RIGHT_AINCLUDE$"76 "$CM+LX,1,3 $$BT,\"Copy \",LE=RIGHT_COPY$"77 "$CM+LX,25,0$$BT,\"Move or Rename \",LE=RIGHT_MOVE$"78 "$CM+LX,1,3 $$BT,\"Delete \",LE=RIGHT_DELETE$"79 "$CM+LX,25,0$$BT,\"Type TXT;GR\",LE=RIGHT_TYPE$"80 "$CM+LX,1,3 $$BT,\"DolDoc Edit DD\",LE=RIGHT_ED$"81 "$CM+LX,25,0$$BT,\"Mount ISO.C\",LE=RIGHT_MOUNT$"82 "$CM+LX,1,3 $$BT,\"Plain Text Edit TXT\",LE=RIGHT_PLAIN$"83 "$CM+LX,25,0$$BT,\"Infile IN\",LE=RIGHT_INFILE$"84 "$CM+LX,1,3 $$BT,\"Cancel \",LE=DOCM_CANCEL$\n",85 FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR);86 i=PopUpMenu(doc);87 DocDel(doc);88 return i;89}90 91I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e)92{//Called with doc locked, exit unlocked93 Bool res;94 U8 *st;95 if (st=DocEntryLink(doc,doc_e)) {96 DocUnlock(doc);97 if (doc_e->de_flags & DOCEF_POPUP)98 res=PopUpEd(st);99 else100 res=Ed(st);101 Free(st);102 return res;103 }104}105 106I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e)107{//Called with doc locked, exit unlocked108 Bool send_new_line=FALSE,res=FALSE;109 U8 *st,*st2;110 I64 i;111 CEdFileName fn;112 if (st2=DocEntryLink(doc,doc_e)) {113 if (st=DocLinkFile(st2)) {114 DocUnlock(doc);115 if ((i=PopUpTermRight(st))>=0) {116 DocBottom(doc);117 switch (i) {118 case RIGHT_INCLUDE:119 if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) {120 if (!PopUpCancelOk(ST_WARN_ST "Not .HC File\n\n")) {121 send_new_line=TRUE;122 break;123 }124 }125 "#include \"%s\";\n$PT$$FG$$BG$",st;126 WinZBufUpdate;127 ExeFile(st,CCF_CMD_LINE);128 res=TRUE;129 break;130 case RIGHT_AINCLUDE:131 if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_JIT)) {132 if (!PopUpCancelOk(ST_WARN_ST "Not .HC File\n\n")) {133 send_new_line=TRUE;134 break;135 }136 }137 "Adam(\"#include \\\"%s\\\"\" );\n$PT$$FG$$BG$",st;138 WinZBufUpdate;139 AdamFile(st,FALSE);140 res=TRUE;141 break;142 case RIGHT_COPY:143 StrCpy(fn.name,st);144 if (DocForm(&fn)) {145 res=ToBool(Copy(st,fn.name));146 } else147 send_new_line=TRUE;148 break;149 case RIGHT_MOVE:150 StrCpy(fn.name,st);151 if (DocForm(&fn))152 res=Move(st,fn.name);153 else154 send_new_line=TRUE;155 break;156 case RIGHT_DELETE:157 res=ToBool(Del(st));158 break;159 case RIGHT_TYPE:160 res=Type(st);161 break;162 case RIGHT_ED:163 if (FileExtDot(st) && !FilesFindMatch(st,FILEMASK_DD)) {164 if (!PopUpCancelOk(ST_WARN_ST "Not DolDoc File\n\n")) {165 send_new_line=TRUE;166 break;167 }168 }169 "Ed(\"%s\");\n$PT$$FG$$BG$",st;170 res=Ed(st);171 break;172 case RIGHT_MOUNT:173 if (FileExtDot(st) && !FilesFindMatch(st,"*.ISO.C")) {174 if (!PopUpCancelOk(ST_WARN_ST "Not .ISO.C File\n\n")) {175 send_new_line=TRUE;176 break;177 }178 }179 "MountFile(\"%s\");\n$PT$$FG$$BG$",st;180 WinZBufUpdate;181 MountFile(st);182 res=TRUE;183 break;184 case RIGHT_PLAIN:185 "Plain(\"%s\");\n$PT$$FG$$BG$",st;186 res=Plain(st);187 break;188 case RIGHT_INFILE:189 if (FileExtDot(st) && !FilesFindMatch(st,"*.IN*")) {190 if (!PopUpCancelOk(ST_WARN_ST "Not .IN File\n\n")) {191 send_new_line=TRUE;192 break;193 }194 }195 "InFile(\"%s\");\n$PT$$FG$$BG$",st;196 WinZBufUpdate;197 InFile(st);198 res=TRUE;199 break;200 }201 } else202 send_new_line=TRUE;203 Free(st);204 } else205 send_new_line=TRUE;206 Free(st2);207 } else208 send_new_line=TRUE;209 DocBottom(doc);210 "$PT$$FG$$BG$";211 if (send_new_line)212 '\n';213 return res;214}215 