1 // Copyright (C) 2008-2012 Colin MacDonald
\r
2 // No rights reserved: this software is in the public domain.
\r
4 #include "testUtils.h"
\r
7 using namespace core;
\r
10 // Tests that disabled GUI menu items don't cause their submenu to appear when hovered over.
\r
12 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=178436#178436
\r
15 bool guiDisabledMenu(void)
\r
17 IrrlichtDevice *device = createDevice( video::EDT_BURNINGSVIDEO,
\r
18 dimension2d<u32>(160, 40), 32);
\r
23 video::IVideoDriver* driver = device->getVideoDriver();
\r
24 gui::IGUIEnvironment* env = device->getGUIEnvironment();
\r
26 gui::IGUIContextMenu* menu = env->addMenu();
\r
27 menu->addItem(L"Menu", -1, true, true);
\r
28 gui::IGUIContextMenu* subMenu = menu->getSubMenu(0);
\r
29 subMenu->addItem(L"Submenu 1", -1, false, true);
\r
30 gui::IGUIContextMenu* subSubMenu = subMenu->getSubMenu(0);
\r
31 subSubMenu->addItem(L"Final item");
\r
34 event.EventType = EET_MOUSE_INPUT_EVENT;
\r
35 event.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN;
\r
36 event.MouseInput.X = menu->getAbsolutePosition().UpperLeftCorner.X + 1;
\r
37 event.MouseInput.Y = menu->getAbsolutePosition().UpperLeftCorner.Y + 1;
\r
38 (void)menu->OnEvent(event);
\r
40 // Hovering over the disabled submenu shouldn't cause the "Final item" to appear.
\r
41 event.MouseInput.Event = EMIE_MOUSE_MOVED;
\r
42 event.MouseInput.X = subMenu->getAbsolutePosition().UpperLeftCorner.X + 40;
\r
43 event.MouseInput.Y = subMenu->getAbsolutePosition().UpperLeftCorner.Y + 10;
\r
44 (void)menu->OnEvent(event);
\r
47 driver->beginScene(video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(150,50,50,50));
\r
51 bool result = takeScreenshotAndCompareAgainstReference(driver, "-guiDisabledMenu.png", 98.77f);
\r
52 device->closeDevice();
\r