红孩儿编辑器的详细设计第三部分

红孩儿编辑器的详细设计第三部分

这一部分详细地列出各个模块的接口定义

输入子系统
键盘模块  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)  向缓存中添加字符

扫描二维码关注公众号,回复: 4194698 查看本文章

矩阵转换
arr16_arr32(arr)     16*16矩阵转化成32*32的矩阵

猜你喜欢

转载自blog.csdn.net/gggwfn1982/article/details/83831569