IFM, short for Interface Managent System, is a library that provides dockable window support for your application: The user can move around windows as they see fit to create the user interface layout that they prefer.
IFM is gui-toolkit agnostic, so you can use it in your application regardless of what platform you are on or what gui-toolkit you are using. If your toolkit is not currently supported, adding support for it is easy and simply requires you to implement the interface that IFM uses to interact with the gui-toolkit.
IFM currently has an implementation for the following gui-toolkits
IFM originally started life as a window docking library written specifically for the wxWidgets crossplatform gui toolkit. That project has matured and currently exists as wxIFM 1.0.5. IFM is the rebirth of the wxIFM project, with new goals and a new approach.