void Universe::MenuGUIInit() { menuEventReceiver = new MenuEventReceiver(); render->device->setEventReceiver((IEventReceiver*)menuEventReceiver); guienv->addEditBox(L"admin", rect< s32 >(render->screenWidth / 2 - 64, render->screenHeight / 2 - 100, render->screenWidth / 2 + 64, render->screenHeight / 2 - 68), true, NULL, LoginEditBox); IGUIEditBox* eb = guienv->addEditBox(L"1234", rect< s32 >(render->screenWidth / 2 - 64, render->screenHeight / 2 - 60, render->screenWidth / 2 + 64, render->screenHeight / 2 - 28), true, NULL, PasswordEditBox); eb->setPasswordBox(true); guienv->addButton(rect< s32 >(render->screenWidth / 2 - 64, render->screenHeight / 2 - 20, render->screenWidth / 2 - 4, render->screenHeight / 2 + 12), NULL, LogInButton, L"Log in", L"Log in"); guienv->addButton(rect< s32 >(render->screenWidth / 2 + 4, render->screenHeight / 2 - 20, render->screenWidth / 2 + 64, render->screenHeight / 2 + 12), NULL, RegisterButton, L"Register", L"Register"); }
void TextBoxWidget::setPasswordBox(bool passwordBox, wchar_t passwordChar) { IGUIEditBox* textCtrl = Widget::getIrrlichtElement<IGUIEditBox>(); assert(textCtrl != NULL); textCtrl->setPasswordBox(passwordBox, passwordChar); }
int Luna::lobby() { // #ifndef NDEBUG // falsify the quit flags events.quit = false; events.login = false; // Flush the gui factory guienv->clear(); smgr->clear(); device->setEventReceiver ( &events ); smgr->loadScene ( "./data/models/maps/lobby.irr" ); //smgr->addCameraSceneNode(0, vector3df(20,100, 0), vector3df(0,100,0), -1); //smgr->addCameraSceneNodeFPS(); ITexture *loginWindow = driver->getTexture ( "./data/textures/lobby/loginBg.png" ); int buttonPosX = ( resolution[0] / 2 ) - 60; int buttonPosY = ( resolution[1] / 100 ) * 80; IGUIEditBox *uname = guienv->addEditBox ( L"", rect<s32> ( buttonPosX - 30, buttonPosY - 100, buttonPosX + 150, buttonPosY - 80 ), true, 0, -1 ); IGUIEditBox *pword = guienv->addEditBox ( L"", rect<s32> ( buttonPosX - 30, buttonPosY - 60, buttonPosX + 150, buttonPosY - 40 ), true, 0, -1 ); pword->setPasswordBox ( true, L'*' ); // Load the button textures ITexture *menuButtonNormal = driver->getTexture ( "./data/textures/lobby/lobbyButtonNormal.png" ); ITexture *menuButtonDepressed = driver->getTexture ( "./data/textures/lobby/lobbyButtonDepressed.png" ); IGUIButton *exitButton = guienv->addButton ( rect<s32> ( buttonPosX, buttonPosY + 50, buttonPosX + 120, buttonPosY + 70 ), 0, 101, L"Exit" ); exitButton->setImage ( menuButtonNormal ); exitButton->setPressedImage ( menuButtonDepressed ); IGUIButton *loginButton = guienv->addButton ( rect<s32> ( buttonPosX, buttonPosY + 0, buttonPosX + 120, buttonPosY + 20 ), 0, 102, L"Login" ); loginButton->setImage ( menuButtonNormal ); loginButton->setPressedImage ( menuButtonDepressed ); IGUIButton *optionsButton = guienv->addButton ( rect<s32> ( buttonPosX, buttonPosY + 25, buttonPosX + 120, buttonPosY + 45 ), 0, 103, L"Options" ); optionsButton->setImage ( menuButtonNormal ); optionsButton->setPressedImage ( menuButtonDepressed ); // Developers login box #ifdef NDEBUG IGUIButton *devButton = guienv->addButton ( rect<s32> ( buttonPosX, buttonPosY - 25, buttonPosX + 120, buttonPosY-10 ), 0, 901, L"Dev Login" ); devButton->setImage ( menuButtonNormal ); devButton->setPressedImage ( menuButtonDepressed ); #endif // Do the text guienv->addStaticText ( L"Account Login.", rect<s32> ( buttonPosX - 60, buttonPosY - 148, buttonPosX + 120, buttonPosY - 138 ) ); guienv->addStaticText ( L"Username:"******"Password:"******"returned -1\n"); events.quit=true; // break; return 1; } else if ( ret == 1 ) { printf ("returned 1\n"); wrongPWMessage = guienv->addStaticText ( L"Incorrect username or password.", rect<s32> ( 0, 0, 130, 10 ) ); wrongPWOK = guienv->addButton ( rect<s32> ( buttonPosX, resolution[1] / 2, buttonPosX + 120, ( resolution[1]/2 ) + 20 ), 0, 105, L"Wrong Password" ); wrongPWOK->setImage ( menuButtonNormal ); wrongPWOK->setPressedImage ( menuButtonDepressed ); loginButton->setEnabled ( false ); optionsButton->setEnabled ( false ); exitButton->setEnabled ( false ); uname->setEnabled ( false ); pword->setEnabled ( false ); events.login = false; wrongPassOK = true; } else if ( ret == 0 ) { printf ("returned 0\n"); conMessage = guienv->addStaticText ( L"Could not connect to the server, please see the status page", rect<s32> ( 0, 0, 130, 10 ) ); conOK = guienv->addButton ( rect<s32> ( buttonPosX, resolution[1] / 2, buttonPosX + 120, ( resolution[1]/2 ) + 20 ), 0, 104, L"no server connection" ); conOK->setImage ( menuButtonNormal ); conOK->setPressedImage ( menuButtonDepressed ); loginButton->setEnabled ( false ); optionsButton->setEnabled ( false ); exitButton->setEnabled ( false ); uname->setEnabled ( false ); pword->setEnabled ( false ); events.login = false; //conRefOK = true; } } driver->beginScene ( true, true, SColor ( 0, 0, 0, 0 ) ); smgr->drawAll(); driver->draw2DImage ( loginWindow, core::position2d<s32> ( buttonPosX - 65, buttonPosY - 150 ) ); guienv->drawAll(); driver->endScene(); device->sleep ( 10, true ); } return 0; // #endif }