⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyxdef.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
📖 第 1 页 / 共 2 页
字号:
#define Key_f40         __TK("kf40",  "FU", 245, _ky_f40 )
#define Key_f41         __TK("kf41",  "FV", 246, _ky_f41 )
#define Key_f42         __TK("kf42",  "FW", 247, _ky_f42 )
#define Key_f43         __TK("kf43",  "FX", 248, _ky_f43 )
#define Key_f44         __TK("kf44",  "FY", 249, _ky_f44 )
#define Key_f45         __TK("kf45",  "FZ", 250, _ky_f45 )
#define Key_f46         __TK("kf46",  "Fa", 251, _ky_f46 )
#define Key_f47         __TK("kf47",  "Fb", 252, _ky_f47 )
#define Key_f48         __TK("kf48",  "Fc", 253, _ky_f48 )
#define Key_f49         __TK("kf49",  "Fd", 254, _ky_f49 )
#define Key_f50         __TK("kf50",  "Fe", 255, _ky_f50 )
#define Key_f51         __TK("kf51",  "Ff", 256, _ky_f51 )
#define Key_f52         __TK("kf52",  "Fg", 257, _ky_f52 )
#define Key_f53         __TK("kf53",  "Fh", 258, _ky_f53 )
#define Key_f54         __TK("kf54",  "Fi", 259, _ky_f54 )
#define Key_f55         __TK("kf55",  "Fj", 260, _ky_f55 )
#define Key_f56         __TK("kf56",  "Fk", 261, _ky_f56 )
#define Key_f57         __TK("kf57",  "Fl", 262, _ky_f57 )
#define Key_f58         __TK("kf58",  "Fm", 263, _ky_f58 )
#define Key_f59         __TK("kf59",  "Fn", 264, _ky_f59 )
#define Key_f60         __TK("kf60",  "Fo", 265, _ky_f60 )
#define Key_f61         __TK("kf61",  "Fp", 266, _ky_f61 )
#define Key_f62         __TK("kf62",  "Fq", 267, _ky_f62 )
#define Key_f63         __TK("kf63",  "Fr", 268, _ky_f63 )

/* }}} */

#ifdef __QNX__

/* don't force pre-defining of base keys under QNX */
#define FORCE_BASE_KEY_DEFS 0

/* OS specific key aliases */
#define Key_alt_a       Key_clear
#define Key_alt_b       Key_stab
#define Key_alt_c       Key_close
#define Key_alt_d       Key_catab
#define Key_alt_e       Key_message
#define Key_alt_f       Key_find
#define Key_alt_g       Key_refresh
#define Key_alt_h       Key_help
#define Key_alt_i       Key_move
#define Key_alt_j       Key_restart
#define Key_alt_k       Key_options
#define Key_alt_l       Key_reference
#define Key_alt_m       Key_mark
#define Key_alt_n       Key_sbeg
#define Key_alt_o       Key_open
#define Key_alt_p       Key_resume
#define Key_alt_q       Key_save
#define Key_alt_r       Key_replace
#define Key_alt_s       Key_scopy
#define Key_alt_t       Key_screate
#define Key_alt_u       Key_undo
#define Key_alt_v       Key_sdl
#define Key_alt_w       Key_sexit
#define Key_alt_x       Key_sfind
#define Key_alt_y       Key_shelp
#define Key_alt_z       Key_soptions

#define Key_ctl_enter   Key_enter
#define Key_ctl_tab     Key_ctab

#define Key_alt_tab     Key_ctl_tab         /* map ALT-TAB to CTRL-TAB */
#define Key_alt_enter   Key_ctl_enter       /* map ALT-ENTER to CTRL-ENTER */

#ifdef __USE_QNX_TI

/* OS/implementation specific key-define struct */
typedef struct qnx_key_define_s {
    int mc_code;
    int str_idx;
} qnx_key_define_t;

/* define current xtra_key_define_t (enable OS/implementation) */
#define xtra_key_define_t qnx_key_define_t

#endif /* __USE_QNX_TI */

#endif /* __QNX__ */


#ifdef xtra_key_define_t

#ifndef FORCE_BASE_KEY_DEFS
#define FORCE_BASE_KEY_DEFS 0
#endif

