红孩儿编辑器的详细设计第三部分
这一部分详细地列出各个模块的接口定义
输入子系统
键盘模块 key_operation() key_up()
鼠标模块 input(val)
核心控制子系统
控制模块 core_controll_logic(event_type,key_code,str)
输入法模块
//输入的是一个英语字符串,输出是一个以区位码为元素的二维矩阵。
lookup_table('wwww') ---> [[4043],[4043,4043],[2222,4043][]]
//查找unicode编码 以区位码为参数
query_unicode_from_quwei(quwei)
光标控制性操作的定位模块
定义的操作有到
do_cursor_home() 行首
do_cursor_end() 行尾
do_cursor_enter() 换行
do_cursor_left() 后进一个字符的位置
do_cursor_right() 前进一个字符的位置
do_cursor_up() 上一行
do_cursor_page_up() 上一页
do_cursor_page_down() 下一页
do_cursor_down() 下一行
渲染子系统
字符显示模块
//打印一个英语字符。输入的是ASCII码
function draw_character_for_ascii(ascii_code,p_editor,p_config)
//打印的是选择好的字或者词语。 输入的是候选的字词中的第几个 和 区位码的二维矩阵。
function draw_character_for_select(nth,character_id_arr,p_editor,p_config)
光标显示模块
refresh_cursor() 更新光标,实现光标的闪烁效果
hide_cursor() 隐藏光标
缓存子系统
缓存模块
write_buffer(code,p_editor,p_config); 写缓存
底层模块有
数学库,
Math_max(x,y) 最大值
Math_min(x,y) 最小值
Math_abs(x) 求绝对值
Math_GetPositive(x) 取正值,负值为0
缓存用的队列库,
delete_character_to_buffer(buffer,row,col) 从缓存中删除字符
insert_character_to_buffer(buffer,row,col,code) 向缓存中添加字符
矩阵转换
arr16_arr32(arr) 16*16矩阵转化成32*32的矩阵