ZealOS/src/HomeKeyPlugIns.ZC
2021-12-30 22:22:37 -05:00

255 lines
4.6 KiB
HolyC
Executable file
Raw Blame History

//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;
}
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 handler $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_F7:
if (!(sc & SCF_SHIFT))
{
if (sc & SCF_KEY_DESC)
KeyDescSet("Cmd /TimeIns");
else
TimeIns;
}
return TRUE;
case SC_DELETE:
if (sc & SCF_SHIFT)
{
if (sc & SCF_KEY_DESC)
KeyDescSet("Cmd /Soft Reboot");
else
BootRAM;
}
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 'g':
if (sc & SCF_KEY_DESC)
KeyDescSet("Cmd /WinTileGrid");
else
WinTileGrid;
return TRUE;
case 'h':
if (sc & SCF_KEY_DESC)
KeyDescSet("Cmd /WinTileHorz");
else
WinTileHorz;
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 (!StrCompare(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;
//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);