@kas1e
What I'm doing is getting list of opened drawers from WB and then comparing directory paths last part to a window title. That method is not errorless, of course. Volumes have more stuff on the titlebar than just the name.
struct List *drwlist=NULL;
IWorkbench->WorkbenchControl(0,WBCTRLA_GetOpenDrawerList,&drwlist,TAG_DONE);
// browser through the list
IWorkbench->WorkbenchControl(0,WBCTRLA_FreeOpenDrawerList,drwlist,TAG_DONE);
You can use AddGadget() to add more gadgets to a window.
PS. I'm almost tempted to volunteer to Hyperion to improve the WB itself.