saphir/KeyDev.HC

48 lines
1.3 KiB
HolyC

U0 @saphir_key_nop() {}
Bool @saphir_put_key(I64 ch, I64 sc) {
if (sc & SCF_ALT && !(sc & SCF_CTRL)) {
switch (ch) {
case 0:
switch (sc.u8[0]) {
case SC_CURSOR_UP:
@saphir_win_select(SAPHIR_WIN_UP);
return TRUE;
case SC_CURSOR_DOWN:
@saphir_win_select(SAPHIR_WIN_DOWN);
return TRUE;
case SC_CURSOR_LEFT:
@saphir_win_select(SAPHIR_WIN_LEFT);
return TRUE;
case SC_CURSOR_RIGHT:
@saphir_win_select(SAPHIR_WIN_RIGHT);
return TRUE;
}
break;
case 'h':
@saphir_split_horz;
return TRUE;
break;
case 'v':
@saphir_split_vert;
return TRUE;
break;
}
}
return FALSE;
}
U64 @tos_fp_cbs_enabled =
keydev.fp_ctrl_alt_cbs; // Save pointer to TempleOS system-wide (CTRL-ALT)
// callbacks
U64 @tos_fp_cbs_disabled = CAlloc(0xD0);
keydev.fp_ctrl_alt_cbs =
@tos_fp_cbs_disabled; // Disable TempleOS system-wide (CTRL-ALT) callbacks
// FIXME: Ideally, we would add a new KeyDev here, but since we need to override
// the HomeKeyPlugIns, we will need to patch MyKeyDev instead.
// KeyDevAdd(&@saphir_put_key, &MyPutS, 0x10000000,
// TRUE); // Enable Saphir keyboard shortcuts
@function_patch(&MyPutKey, &@saphir_put_key);