紅孩兒編輯器的詳細設計第三部分
紅孩兒編輯器的詳細設計第三部分
這一部分詳細地列出各個模組的介面定義
輸入子系統
鍵盤模組 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的矩陣