templeos-info/public/Wb/Demo/AcctExample/HomeKeyPlugIns.HC

290 lines
5.8 KiB
HolyC
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//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 my 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 my 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 $LK,"Char",A="HI:Char"$ for definition of scan codes.
//See $LK,"Key Allocations",A="FI:::/Doc/KeyAlloc.DD"$.
//See $LK,"Keyboard Devices",A="HI:Keyboard Devices/System"$.
//You can customize keys. This routine
//is called before the main editor
//key hndlr $LK,"DocPutKey",A="MN: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);
st2=FileNameAbs(DocPut->filename.name);
if (!StrCmp(st1,st2)) {
Free(st1);
st1=BibleLine2Verse(DocPut->cur_entry->y+1,',');
DocPrint(sys_clip_doc,"$$LK,\"BF:%s\"$$",st1);
} else
DocPrint(sys_clip_doc,"$$LK,\"FL:%s,%d\"$$",
st2,DocPut->cur_entry->y+1);
Free(st1);
Free(st2);
}
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/<2F>");
else
'<EFBFBD>';
return TRUE;
case '2':
if (sc&SCF_KEY_DESC)
KeyDescSet("Dol/<2F>");
else
'<EFBFBD>';
return TRUE;
case '3':
if (sc&SCF_KEY_DESC)
KeyDescSet("Dol/<2F>");
else
'<EFBFBD>';
return TRUE;
case '4':
if (sc&SCF_KEY_DESC)
KeyDescSet("Dol/<2F>");
else
'<EFBFBD>';
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);