//Place this file in /Home and change //anything you want. U0 TimeIns() { CDate cdt; cdt = Now; "$IV,1$----%D %T----$IV,0$\n", cdt, cdt; } U0 FileLinkIns() { U8 *st = PopUpPickFile; st[0] = ':'; //This is Terry's personal code, not production. LOL "$LK,\"%s\",A=\"FI:%s\"$", st + 2, st; Free(st); } U0 DirLinksIns() { CDirEntry *tmpde, *tmpde1; U8 *st = PopUpPickDir, *st2; st[0] = ':'; //This is Terry's personal code, not production. LOL st2 = MStrPrint("%s/*", st); tmpde = tmpde1 = FilesFind(st2, FUF_JUST_FILES); while (tmpde) { tmpde->full_name[0] = ':'; "$LK,\"%s\",A=\"FI:%s\"$\n", tmpde->full_name + 2, tmpde->full_name; tmpde = tmpde->next; } DirTreeDel(tmpde1); Free(st); Free(st2); } U0 DocHiddenDel(CDoc *doc=NULL) { Bool unlock; CDocEntry *doc_e, *doc_e1; if (!doc) doc = DocPut; if (doc) { unlock = DocLock(doc); DocRecalc(doc); doc_e = doc->head.next; while (doc_e != doc) { doc_e1 = doc_e->next; if (doc_e->de_flags & (DOCEF_FILTER_SKIP | DOCEF_SKIP)) DocEntryDel(doc, doc_e); doc_e = doc_e1; } DocRecalc(doc); if (unlock) DocUnlock(doc); } } Bool MyPutKey(I64 ch, I64 sc) {//ch=ASCII; sc=scan_code //See Char for definition of scan codes. //See Key Allocations. //See Keyboard Devices. //You can customize keys. This routine //is called before the main editor //key handler DocPutKey(). //You can intercept any key. //Return TRUE if you completely //handled the key. I64 i; U8 *st1, *st2; if (sc & SCF_ALT && !(sc & SCF_CTRL)) { switch (ch) { case 0: switch (sc.u8[0]) { case SC_F1: if (sc & SCF_SHIFT) { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /LTPURPLE"); else "$LTPURPLE$"; } else { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /PURPLE"); else "$PURPLE$"; } return TRUE; case SC_F2: if (sc & SCF_SHIFT) { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /LTRED"); else "$LTRED$"; } else { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /RED"); else "$RED$"; } return TRUE; case SC_F3: if (sc & SCF_SHIFT) { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /LTGREEN"); else "$LTGREEN$"; } else { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /GREEN"); else "$GREEN$"; } return TRUE; case SC_F4: if (sc & SCF_SHIFT) { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /Default Color"); else "$FG$"; } else { if (sc & SCF_KEY_DESC) KeyDescSet("Dol /BLUE"); else "$BLUE$"; } return TRUE; case SC_F8: if (sc & SCF_SHIFT) { if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /DirLinksIns"); else DirLinksIns; } else { if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /FileLinkIns"); else FileLinkIns; } return TRUE; } break; case 'a': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /AutoComplete On"); else AutoComplete(ON); return TRUE; case 'A': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /AutoComplete Off"); else AutoComplete; return TRUE; case 'f': //With sync if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /FrameGrabber Sync"); else if (fg_on) FrameGrabberToggle(FALSE, FALSE); else FrameGrabberToggle(TRUE, FALSE); return TRUE; case 'F': //With sync and intro TOS theme if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /FrameGrabber Intro"); else if (fg_on) FrameGrabberToggle(FALSE, FALSE); else FrameGrabberToggle(TRUE, TRUE); return TRUE; case 'h': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /WinTileHorz"); else WinTileHorz; return TRUE; case 'H': if (sc & SCF_KEY_DESC) KeyDescSet("Edit/Del Hidden Doc Entries"); else DocHiddenDel; return TRUE; case 'm': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /WinMax"); else { WinBorder; WinMax; } return TRUE; case 'v': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /WinTileVert"); else WinTileVert; return TRUE; case 'l': if (sc & SCF_KEY_DESC) KeyDescSet("Edit/Put Link to Cur Pos on Clip"); else { ClipDel; st1 = FileNameAbs(BIBLE_FILENAME); DocPrint(sys_clip_doc, "$LK,\"FL:%s,%d\"$", st1, DocPut->cur_entry->y + 1); Free(st1); } return TRUE; case 'L': if (sc & SCF_KEY_DESC) KeyDescSet("Edit/Place Anchor, Put Link to Clip"); else { i = RandU32; ClipDel; DocPrint(sys_clip_doc, "$LK,\"<TODO>\",A=\"FA:%s,ANC%d\"$", DocPut->filename.name, i); "$AN,\"<TODO>\",A=\"ANC%d\"$", i; } return TRUE; case 'p': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /JukeBox"); else PopUp("#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Home/Sup3/Sup3Hymns\");"); return TRUE; case 'P': if (sc & SCF_KEY_DESC) KeyDescSet("Cmd /Psalmody"); else PopUp("#include \"::/Apps/Psalmody/Load\";Psalmody(\"~/Sup3/Sup3Hymns\");"); return TRUE; //Ins your own ALT-key plug-ins case '1': if (sc & SCF_KEY_DESC) KeyDescSet("Dol /pi"); else 'pi'; return TRUE; case '2': if (sc & SCF_KEY_DESC) KeyDescSet("Dol /theta"); else 'theta'; return TRUE; case '3': if (sc & SCF_KEY_DESC) KeyDescSet("Dol /phi"); else 'phi'; return TRUE; case '4': if (sc & SCF_KEY_DESC) KeyDescSet("Dol /omega"); else 'omega'; return TRUE; case '9': if (sc & SCF_KEY_DESC) KeyDescSet("Dol /Indent 5"); else "$ID,5$"; return TRUE; case '0': if (sc & SCF_KEY_DESC) KeyDescSet("Dol /Unindent 5"); else "$ID,-5$"; return TRUE; } } return FALSE; } Bool MyPutS(U8 *) { return FALSE; } KeyDevAdd(&MyPutKey, &MyPutS, 0x20000000, TRUE);