Source
Example screen:

Code: Select all
#include "irr/CImageListBox.h"
class events : public irr::IEventReceiver
{
public:
events(CImageListBox* box, irr::video::IVideoDriver* d)
{
driver = d;
Box = box;
Box->grab();
}
~events(void)
{
Box->remove();
Box->drop();
Box = NULL;
}
bool OnEvent(const irr::SEvent& event)
{
if (event.EventType == irr::EET_MOUSE_INPUT_EVENT)
{
if (event.MouseInput.Event == irr::EMIE_RMOUSE_PRESSED_DOWN)
{
Box->addItem(driver->getTexture("../../media/001shot.jpg"));
return true;
}
}
}
CImageListBox* Box;
irr::video::IVideoDriver* driver;
};
int main(int argc, char* argv[])
{
irr::IrrlichtDevice *device = irr::createDevice( irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(640, 480), 16,
false, false, false, 0);
irr::video::IVideoDriver* driver = device->getVideoDriver();
irr::scene::ISceneManager* smgr = device->getSceneManager();
irr::gui::IGUIEnvironment* gui = device->getGUIEnvironment();
CImageListBox* Box = new CImageListBox(irr::core::rect<irr::s32>(0,0,300,driver->getScreenSize().Height), gui, gui->getRootGUIElement());
Box->setImageSize(150);
Box->setImageSpacing(15);
Box->addItem(driver->getTexture("../../media/001shot.jpg"));
Box->addItem(driver->getTexture("../../media/002shot.jpg"));
Box->addItem(driver->getTexture("../../media/003shot.jpg"));
Box->addItem(driver->getTexture("../../media/004shot.jpg"));
Box->addItem(driver->getTexture("../../media/005shot.jpg"));
Box->addItem(driver->getTexture("../../media/006shot.jpg"));
Box->addItem(driver->getTexture("../../media/007shot.jpg"));
Box->addItem(driver->getTexture("../../media/008shot.jpg"));
Box->addItem(driver->getTexture("../../media/009shot.jpg"));
Box->addItem(driver->getTexture("../../media/010shot.jpg"));
Box->addItem(driver->getTexture("../../media/011shot.jpg"));
Box->addItem(driver->getTexture("../../media/012shot.jpg"));
Box->addItem(driver->getTexture("../../media/013shot.jpg"));
Box->addItem(driver->getTexture("../../media/014shot.jpg"));
Box->addItem(driver->getTexture("../../media/015shot.jpg"));
Box->addItem(driver->getTexture("../../media/016shot.jpg"));
Box->addItem(driver->getTexture("../../media/017shot.jpg"));
Box->addItem(driver->getTexture("../../media/018shot.jpg"));
Box->addItem(driver->getTexture("../../media/019shot.jpg"));
Box->addItem(driver->getTexture("../../media/020shot.jpg"));
Box->addItem(driver->getTexture("../../media/021shot.jpg"));
Box->addItem(driver->getTexture("../../media/022shot.jpg"));
Box->addItem(driver->getTexture("../../media/023shot.jpg"));
events e(Box, driver);
Box->drop();
device->setEventReceiver(&e);
while (device->run())
{
driver->beginScene(true, true, irr::video::SColor(255,100,101,140));
smgr->drawAll();
gui->drawAll();
driver->endScene();
}
return 0;
}