1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Copyright (C) 2008-2012 Colin MacDonald
- // No rights reserved: this software is in the public domain.
- #include "testUtils.h"
- using namespace irr;
- using namespace core;
- using namespace gui;
- // Tests that disabled GUI menu items don't cause their submenu to appear when hovered over.
- /**
- http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=178436#178436
- */
- bool guiDisabledMenu(void)
- {
- IrrlichtDevice *device = createDevice( video::EDT_BURNINGSVIDEO,
- dimension2d<u32>(160, 40), 32);
- assert_log(device);
- if (!device)
- return false;
- video::IVideoDriver* driver = device->getVideoDriver();
- gui::IGUIEnvironment* env = device->getGUIEnvironment();
- gui::IGUIContextMenu* menu = env->addMenu();
- menu->addItem(L"Menu", -1, true, true);
- gui::IGUIContextMenu* subMenu = menu->getSubMenu(0);
- subMenu->addItem(L"Submenu 1", -1, false, true);
- gui::IGUIContextMenu* subSubMenu = subMenu->getSubMenu(0);
- subSubMenu->addItem(L"Final item");
- SEvent event;
- event.EventType = EET_MOUSE_INPUT_EVENT;
- event.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN;
- event.MouseInput.X = menu->getAbsolutePosition().UpperLeftCorner.X + 1;
- event.MouseInput.Y = menu->getAbsolutePosition().UpperLeftCorner.Y + 1;
- (void)menu->OnEvent(event);
- // Hovering over the disabled submenu shouldn't cause the "Final item" to appear.
- event.MouseInput.Event = EMIE_MOUSE_MOVED;
- event.MouseInput.X = subMenu->getAbsolutePosition().UpperLeftCorner.X + 40;
- event.MouseInput.Y = subMenu->getAbsolutePosition().UpperLeftCorner.Y + 10;
- (void)menu->OnEvent(event);
- device->run();
- driver->beginScene(video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(150,50,50,50));
- env->drawAll();
- driver->endScene();
- bool result = takeScreenshotAndCompareAgainstReference(driver, "-guiDisabledMenu.png", 98.77f);
- device->closeDevice();
- device->run();
- device->drop();
- return result;
- }
|