Here is the test case:
// bug.icc
option ProjectOptions = gen(rtti, yes)
{
option link(linkwithmultithreadlib), link(linkwithsharedlib),
incl(searchpath, "."), define("_X86_"),
lang(nokeyword, "bool"), lang(nokeyword, "true"),
lang(nokeyword, "false"), define("IC_LANG_BOOL", 0),
define("IVB_IMPORT", "_Import"), link(subsystem, "windows", 4,
0)
{
target "bug.exe"
{
source type(cpp) "bug.cpp"
}
}
}
// bug.cpp
#include <iframe.hpp>
#include <icnrctl.hpp>
#include <icnrcol.hpp>
#include <idmhndlr.hpp>
class ContainerFrame : public IFrameWindow
{
public:
ContainerFrame () :
IFrameWindow ("Container Frame"),
#ifdef __OS2__
Cnr (new IContainerControl (1000, this, this)),
#else
Cnr (new IContainerControl (1000, this, this, IRectangle (),
IContainerControl::classDefaultStyle |
IContainerControl::pmCompatible)),
#endif
Col (new IContainerColumn (IContainerColumn::isIconViewText))
{
Cnr->addColumn (Col);
Col->setHeadingText("Name");
IString objName ("Number ");
Cnr->setDeleteObjectsOnClose ();
for (int i = 0; i < 10; ++i)
Cnr->addObject (new IContainerObject (objName + IString (i)));
Cnr->setExtendedSelection ();
IDMHandler::enableDragFrom (Cnr);
Cnr->showDetailsView ();
setClient (Cnr);
show ();
Cnr->show ();
Cnr->setFocus();
}
virtual ~ContainerFrame ()
{
delete Cnr;
}
private:
IContainerControl *Cnr;
IContainerColumn *Col;
};
int main (int argc, char *argv[])
{
ContainerFrame frame;
IApplication::current().run();
}
// bug.cpp
class ContainerFrame : public IFrameWindow
{
public:
ContainerFrame (bool isSource) :
IFrameWindow (isSource ? "Source" : "Target"),
#ifdef __OS2__
Cnr (new IContainerControl (1000, this, this)),
#else
Cnr (new IContainerControl (1000, this, this, IRectangle (),
IContainerControl::classDefaultStyle |
IContainerControl::pmCompatible)),
#endif
Col (new IContainerColumn (IContainerColumn::isIconViewText))
{
Cnr->addColumn (Col);
Col->setHeadingText("Name");
IString objName ("Number ");
Cnr->setDeleteObjectsOnClose ();
if (isSource)
{
for (int i = 0; i < 10; ++i)
Cnr->addObject (new IContainerObject (objName + IString
(i)));
Cnr->setExtendedSelection ();
IDMHandler::enableDragFrom (Cnr);
}
else
IDMHandler::enableDropOn (Cnr);
Cnr->showDetailsView ();
setClient (Cnr);
show ();
Cnr->show ();
Cnr->setFocus();
}
virtual ~ContainerFrame ()
{
delete Cnr;
}
private:
IContainerControl *Cnr;
IContainerColumn *Col;
};
int main (int argc, char *argv[])
{
ContainerFrame src (true);
ContainerFrame target (false);
IApplication::current().run();
}