Linux 的 Todolist





5.00/5 (4投票s)
专为 Asus Eee Pc 设计的简单待办事项列表。
引言
这个应用程序是一个简单的分层待办事项列表,可以在 Linux 下通过 Mono 运行。
背景
我使用 .dan.g 的 ToDoList 已经有一段时间了。它是一个很棒的待办事项列表,我在其他任何地方都找不到能与之媲美的。
但是,它只能在 Windows 上运行,这是一个缺点。我曾尝试在 Linux 上使用 Wine 运行它,但无法弄清楚如何“安装”待办事项列表所需的 msxml dll。我最近得到了一台 Asus eee PC,一直在寻找一个可以在上面运行的待办事项列表。我没有找到任何能与 dan.g 的待办事项列表媲美的。我尝试在 Wine 下运行待办事项列表,但并不容易,所以我决定将我的 TodolistPPC 移植到 Linux 下的 Mono 上运行,并在 Eee PC 上运行它。
目前,它可以读取 dan.g 的待办事项列表版本 5.3.11 的文件。我可能会继续读取和写入 dan.g 的文件,但可能不会。我认为我会扩展这个应用程序,并开始在 Windows 上的 Mono 中将其作为我的主要待办事项列表使用。
代码
![]() ![]() |
这个项目有两个命名空间:UI 命名空间 (uk.org.aspellclark.todolist) 和一个用于数据的独立命名空间 (uk.org.aspellclark.todolist.engine)。我重用了我为 Pocket PC 编写的待办事项列表 (TodolistPPC) 中的一些类。 引擎命名空间(目前)只包含一个类。 主任务类 ( |
![]() |
UI 以 是的,一个空的 TabControl。它在启动时为空,因为没有加载任何待办事项列表。当创建或打开一个待办事项列表时,会创建一个新的
|
![]() |
这个项目包含一些我在所有项目中使用的类。 它有一个
|
关注点
我发现最令人惊讶的是,Mono 的 WinForms 实现是如此完整,以至于我可以使用 icSharpCode 的 SharpDevelop 来创建应用程序。这是一个不错的 IDE,能够使用它允许我使用其 Windows 窗体设计器和调试器来编写应用程序。
然后,我可以(经过一些小的调整)使用 nant 和 mono(我已将其添加到 SharpDevelop 的工具菜单中)编译应用程序,将可执行文件复制到我的 eee PC 上,它就能“正常工作”。
为了在我的 eee PC 上运行,我需要对代码进行的一些调整是:
Mono 1.2.2.1(我在我的 eeePc 上运行的版本)不支持 StatusBar.Name 属性。我必须将它们注释掉。
我还必须将 MainMenu 的构造从this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components);
更改为this.mainMenu1 = new System.Windows.Forms.MainMenu();
因为 mono 1.2.2.1 会抛出缺少方法异常。
可惜的是,每次我打开 WinForms 设计器时,SharpDevelop 都会自动将这些代码重新添加进去,所以我必须不断地删除它们。
这是我为在我的 eeePc 的 Mono 上运行而必须做的仅有的两个更改。如果我能在 eee 上安装 mono 1.2.6,那么我就不必更改这两项,因为当我在 Windows 机器上使用 mono 1.2.6 运行应用程序时,这两项将保持不变。
已知问题
- 详细信息标签中需要显示更多内容。
- 我想添加一些嵌入式字体。
历史
- 1.0.0 (alpha) (2007 年 12 月 20 日)
- 移植到 mono 后的第一个公开版本。
这还没有准备好实际使用,但对于人们查看他们的待办事项列表可能很有用。
- 移植到 mono 后的第一个公开版本。
- 1.0.1 (alpha) (2008 年 1 月 5 日)
- 添加了保存待办事项列表功能(但尚未测试重新加载它们)。
- 1.1.0 (beta) (2008 年 1 月 20 日)
- 添加了在应用程序启动时重新加载已打开的待办事项列表的功能。