/* general key define table */
xtra_key_define_t xtra_key_defines[] = {
#if FORCE_BASE_KEY_DEFS
    {KEY_BACKSPACE,Key_backspace},
    {KEY_LEFT,     Key_left     },
    {KEY_RIGHT,    Key_right    },
    {KEY_UP,       Key_up       },
    {KEY_DOWN,     Key_down     },
    {KEY_NPAGE,    Key_npage    },
    {KEY_PPAGE,    Key_ppage    },
    {KEY_HOME,     Key_home     },
    {KEY_END,      Key_end      },
    {KEY_DC,       Key_dc       },
    {KEY_IC,       Key_ic       },
    {KEY_F(1),     Key_f1       },
    {KEY_F(2),     Key_f2       },
    {KEY_F(3),     Key_f3       },
    {KEY_F(4),     Key_f4       },
    {KEY_F(5),     Key_f5       },
    {KEY_F(6),     Key_f6       },
    {KEY_F(7),     Key_f7       },
    {KEY_F(8),     Key_f8       },
    {KEY_F(9),     Key_f9       },
    {KEY_F(10),    Key_f10      },
    {KEY_F(11),    Key_f11      },
    {KEY_F(12),    Key_f12      },
    {KEY_F(13),    Key_f13      },
    {KEY_F(14),    Key_f14      },
    {KEY_F(15),    Key_f15      },
    {KEY_F(16),    Key_f16      },
    {KEY_F(17),    Key_f17      },
    {KEY_F(18),    Key_f18      },
    {KEY_F(19),    Key_f19      },
    {KEY_F(20),    Key_f20      },
#endif
    {ALT('a'),     Key_alt_a    },
    {ALT('b'),     Key_alt_b    },
    {ALT('c'),     Key_alt_c    },
    {ALT('d'),     Key_alt_d    },
    {ALT('e'),     Key_alt_e    },
    {ALT('f'),     Key_alt_f    },
    {ALT('g'),     Key_alt_g    },
    {ALT('h'),     Key_alt_h    },
    {ALT('i'),     Key_alt_i    },
    {ALT('j'),     Key_alt_j    },
    {ALT('k'),     Key_alt_k    },
    {ALT('l'),     Key_alt_l    },
    {ALT('m'),     Key_alt_m    },
    {ALT('n'),     Key_alt_n    },
    {ALT('o'),     Key_alt_o    },
    {ALT('p'),     Key_alt_p    },
    {ALT('q'),     Key_alt_q    },
    {ALT('r'),     Key_alt_r    },
    {ALT('s'),     Key_alt_s    },
    {ALT('t'),     Key_alt_t    },
    {ALT('u'),     Key_alt_u    },
    {ALT('v'),     Key_alt_v    },
    {ALT('w'),     Key_alt_w    },
    {ALT('x'),     Key_alt_x    },
    {ALT('y'),     Key_alt_y    },
    {ALT('z'),     Key_alt_z    },

    {ALT('\n'),    Key_alt_enter},
    {ALT('\t'),    Key_alt_tab  }
};

#endif  /* xtra_key_define_t */


#ifdef __QNX__

#ifdef __USE_QNX_TI

#define __CT               (__cur_term)
#define __QTISOFFS(_qtisx) (((charoffset*)(&__CT->_strs))[_qtisx])
#define __QTISSTR(_qtisx)  (&__CT->_strtab[0]+__QTISOFFS(_qtisx))

void load_qnx_key_defines (void)
{
    static int _qnx_keys_defined = 0;

    if (!_qnx_keys_defined) {
	int idx, str_idx;
	int term_setup_ok;

        __setupterm(NULL, fileno(stdout), &term_setup_ok);
        if (term_setup_ok != 1)
            return;

        for (idx = 0;
             idx < sizeof(xtra_key_defines) / sizeof(xtra_key_defines[0]);
             idx++) {
            str_idx = xtra_key_defines[idx].str_idx;
            if (__QTISOFFS(str_idx)) {
                if (*__QTISSTR(str_idx)) {
                    define_sequence(
                        xtra_key_defines[idx].mc_code,
                        __QTISSTR(str_idx),
                        MCKEY_NOACTION);
                }
            }
        }
        _qnx_keys_defined = 1;
    }
}

#endif /* __USE_QNX_TI */

#endif /* __QNX__ */


/* called from key.c/init_key() */
void load_xtra_key_defines (void)
{
#ifdef __QNX__
    load_qnx_key_defines();
#endif
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -