Recently, somebody found IFM 2.0 on sourceforge.net and contacted me about doing some work for it. They put a bunch of work into it and helped move the project forward by adding tab functionality (and started on a few other things). Their efforts brought me back to the project, and now I'd like to share what has been done with the general public. Who knows, maybe I'll even recruit some more people who would be interested in helping move the project even further along.
In case you have no idea what wxIFM is, it is a project I was working on about 3 years ago. It is a docking library, just like wxAUI is today, and just like wxFL (wxFrameLayout) was in the bad old days. There are still some of the old threads for it kicking around. Search for wxIFM if you're bored to learn more about it's history.
Today, wxIFM 2.0 is close to the point where I would consider doing a real release of it for general consumption. I currently consider the project to be in an alpha state, as it is still lacking one important feature blocking making a release (that happens to be resizable docked windows). Don't be scared by the alpha designation though. It does not imply that its a buggy pile of you-know-what, it only means that it is not yet feature complete. Generally, alpha releases have missing features and probably have some bugs, where as betas are feature complete but probably still have some bugs.
The features currently provided by wxIFM 2.0 are
- Dynamically saving and loading layouts. This lets you provide multiple interfaces, as seen in elicpse's different UI layouts when debugging vs coding. You can also save the current layout (which includes any customizations made by the user) to load later. There is no limit on the number of layouts you have (or save).
- VS2005 style docking.
- Tabbed docking. You can dock things as tabs, then dock them somewhere else by dragging the tab.
- Reordering tabs. Currently, to change the order of tabs, you must dock the tabs back into the container (which places them at the end of the tab list). I want to be able to reorder the tabs by dragging them in addition to being able to dock the tabs somewhere else.
- Resizing docked windows.
- Serializing layouts to disk and from disk so you can remember a user's customizations for future instances of the program.
Note that there is no download available for IFM 2.0 at this time. You'll have to grab the source from SVN. The documentation is currently online and can be found via the pages linked earlier.
~SnakeChomp
p.s. I almost forgot. IFM 2.0 is currently developed against wxWidgets 2.8.x and may not work against an older version. Furthermore, I haven't tried it on GTK recently, so it may not there either.