1. 程式人生 > >紅孩兒編輯器的詳細設計第三部分

紅孩兒編輯器的詳細設計第三部分

紅孩兒編輯器的詳細設計第三部分

這一部分詳細地列出各個模組的介面定義

輸入子系統
鍵盤模組  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的矩陣