Short term: * Implement basic GUI functionality. * Right clicking a tree entry should pop up a menu of the edit commands. Should not collapse the tree. * The "view" window should have a checkbox that turns of writeability. * Preferences window that saves to an rc file. * Auto-save delay. * KB filename. * Initial window size. * Items are default readable/write-able. * Trees are default expanded/collapsed/as they were when the program last shutdown. New tree items are default expanded/collapsed. * New tree command. * 256 character ceiling on text entry boxes. * Tree movement via arrow keys? * Okay/Cancel buttons don't properly. * Scrollbars should appear initially, if needed. Additionally, modifying a tree_item that will modify the scrollbars should redraw the scollbars. * Scrolled window policy AUTOMATIC * Clean up the "view" dialog okay button code. * Filenames without directories should default to the working directory. * Macros to handle tree_item creation. * Text boundary and tree depth checking should be examined more carefully. * Saving only when a change has been made (with a little indicator of such fact in the status bar). * Quitting without saving. * User with multiple windows open should not be able to shoot himself in the foot if one operation clobbers another (volatile variables?). * Should use g_string, but it looks so hideous! Mid term: * GNOME support. * Conform to GNOME style: http://www.gnome.org/devel/sg/ * Undo support. * Editing functions: Cut, copy, paste, move. * Better documentation. Explain where the name comes from. * Auto-saving every few minutes * XML datafiles. * Yacc input file reading. * Strange filenames (e.g. including newlines). * configure.in to support all used functions, GLIB, etc.. * Status bar, yellow mouse-over popups with first few words of item descriptions and brief descriptions of functionality. * Initial window should resize to be larger if there is more data. * Verbose: Shows summary of data within tree Long term: * More interesting interface features (search) and tree features (merge) * A "mind map" like that of Cheops (http://www.marko.net/cheops/). * Perish the thought, extend the core functionality. * Different file formats (besides text-file). * SQL support. * Internationalization.