2002-07-31 Emil Brink Things left to do in gentoo (hey, it rhymes!) 0. INTRODUCTION This little file lists things that I have planned for future versions of gentoo. Please note that gentoo is free software, developed in my spare time, and distributed free of charge. Therefore, please don't take the things mentioned in here as promises: I might implement all of these, or I might implement none of them. Also, things are likely to be added/removed from this list as time passes by and I think things through more. The purpose of this list is to allow users of gentoo a way of knowing what to expect from the program, not to generate mail of the form "when will feature X be implemented?". Please respect this. :) 1. IDEAS Here are the ideas, presented in one subsection each. Enjoy! 1.1 Virtualize the File Access I have an initial implementation of a file system abstraction layer, which allows neaty stuff like viewing the contents of an archive as a directory, or using gentoo to get and put files on an FTP site. The code I've written is based on a URL-like access scheme, where individual access-schemes (ftp, tgz etc) cause plug-ins to be dynamically loaded to handle the access. Integrating such a system with gentoo is quite a big task though, and I've been putting it off for almost a year now... I'm also afraid that implementing virtualized file access will slow the program down for local accesses. Further, I think some commands might need to be rewritten, and have some "intelligence" added that makes them avoid running on certain access schemes (doing a GetSize on a remote FTP site might take a while and be difficult to abort, for example). On second (or third) thought, it seems like a waste of work to re-invent a virtual file system layer. I briefly looked at the one used in GNOME Midnight Commander, but had problems understanding it. :) That typically triggers my "rewrite it!"- instincts, but I suppressed them. 1.2 Write a Menu Editor The buttons used in the button bank below the panes support individual pop-up menus; but there is currently no way of defining and attaching menus to them. Writing a fully-fledged menu editor is a lot of work, and I'm close to thinking of it as duplicated effort, since a menu editor exists in e.g. Glade already. Having a menu editor would allow users to attach their own menus to every command button. Seldom used commands could be moved from a button of their own to a related button's menu, thus saving valuable screen real estate in the button bank. The menu that is typically bound to the right mouse button in the panes would of course be editable as well, and the MenuPopup command would be extended to take the name of the menu to show as an argument. The latter would allow things like shift-RMB to pop up a different menu in the panes... UPDATE: As of gentoo 0.11.16, there actually is some general code for menu management built into gentoo (it's in the "menus.c" file). No editor has yet been designed, though... I find I have conceptual problems with de- ciding on just what a menu really *is*. Weird, huh? 1.3 Generalize Buttons The command buttons displayed under the panes are very general internally, where they are represented as a specific "sheet" of buttons. I plan to add ways to add and delete button sheets, and also lay out the sheets in the window. The layout interface is what's currently holding this off. 1.4 Drag and Drop This is perhaps the #1 requested feature, and it's still not there. This is because of several things. One is that I'm not at all sure how it should work. Should gentoo support DnD only internally, or also to/from the external environment? In that case, do I need to write specific code for the various kinds of environments in use? I hope not... Furthermore, there's the practical problem of how to trigger a drag action. Clicking and dragging is already in use in gentoo to select files, and I really want to keep that. One idea is to use "horizontal" drags to trigger DnD, leaving the vertical ones for selection. Unfortunately, my investigations show that GTK+ won't support that. Next idea, please. Another scary thing with DnD is semantics. What should happen if a set of files is dragged from one pane and dropped in the other? Should the files be copied, copied as, moved, moved as, symlinked, or what? What if you drop stuff on a button?