红孩儿编辑器的模块设计6

红孩儿编辑器的模块设计6

编辑器的主显示区域的文件显示的整体逻辑

配置信息中的是否显示行号,是否自动换行,对文件在编辑器上的显示有直接的影响。
所以分成了如下的四种情况进行描述:

1  显示行号,自动换行
    每行显示的字符总数n=编辑器的宽度/字符的宽度-行号占用的字符数
    文件中的一行在屏幕上占用的行数=文件中的一行字符数/每行显示的字符的总数
   显示时按照屏幕上的一行行进行,例如文件中的第一行占三行,则第一行显示第一到第n个字符。
  第二行显示第n+1到第2n个字符,第三行显示剩余的字符。
   如果在第一行的某个位置添加了一个字符,则从这个字符之后的其它字符向后挪动一个位置。这时
如果第三行是满的,也就是最后一个字符到了右边界了,会有一个字符挤到了下一行。
  这会造成,下面的所有的行都向下移动一行。

2  显示行号,不自动换行
     每行显示的字符总数n=编辑器的宽度/字符的宽度-行号占用的字符数
    文件中的一行在屏幕上占用的行数=1

    如果在第一行的某个位置添加了一个字符,则从这个字符之后的其它字符向后挪动一个位置。
    如果这一行是满的,会有一个字符被挤到了右边界之外,而不再显示。

3  不显示行号,自动换行
     每行显示的字符总数n=编辑器的宽度/字符的宽度
     文件中的一行在屏幕上占用的行数=文件中的一行字符数/每行显示的字符的总数
    
     如果在第一行的某个位置删除了一个字符,后面的字符向前挪动一个位置,如果文件
    的这一行占用的最后一行只有一个字符,就意味着,最后一行取消了。
    下面的各行向上挪动一行的位置。

4  不显示行号,不自动换行
    每行显示的字符总数n=编辑器的宽度/字符的宽度
    文件中的一行在屏幕上占用的行数=1
    如果在第一行的某个位置删除了一个字符,之后的每个字符向前挪动一个位置,如果右边界外
   有被挤出去的字符,移最前面的一个字符,显示在右边界的内部。
 

猜你喜欢

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