CuLib需求

TableOfContents

目标

实现一个基于curses的高级调用包。

内容

基础

  1. 开发一个公共调用层,使之更通用一些,比curses提供的更高级一点,而且更符合中国人的习惯。象 curses的坐标是(y,x)有些不习惯。

事件处理

  1. 实现事件处理调用机制
  2. 实现基础事件影响对象(暂定BUI)
  3. 所有UI元素均要求从此对象(BUI)派生

窗口对象

  1. 窗口对象均为UI元素
  2. 可以响应事件
  3. 有继承关系
  4. 显示分为模态和非模态两种。模态为必须关闭才可以切换到其它窗口,而非模态为不需关系就可以切换到其它窗口

窗体(frame)

  1. 为基本UI元素,实现基本的字符录入、显示、定位
  2. 要实现stack式屏幕保存,即可以把窗口内的某个矩形型区域拷贝下来,当执行多次将保存维护成一个栈,恢复屏幕时按照栈的顺序恢复。
  3. 可以有多种样式选择
  4. 窗体可以大于显示大小
  5. 有滚动条并可以指定是否显示
  6. 可以移动
  7. 可以改变大小
  8. 显示分为模态和非模态

菜单(menu)

  1. 支持多级菜单
  2. 菜单项有多种状态可以设定:禁止/允许、显示/不显示、检查/不检查
  3. 支持配置文件生成菜单
  4. 自动判断屏幕边界保证菜单显示完整
  5. 菜单支持动态修改

快速模板

  1. 可以快速实现的,含大量说明注释的实用模板
    1. 简单编辑窗口
    2. 简单交互窗口
    3. 简单字符式 web 窗口
    4. 简单运行监控窗口
  2. 我们主要是做工具,不是做应用,我想这个界线要划分清楚。交互窗口,web窗口应该是属于应用的。监控窗口是怎么想的?不过上面可以做为我们的demo程序。-- limodou [DateTime]

    • 对!就是Demo 的意思!可以作为 整体测试框架来先实现之!
    • 使用什么样的项目管理方式? 微集成? -- ZoomQuiet

    • 我想就是简单的迭代吧。 -- limodou