One of the things I think I'm going to tackle before WoW:Cataclysm comes out this fall is to write an add-on for World of Warcraft. Specifically, one that will let me jot down notes and make checklists so that I can keep track of things. Prior to this I was using Torta, but that's fallen by the wayside and hasn't been updated in a long time. And there's nothing else out there that I've found which does the job.

For the moment, I've settled on "wTaskNote" as the project name. It will end up hosted at Curse.com and developed using the WoWAce.com site. The main reasons that I'm going to use WoWAce are easy publishing to Curse.com and the localization tool.

So far, I've made decent progress for only a day's worth of effort. At this point I've figured out the minimap icon (using LibDBIcon) and have gotten familiar with the Ace3 library. I'm probably not going to use the AceGUI library, because I find the basic design to be a bit too limiting.

My goal for the UI is to pattern it after the current WoW quest journal.



The quest journal does a lot of what I really want to do. A left-hand pane for listing the notes/checklists and a right-hand pane where I can display the content of the note and let the user edit/update it. I really like the large icon in the upper left and will be trying to get something similar in my frame. Altoholic and the Auctioneer add-on both do something like that in theirs. However, the Altholic add-on does their layout in XML, so I'm not sure how much I'll be able to base my code on.







There's still a lot of stuff left to do. I need to figure out how to create the window frame (and keep my sanity) and populate the window with all of the UI elements such as tree-lists, scroll panes, and buttons. I also have to tackle working with the tree-list and how to change the contents of the tree on the fly.

Some of the Ace3 framework will come in very handy (specifically AceConfig and AceDB). Saving and restoring the actual data will be fairly trivial due to AceDB. It's working with the UI and managing all of the callback functions and other little bits of code that is going to be taxing at first.

The whole thing reminds me of when I first started to play EVE Online with its horrendous learning curve.