class Screen{
private :
LinearLayout screenView;
// child views
DebugView debugView;
LineNumViewAdapter lineNumViewAdapter;// 适配器
LineNumView lineNumView;
CodeFoldView codeFoldView;
EditViewAdapter editViewAdapter;// 适配器
EditView editView;
...
}
其中一个适配器的设置示例:
// init adapter for line number view
// window size change will NOT trigger lineCount change, so just init at create window.
visibleLineCount = lineNumView.getHeight()/lineNumView.getCharHeight() +1;
lineNumViewAdapter.lineCount = (visibleLineCount < lineCount) ? visibleLineCount : lineCount;
lineNumView.setAdapter(&lineNumViewAdapter);
看看目前的显示效果:
解决:
1、行号的显示是(visibleLineCount<fileTotalLineCount):visibleLineCount:fileTotalLineCount,即与文本区域一样,使用短路算法。
2、行号自动计算最大行号宽度,即文件总行数越大,行号区域的宽度也越大。
未解决:
1、等宽字符的BUG:为了简便(AIMO编辑器思想不是让程序员多写代码,而是编码自动化+设计自动化,这个等完成到80%才看得出效果),所以首个版本是只支持等宽字符的,现在无论是行号显示还是文本区域,都没有显示等宽字符。
2、界面上的滚动条没有绑定数据。
3、鼠标、键盘等输入,光标的显示还未实现