rendered paste body#include <iostream>#include <guichan.hpp>#include <guichan/irrlicht.hpp>#include <irrlicht.h>using namespace std;using namespace irr;using namespace gcn;IrrlichtDevice *mDevice;Gui *mGui;IrrlichtInput *mInput;IrrlichtGraphics *mGraphics;IrrlichtImageLoader *mImageLoader;Container *mTop;Font *mFont;Label *mLabel1;Label *mLabel2;TextField *mUsername;TextField *mPassword;Button *mLogin;class EventReceiver : public IEventReceiver{ public: virtual bool OnEvent (const SEvent &event) { mInput->pushInput (event); return false; }};class LoginLabelListener : public MouseListener{ public: virtual void mouseClicked (MouseEvent &event) { mUsername->setText(""); mPassword->setText(""); mUsername->setCaretPosition(0); mPassword->setCaretPosition(0); }};class LoginButtonMouseListener : public MouseListener{ public: virtual void mouseClicked (MouseEvent &event) { if (!mUsername->getText().empty() && !mPassword->getText().empty()) { cout << "attempting to login '" << mUsername->getText() << "' with password '" << mPassword->getText() << "'" << endl; } }};LoginButtonMouseListener mLoginButtonMouseListener;LoginLabelListener mLoginLabelListener;int main (int argc, char *argv[]){ mDevice = createDevice (video::EDT_OPENGL); if (!mDevice) return 1; EventReceiver mReceiver; mDevice->setEventReceiver (&mReceiver); mImageLoader = new IrrlichtImageLoader (mDevice->getVideoDriver()); Image::setImageLoader (mImageLoader); mGraphics = new IrrlichtGraphics (mDevice->getVideoDriver()); mInput = new IrrlichtInput (mDevice); mGui = new Gui (); mGui->setGraphics (mGraphics); mGui->setInput (mInput); mTop = new Container(); mTop->setDimension (Rectangle (0, 0, 640, 480)); mTop->setOpaque (false); mGui->setTop (mTop); mFont = new ImageFont ("techyfontwhite.png", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?-+/():;%&`'*#=[]\""); gcn::Widget::setGlobalFont (mFont); mUsername = new TextField ("Username"); mUsername->setPosition (10, 55); mUsername->addMouseListener (&mLoginLabelListener); mPassword = new TextField ("Password"); mPassword->setPosition (10, 85); mPassword->addMouseListener (&mLoginLabelListener); mLogin = new Button("Login"); mLogin->setPosition (10, 115); mLogin->addMouseListener (&mLoginButtonMouseListener); mTop->add (mUsername); mTop->add (mPassword); mTop->add (mLogin); mLabel1 = new Label ("Paragon"); mLabel1->setPosition (10, 10); mLabel2 = new Label (); mLabel2->setPosition (10, 35); mTop->add (mLabel1); mTop->add (mLabel2); while (mDevice->run()) { mGui->logic(); mDevice->getVideoDriver()->beginScene (true, true, video::SColor (255, 0, 0, 0)); mDevice->getSceneManager()->drawAll (); mGui->draw(); mDevice->getVideoDriver()->endScene(); } delete mDevice; delete mGui; delete mInput; delete mGraphics; delete mImageLoader; delete mTop; delete mFont; delete mLabel1; delete mLabel2; delete mUsername; delete mPassword; delete mLogin; return 0;}