CFavouritesAddByIP::CFavouritesAddByIP ( void ) { CGUI *pManager = g_pCore->GetGUI (); CMainMenu *pMainMenu = CLocalGUI::GetSingleton ().GetMainMenu (); // Create the window m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "Add to favourites" ) ); m_pWindow->SetCloseButtonEnabled ( false ); CVector2D resolution = CCore::GetSingleton().GetGUI()->GetResolution(); m_pWindow->SetPosition ( CVector2D ( resolution.fX / 2 - 280.0f / 2, resolution.fY / 2 - 90.0f / 2 ), false ); m_pWindow->SetSize ( CVector2D ( 280.0f, 90.0f ), false ); m_pWindow->SetSizingEnabled ( false ); m_pWindow->SetAlwaysOnTop ( true ); // Create the controls float fPosX = 0.0f; float fButtonWidth = (280.0f - 30.0f) / 2; // Host label m_pLabelHost = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Host:" ) ); m_pLabelHost->SetPosition ( CVector2D ( fPosX + 12.0f, 28.0f ), false ); m_pLabelHost->AutoSize ( "Host:" ); fPosX += 12.0f + m_pLabelHost->GetSize ().fX; // Host edit m_pEditHost = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditHost->SetPosition ( CVector2D ( fPosX + 5.0f, 24.0f ), false ); m_pEditHost->SetSize ( CVector2D ( 154.0f, 24.0f ), false ); m_pEditHost->SetMaxLength ( 128 ); // Just to prevent entering a huge hostname size.. no-one has a hostname over 128 chars i believe fPosX += 5.0f + 154.0f; // Port label m_pLabelPort = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, ":" ) ); m_pLabelPort->SetPosition ( CVector2D ( fPosX + 3.0f, 28.0f ), false ); m_pLabelPort->AutoSize ( ":" ); fPosX += 3.0f + m_pLabelPort->GetSize ().fX; // Port edit m_pEditPort = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditPort->SetPosition ( CVector2D ( fPosX + 3.0f, 24.0f ), false ); m_pEditPort->SetSize ( CVector2D ( 59.0f, 24.0f ), false ); m_pEditPort->SetMaxLength ( 5 ); fPosX += 3.0f + 59.0f; // Add button m_pButtonAdd = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "Add" ) ); m_pButtonAdd->SetPosition ( CVector2D ( 12.0f, 60.0f ), false ); m_pButtonAdd->SetSize ( CVector2D ( fButtonWidth, 20.0f ), false ); // Cancel button m_pButtonBack = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "Back" ) ); m_pButtonBack->SetPosition ( CVector2D ( 12.0f + fButtonWidth + 6.0f, 60.0f ), false ); m_pButtonBack->SetSize ( CVector2D ( fButtonWidth, 20.0f ), false ); // Register button events m_pButtonBack->SetClickHandler ( GUI_CALLBACK ( &CFavouritesAddByIP::OnButtonBackClick, this ) ); }
void CLocalGUI::CreateWindows ( void ) { CFilePathTranslator FileTranslator; string WorkingDirectory; char szCurDir [ 1024 ]; // Set the current directory. FileTranslator.SetCurrentWorkingDirectory ( "MTA" ); FileTranslator.GetCurrentWorkingDirectory ( WorkingDirectory ); GetCurrentDirectory ( sizeof ( szCurDir ), szCurDir ); SetCurrentDirectory ( WorkingDirectory.c_str ( ) ); CGUI* pGUI = CCore::GetSingleton ().GetGUI (); // Create chatbox m_pChat = new CChat ( pGUI, CVector2D ( 0.0125f, 0.015f ) ); m_pChat->SetVisible ( false ); // Create the debug view m_pDebugView = new CDebugView ( pGUI, CVector2D ( 0.23f, 0.785f ) ); m_pDebugView->SetVisible ( false ); // Create the overlayed version labels CVector2D ScreenSize = pGUI->GetResolution (); m_pLabelVersionTag = reinterpret_cast < CGUILabel* > ( pGUI->CreateLabel ( "MTA:SA " MTA_DM_BUILDTAG_SHORT ) ); m_pLabelVersionTag->SetSize ( CVector2D ( m_pLabelVersionTag->GetTextExtent() + 5, 18 ) ); m_pLabelVersionTag->SetPosition ( CVector2D ( ScreenSize.fX - m_pLabelVersionTag->GetTextExtent() - 5, ScreenSize.fY - 15 ) ); m_pLabelVersionTag->SetAlpha ( 0.5f ); m_pLabelVersionTag->SetTextColor ( 255, 255, 255 ); m_pLabelVersionTag->SetZOrderingEnabled ( false ); m_pLabelVersionTag->MoveToBack (); m_pLabelVersionTag->SetVisible ( false ); // Create mainmenu m_pMainMenu = new CMainMenu ( pGUI ); m_pMainMenu->SetVisible ( false ); // Create console m_pConsole = new CConsole ( pGUI ); m_pConsole->SetVisible ( false ); // Create community registration window m_CommunityRegistration.CreateWindows (); m_CommunityRegistration.SetVisible ( false ); // Return the old current dir. SetCurrentDirectory ( szCurDir ); }
void CLocalGUI::CreateWindows ( bool bGameIsAlreadyLoaded ) { CGUI* pGUI = CCore::GetSingleton ().GetGUI (); // Create chatbox m_pChat = new CChat ( pGUI, CVector2D ( 0.0125f, 0.015f ) ); m_pChat->SetVisible ( false ); // Create the debug view m_pDebugView = new CDebugView ( pGUI, CVector2D ( 0.23f, 0.785f ) ); m_pDebugView->SetVisible ( false ); // Create the overlayed version labels CVector2D ScreenSize = pGUI->GetResolution (); SString strText = "MTA:SA " MTA_DM_BUILDTAG_SHORT; if ( _NETCODE_VERSION_BRANCH_ID != 0x04 ) strText += SString( " (%X)", _NETCODE_VERSION_BRANCH_ID ); m_pLabelVersionTag = reinterpret_cast < CGUILabel* > ( pGUI->CreateLabel ( strText ) ); m_pLabelVersionTag->SetSize ( CVector2D ( m_pLabelVersionTag->GetTextExtent() + 5, 18 ) ); m_pLabelVersionTag->SetPosition ( CVector2D ( ScreenSize.fX - m_pLabelVersionTag->GetTextExtent() - 5, ScreenSize.fY - 15 ) ); m_pLabelVersionTag->SetAlpha ( 0.5f ); m_pLabelVersionTag->SetTextColor ( 255, 255, 255 ); m_pLabelVersionTag->SetZOrderingEnabled ( false ); m_pLabelVersionTag->MoveToBack (); m_pLabelVersionTag->SetVisible ( false ); // Create mainmenu m_pMainMenu = new CMainMenu ( pGUI ); m_pMainMenu->SetVisible ( bGameIsAlreadyLoaded, !bGameIsAlreadyLoaded, false ); // Create console m_pConsole = new CConsole ( pGUI ); m_pConsole->SetVisible ( false ); // Create community registration window m_CommunityRegistration.CreateWindows (); m_CommunityRegistration.SetVisible ( false ); // Create our news headlines if we're already ingame if ( bGameIsAlreadyLoaded ) m_pMainMenu->GetNewsBrowser()->CreateHeadlines(); }
CQuestionBox::CQuestionBox ( void ) { m_pWindow = NULL; m_pMessage = NULL; m_uiLastButton = -1; m_Callback = NULL; m_CallbackParameter = 0; m_uiActiveButtons = 0; m_uiActiveEditboxes = 0; CGUI *pManager = g_pCore->GetGUI (); // Create the window m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "" ) ); m_pWindow->SetCloseButtonEnabled ( false ); m_pWindow->SetVisible ( false ); m_pWindow->SetSizingEnabled ( false ); m_pWindow->SetAlwaysOnTop ( true ); // Message label m_pMessage = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "" ) ); }
CCredits::CCredits(void) { CGUI* pManager = g_pCore->GetGUI(); // Define our credits string m_strCredits += "== Multi Theft Auto: San Andreas v" MTA_DM_BUILDTAG_SHORT " ==\n" "\n"; m_strCredits += _("Programming"); m_strCredits += "\n\n" "Alberto \"ryden\" Alonso\n" "Marcus \"mabako\" Bauer\n" "Hendrik \"arc_\" van den Berge\n" "Stanislav \"lil_Toady\" Bobrov\n" "Dan \"Talidan\" Chowdhury\n" "Chris \"ccw\" Cockwanger\n" "Adge \"Jax\" Cutler\n" "Cecill \"ijs\" Etheredge\n" "Sebas \"x86\" Lamers\n" "Raphael \"Mr.Hankey\" Leiteritz\n" "Ed \"eAi\" Lyons\n" "Christian \"ChrML\" Myhre Lundheim\n" "Qais \"qaisjp\" Patankar\n" "Arushan \"aru\" Raj\n" "Frank \"Aim\" Spijkerman\n" "Pascal \"sbx320\" Stücker\n" "Kevin \"Kevuwk\" Whiteside\n" "Richard \"Cazomino05\" Whitlock\n" "Gamesnert\n" "Jusonex\n" "\n" "\n"; m_strCredits += _("Contributors"); m_strCredits += "\n\n" "Danish \"Saml1er\" Khan\n" "Marek \"botder\" Kulik\n" "Arran\n" "Iztas\n" "impulze\n" "JoeBullet\n" "lopezloo\n" "MX_Master\n" "Remp\n" "\n" "\n"; m_strCredits += _("Game Design / Scripting"); m_strCredits += "\n\n" "John \"Johnline\" Borsberry\n" "Paul \"Brophy\" Brophy\n" "Maciej \"MACK\" Cieslak\n" "Jacek \"jhxp\" Halas vel Lagoda\n" "Brad \"Slothman\" Hammond\n" "Norbert \"norby89\" Juhos\n" "Kris \"KWKSND\" Kulchisky\n" "Dustin \"Ransom\" Morren\n" "erorr404\n" "Synecy\n" "Dutchman101\n" "\n" "\n"; if (g_pLocalization->IsLocalized() && !g_pLocalization->GetTranslators().empty()) { m_strCredits += _("Language Localization"); m_strCredits += "\n\n"; m_strCredits += g_pLocalization->GetTranslators(); m_strCredits += "\n\n\n"; } m_strCredits += _("Patch contributors"); m_strCredits += "\n\n" "Lukasz \"W\" Biegaj\n" "Florian \"Flobu\" Busse\n" "Callum \"Callum\" Dawson\n" "Philip \"Fenix\" Farquharson\n" "Robin \"robhol\" Holm\n" "Patrik \"myonlake\" Juvonen\n" "Gabrielius \"Dezash\" Laurinavicius\n" "Adam \"50p\" Telega\n" "Ilya \"Kenix\" Volkov\n" "Gothem\n" "rafalh\n" "Totto8492\n" "CubedDeath\n" "GRascm\n" "NeO_D-Power\n" "Dragon\n" "DirtY_iCE\n" "Zango\n" "lucasc190\n" "samt2497\n" "MCvarial\n" "tvc\n" "Audifire\n" "Kayl\n" "mickdermack\n" "Fabio(GNR)\n" "LarSoWiTsH\n" "dvarnai\n" "Loooop\n" "Lex128\n" "x0rh4x\n" "guix\n" "[GP_A]XetaQuake\n" "asturel\n" "FrankZZ\n" "John_Michael\n" "-ffs-Sniper\n" "W\n" "Fedor Sinev\n" "zneext\n" "ZReC\n" "Pawelo / 4O4\n" "Sergeanur\n" "AleksCore\n" "tederis\n" "CrosRoad95\n" "Bonus1702\n" "Einheit-101\n" "TAPL-93\n" "JR10\n" "PhrozenByte\n" "AboShanab\n" "GTX / Timic3\n" "FileEX\n" "Pirulax\n" "\n" "\n"; m_strCredits += _("Special Thanks"); m_strCredits += "\n\n" "Derek \"slush\" Abdine\n" "Javier \"jbeta\" Beta\n" "Oliver \"Oli\" Brown\n" "Wojciech \"Wojjie\" Hlibowicki\n" "Chris \"Cray\" McArthur\n" "Rob 'Sugar Daddy' Pooley\n" "Hans \"Blokker\" Roes\n" "Kent \"Kent747\" Simon\n" "Matthew \"Towncivilian\" Wolfe\n" "Adamix\n" "Aibo\n" "Pugwipe\n" "The_GTA\n" "Phatlooser\n" "Dwayne 'The 'Woovie' Rock' Johnson\n" "max 'Hobo Pie' Power\n" "diegofkda\n" "Ren712\n" "StifflersMom\n" "\n" "\n"; m_strCredits += _("This software makes use of the following libraries and software:"); m_strCredits += "\n" "RakNet (http://www.jenkinssoftware.com/)\n" "SA Limit adjuster source code (Credits to Sacky)\n" "CEGUI (http://www.cegui.org.uk/)\n" "cURL (http://curl.haxx.se/)\n" "libpcre (http://www.pcre.org/)\n" "Lua (http://www.lua.org/)\n" "SQLite (http://www.sqlite.org/)\n" "libpng (http://www.libpng.org/)\n" "Embedded HTTP Server (http://ehs.fritz-elfert.de/)\n" "zlib (http://zlib.net/)\n" "bzip2 (http://bzip.org/)\n" "UnRAR (http://www.rarlab.com/)\n" "tinygettext (https://github.com/tinygettext/tinygettext/)\n" "PortAudio (http://www.portaudio.com/)\n" "speex (http://www.speex.org/)\n" "CEF (https://bitbucket.org/chromiumembedded/cef/)\n"; // Create our window CVector2D RelativeWindow = CVector2D(fWindowX / pManager->GetResolution().fX, fWindowY / pManager->GetResolution().fY); m_pWindow = reinterpret_cast<CGUIWindow*>(pManager->CreateWnd(NULL, "Multi Theft Auto: San Andreas " MTA_DM_BUILDTAG_SHORT)); m_pWindow->SetCloseButtonEnabled(false); m_pWindow->SetMovable(false); m_pWindow->SetPosition(CVector2D(0.5f - RelativeWindow.fX * 0.5f, 0.5f - RelativeWindow.fY * 0.5f), true); m_pWindow->SetSize(CVector2D(fWindowX, fWindowY)); // relative 0.70, 0.50 m_pWindow->SetSizingEnabled(false); m_pWindow->SetVisible(false); m_pWindow->SetAlwaysOnTop(true); // Credits label memset(m_pLabels, 0, sizeof(CGUILabel*) * 30); // Create one for every 15th line. This is because of some limit at 500 chars float fStartPosition = 1.0f; const char* szCreditsIterator = m_strCredits.c_str(); const char* szCreditsBegin = m_strCredits.c_str(); unsigned int uiLineCount = 0; unsigned int uiLabelIndex = 0; while (true) { // Count every new line if (*szCreditsIterator == '\n') ++uiLineCount; // 15? Create a new label if (uiLineCount >= 15 || *szCreditsIterator == 0) { // Copy out the text we shall put in that label std::string strBuffer(szCreditsBegin, szCreditsIterator - szCreditsBegin); // Remember where we count from szCreditsBegin = szCreditsIterator; ++szCreditsBegin; // Create the label m_pLabels[uiLabelIndex] = reinterpret_cast<CGUILabel*>(pManager->CreateLabel(m_pWindow, strBuffer.c_str())); m_pLabels[uiLabelIndex]->SetPosition(CVector2D(0.022f, fStartPosition), true); m_pLabels[uiLabelIndex]->SetSize(CVector2D(532.0f, 1200.0f)); // relative 0.95, 6.0 m_pLabels[uiLabelIndex]->SetHorizontalAlign(CGUI_ALIGN_HORIZONTALCENTER); ++uiLabelIndex; // Reset the linecount uiLineCount = 0; } // End the loop at 0 if (*szCreditsIterator == 0) break; // Increase the credits iterator ++szCreditsIterator; } // Create the OK button m_pButtonOK = reinterpret_cast<CGUIButton*>(pManager->CreateButton(m_pWindow, "OK")); m_pButtonOK->SetPosition(CVector2D(0.77f, 0.90f), true); m_pButtonOK->SetSize(CVector2D(112.0f, 21.0f)); // relative 0.20, 0.07 m_pButtonOK->SetVisible(true); m_pButtonOK->SetAlwaysOnTop(true); // Set up the event handlers m_pButtonOK->SetClickHandler(GUI_CALLBACK(&CCredits::OnOKButtonClick, this)); m_pWindow->SetEnterKeyHandler(GUI_CALLBACK(&CCredits::OnOKButtonClick, this)); }
CServerBrowser::CServerBrowser ( void ) { CGUI *pManager = g_pCore->GetGUI (); // Initialize m_ulLastUpdateTime = 0; m_PrevServerBrowserType = INTERNET; // Create serverbrowser window m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "SERVER BROWSER" ) ); m_pWindow->SetCloseButtonEnabled ( false ); m_pWindow->SetMovable ( true ); m_pWindow->SetSizingEnabled ( true ); CVector2D resolution = CCore::GetSingleton().GetGUI()->GetResolution(); m_pWindow->SetPosition ( CVector2D ( resolution.fX / 2 - BROWSER_DEFAULTWIDTH / 2, resolution.fY / 2 - BROWSER_DEFAULTHEIGHT / 2 ), false ); m_pWindow->SetSize ( CVector2D ( BROWSER_DEFAULTWIDTH, BROWSER_DEFAULTHEIGHT ) ); m_pWindow->SetAlwaysOnTop ( true ); m_pWindow->SetMinimumSize ( CVector2D ( BROWSER_DEFAULTWIDTH, BROWSER_DEFAULTHEIGHT ) ); // Create the serverlist tab panel and some tabs m_pTabs = reinterpret_cast < CGUITabPanel* > ( pManager->CreateTabPanel ( m_pWindow ) ); m_pTabs->SetPosition ( CVector2D ( 0.0f, 25.0f ) ); m_pTabs->SetSize ( CVector2D ( BROWSER_DEFAULTWIDTH, BROWSER_DEFAULTHEIGHT - 60.0f ) ); // Back button m_pButtonBack = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "Back" ) ); m_pButtonBack->SetPosition ( CVector2D ( BROWSER_DEFAULTWIDTH - 123.0f, BROWSER_DEFAULTHEIGHT - 32.0f ), false ); m_pButtonBack->SetSize ( CVector2D ( 108.0f, 20.0f ), false ); // Create the serverlist status label m_pServerListStatus = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Loading..." ) ); m_pServerListStatus->SetPosition ( CVector2D ( 14.0f, BROWSER_DEFAULTHEIGHT - 30.0f ) ); m_pServerListStatus->SetSize ( CVector2D ( 0.40f, 0.40f ), true ); //m_pServerListStatus->SetMinimumSize ( CVector2D ( 1.0f, 1.0f ) ); //m_pServerListStatus->SetMaximumSize ( CVector2D ( 1.0f, 1.0f ) ); // Create locked icon m_pLockedIcon = reinterpret_cast < CGUIStaticImage* > ( pManager->CreateStaticImage ( m_pWindow ) ); m_pLockedIcon->SetVisible ( false ); m_pLockedIcon->SetFrameEnabled ( false ); m_pLockedIcon->LoadFromFile ( "cgui\\images\\locked.png" ); // Serial verification icon m_pSerialIcon = reinterpret_cast < CGUIStaticImage* > ( pManager->CreateStaticImage ( m_pWindow ) ); m_pSerialIcon->SetVisible ( false ); m_pSerialIcon->SetFrameEnabled ( false ); m_pSerialIcon->LoadFromFile ( "cgui\\images\\shield.png" ); //Set necessary handlers m_pButtonBack->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnBackClick, this ) ); m_pWindow->SetSizedHandler ( GUI_CALLBACK ( &CServerBrowser::OnWindowSize, this ) ); // Create the tabs CreateTab ( ServerBrowserType::INTERNET, "Internet" ); CreateTab ( ServerBrowserType::LAN, "Lan" ); CreateTab ( ServerBrowserType::FAVOURITES, "Favourites" ); CreateTab ( ServerBrowserType::RECENTLY_PLAYED, "Recently Played" ); // Create the "Add to favourites by IP" button m_pButtonFavouritesByIP = reinterpret_cast < CGUIButton * > ( pManager->CreateButton ( m_pTab [ ServerBrowserType::FAVOURITES ], "Add by host/ip" ) ); m_pButtonFavouritesByIP->SetPosition ( CVector2D ( 0.30f, 0.93f ), true ); m_pButtonFavouritesByIP->SetSize ( CVector2D ( 0.25f, 0.04f ), true ); m_pButtonFavouritesByIP->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnFavouritesByIPClick, this ) ); // Create the "Add to favourites by IP" dialog m_pFavouritesAddByIP.SetCallback ( GUI_CALLBACK ( &CServerBrowser::OnFavouritesByIPAddClick, this ) ); // Login dialog m_pCommunityLogin.SetVisible ( false ); m_pCommunityLogin.SetCallback ( &CServerBrowser::CompleteConnect ); }
void CServerBrowser::CreateTab ( ServerBrowserType type, const char* szName ) { CGUI *pManager = g_pCore->GetGUI (); m_pTab [ type ] = m_pTabs->CreateTab ( szName ); // Create the serverlist m_pServerList [ type ] = reinterpret_cast < CGUIGridList* > ( pManager->CreateGridList ( m_pTab [ type ] ) ); m_pServerList [ type ]->SetPosition ( CVector2D ( 0.02f, 0.10f ), true ); m_pServerList [ type ]->SetSize ( CVector2D ( 0.80f, 0.815f ), true ); m_pServerListRevision [ type ] = 0; // Server player list label m_pServerPlayerListLabel [ type ] = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pTab [ type ], "Player List:" ) ); m_pServerPlayerListLabel [ type ]->SetPosition ( CVector2D ( 0.83f, 0.34f ), true ); m_pServerPlayerListLabel [ type ]->AutoSize ( "Player List:" ); // Server player list m_pServerPlayerList [ type ] = reinterpret_cast < CGUIGridList* > ( pManager->CreateGridList ( m_pTab [ type ] ) ); m_pServerPlayerList [ type ]->SetPosition ( CVector2D ( 0.83f, 0.38f ), true ); m_pServerPlayerList [ type ]->SetSize ( CVector2D ( 0.15f, 0.585f ), true ); m_pServerPlayerList [ type ]->SetIgnoreTextSpacer ( true ); // Filters // Server search edit m_pEditServerSearch [ type ] = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pTab [ type ], "" ) ); m_pEditServerSearch [ type ]->SetPosition ( CVector2D ( 0.02f, 0.04f ), true ); m_pEditServerSearch [ type ]->SetSize ( CVector2D ( 0.19f, 0.05f ), true ); m_pEditServerSearch [ type ]->SetTextChangedHandler( GUI_CALLBACK( &CServerBrowser::OnFilterChanged, this ) ); // Server search icon m_pServerSearchIcon [ type ] = reinterpret_cast < CGUIStaticImage* > ( pManager->CreateStaticImage ( m_pEditServerSearch [ type ] ) ); m_pServerSearchIcon [ type ]->SetPosition ( CVector2D ( 0.85f, 0.15f ), true ); m_pServerSearchIcon [ type ]->SetSize ( CVector2D ( 16, 14 ), false ); m_pServerSearchIcon [ type ]->LoadFromFile ( "cgui\\images\\magnfglasssmall.png" ); // Player search edit m_pEditPlayerSearch [ type ] = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pTab [ type ], "" ) ); m_pEditPlayerSearch [ type ]->SetPosition ( CVector2D ( 0.83f, 0.28f ), true ); m_pEditPlayerSearch [ type ]->SetSize ( CVector2D ( 0.15f, 0.05f ), true ); m_pEditPlayerSearch [ type ]->SetTextChangedHandler( GUI_CALLBACK( &CServerBrowser::OnFilterChanged, this ) ); // Player search icon m_pPlayerSearchIcon [ type ] = reinterpret_cast < CGUIStaticImage* > ( pManager->CreateStaticImage ( m_pEditPlayerSearch [ type ] ) ); m_pPlayerSearchIcon [ type ]->SetPosition ( CVector2D ( 0.8f, 0.15f ), true ); m_pPlayerSearchIcon [ type ]->SetSize ( CVector2D ( 16, 14 ), false ); m_pPlayerSearchIcon [ type ]->LoadFromFile ( "cgui\\images\\magnfglasssmall.png" ); // Include checkboxes m_pIncludeEmpty [ type ] = reinterpret_cast < CGUICheckBox* > ( pManager->CreateCheckBox ( m_pTab [ type ], "Include Empty", true ) ); m_pIncludeEmpty [ type ]->SetPosition ( CVector2D ( 0.225f, 0.045f ), true ); m_pIncludeEmpty [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnFilterChanged, this ) ); m_pIncludeFull [ type ] = reinterpret_cast < CGUICheckBox* > ( pManager->CreateCheckBox ( m_pTab [ type ], "Include Full", true ) ); m_pIncludeFull [ type ]->SetPosition ( CVector2D ( 0.38f, 0.045f ), true ); m_pIncludeFull [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnFilterChanged, this ) ); m_pIncludeLocked [ type ] = reinterpret_cast < CGUICheckBox* > ( pManager->CreateCheckBox ( m_pTab [ type ], "Include Locked", true ) ); m_pIncludeLocked [ type ]->SetPosition ( CVector2D ( 0.515f, 0.045f ), true ); m_pIncludeLocked [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnFilterChanged, this ) ); if ( type != ServerBrowserType::INTERNET && type != ServerBrowserType::LAN ) { m_pIncludeOffline [ type ] = reinterpret_cast < CGUICheckBox* > ( pManager->CreateCheckBox ( m_pTab [ type ], "Include Offline", true ) ); m_pIncludeOffline [ type ]->SetPosition ( CVector2D ( 0.675f, 0.045f ), true ); m_pIncludeOffline [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnFilterChanged, this ) ); } else { m_pIncludeOffline [ type ] = NULL; } // Buttons // Connect button m_pButtonConnect [ type ] = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pTab [ type ], "Connect" ) ); m_pButtonConnect [ type ]->SetPosition ( CVector2D ( 0.83f, 0.05f ), true ); m_pButtonConnect [ type ]->SetSize ( CVector2D ( 0.15f, 0.04f ), true ); m_pButtonConnect [ type ]->SetAlwaysOnTop ( true ); // Refresh button m_pButtonRefresh [ type ] = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pTab [ type ], "Refresh" ) ); m_pButtonRefresh [ type ]->SetPosition ( CVector2D ( 0.83f, 0.11f ), true ); m_pButtonRefresh [ type ]->SetSize ( CVector2D ( 0.15f, 0.04f ), true ); // Add to Favourites button if ( type == ServerBrowserType::FAVOURITES ) { m_pButtonFavourites [ type ] = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pTab [ type ], "Remove from Favourites" ) ); } else { m_pButtonFavourites [ type ] = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pTab [ type ], "Add to Favourites" ) ); } m_pButtonFavourites [ type ]->SetPosition ( CVector2D ( 0.02f, 0.93f ), true ); m_pButtonFavourites [ type ]->SetSize ( CVector2D ( 0.25f, 0.04f ), true ); // Password label m_pLabelPassword [ type ] = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pTab [ type ], "Password:"******"Password:"******"" ) ); m_pEditPassword [ type ]->SetPosition ( CVector2D ( 0.83f, 0.21f ), true ); m_pEditPassword [ type ]->SetSize ( CVector2D ( 0.15f, 0.05f ), true ); m_pEditPassword [ type ]->SetMasked ( true ); m_pEditPassword [ type ]->SetTextAcceptedHandler( GUI_CALLBACK( &CServerBrowser::OnConnectClick, this ) ); // Set up event handlers m_pButtonConnect [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnConnectClick, this ) ); m_pButtonRefresh [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnRefreshClick, this ) ); m_pButtonFavourites [ type ]->SetClickHandler ( GUI_CALLBACK ( &CServerBrowser::OnFavouritesClick, this ) ); // Server List Columns m_hSerial [ type ] = m_pServerList [ type ]->AddColumn ( "", 0.03f ); m_hLocked [ type ] = m_pServerList [ type ]->AddColumn ( "", 0.03f ); m_hName [ type ] = m_pServerList [ type ]->AddColumn ( "Name", 0.50f ); m_hPlayers [ type ] = m_pServerList [ type ]->AddColumn ( "Players", 0.14f ); m_hPing [ type ] = m_pServerList [ type ]->AddColumn ( "Ping", 0.10f ); m_hGame [ type ] = m_pServerList [ type ]->AddColumn ( "Game", 0.25f ); m_hMap [ type ] = m_pServerList [ type ]->AddColumn ( "Map", 0.25f ); m_hHost [ type ] = m_pServerList [ type ]->AddColumn ( "Host", 0.25f ); // Disable resizing of the first and second columns (Serial Auth & Locked) m_pServerList [ type ]->SetColumnSegmentSizingEnabled(0, false); m_pServerList [ type ]->SetColumnSegmentSizingEnabled(1, false); // Player List Columns m_hPlayerName [ type ] = m_pServerPlayerList [ type ]->AddColumn ( "Name", 0.75f ); }
CCredits::CCredits ( void ) { CGUI *pManager = g_pCore->GetGUI (); // Create our window CVector2D RelativeWindow = CVector2D ( fWindowX / pManager->GetResolution ().fX, fWindowY / pManager->GetResolution ().fY ); m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "Multi Theft Auto: San Andreas " MTA_DM_BUILDTAG_SHORT ) ); m_pWindow->SetCloseButtonEnabled ( false ); m_pWindow->SetMovable ( false ); m_pWindow->SetPosition ( CVector2D ( 0.5f - RelativeWindow.fX*0.5f, 0.5f - RelativeWindow.fY*0.5f ), true ); m_pWindow->SetSize ( CVector2D ( fWindowX, fWindowY ) ); // relative 0.70, 0.50 m_pWindow->SetSizingEnabled ( false ); m_pWindow->SetVisible ( false ); m_pWindow->SetAlwaysOnTop ( true ); // Credits label memset ( m_pLabels, 0, sizeof ( CGUILabel* ) * 30 ); // Create one for every 15th line. This is because of some limit at 500 chars float fStartPosition = 1.0f; const char* szCreditsIterator = g_szCredits; const char* szCreditsBegin = g_szCredits; unsigned int uiLineCount = 0; unsigned int uiLabelIndex = 0; while ( true ) { // Count every new line if ( *szCreditsIterator == '\n' ) ++uiLineCount; // 15? Create a new label if ( uiLineCount >= 15 || *szCreditsIterator == 0 ) { // Copy out the text we shall put in that label char szBuffer [512]; unsigned int uiCreditsSize = (szCreditsIterator - szCreditsBegin); if ( uiCreditsSize >= 512 ) uiCreditsSize = 511; memcpy ( szBuffer, szCreditsBegin, uiCreditsSize ); szBuffer [uiCreditsSize] = 0; // Remember where we count from szCreditsBegin = szCreditsIterator; ++szCreditsBegin; // Create the label m_pLabels [uiLabelIndex] = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, szBuffer ) ); m_pLabels [uiLabelIndex]->SetPosition ( CVector2D ( 0.022f, fStartPosition ), true ); m_pLabels [uiLabelIndex]->SetSize ( CVector2D ( 532.0f, 1200.0f ) ); // relative 0.95, 6.0 m_pLabels [uiLabelIndex]->SetHorizontalAlign ( CGUI_ALIGN_HORIZONTALCENTER ); ++uiLabelIndex; // Reset the linecount uiLineCount = 0; } // End the loop at 0 if ( *szCreditsIterator == 0 ) break; // Increase the credits iterator ++szCreditsIterator; } // Create the OK button m_pButtonOK = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "OK" ) ); m_pButtonOK->SetPosition ( CVector2D ( 0.77f, 0.90f ), true ); m_pButtonOK->SetSize ( CVector2D ( 112.0f, 21.0f ) ); // relative 0.20, 0.07 m_pButtonOK->SetVisible ( true ); // Set up the event handlers m_pButtonOK->SetClickHandler ( GUI_CALLBACK ( &CCredits::OnOKButtonClick, this ) ); }
CQuickConnect::CQuickConnect ( void ) { CGUI *pManager = g_pCore->GetGUI (); // Create the window m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "Quick Connect" ) ); m_pWindow->SetCloseButtonEnabled ( false ); //m_pWindow->SetMovable ( false ); CVector2D resolution = CCore::GetSingleton().GetGUI()->GetResolution(); m_pWindow->SetPosition ( CVector2D ( resolution.fX / 2 - 280.0f / 2, resolution.fY / 2 - 120.0f / 2 ), false ); // m_pWindow->SetPosition ( CVector2D ( 0.35f, 0.375f ), true ); m_pWindow->SetSize ( CVector2D ( 280.0f, 120.0f ) ); m_pWindow->SetSizingEnabled ( false ); m_pWindow->SetAlwaysOnTop ( true ); // Create the controls // Host label m_pLabelHost = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Host:" ) ); m_pLabelHost->SetPosition ( CVector2D ( 0.028f, 0.25f ), true ); m_pLabelHost->AutoSize ( "Host:" ); // Host edit m_pEditHost = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditHost->SetPosition ( CVector2D ( 0.17f, 0.2f ), true ); m_pEditHost->SetSize ( CVector2D ( 154.0f, 24.0f ) ); m_pEditHost->SetMaxLength ( 128 ); // Just to prevent entering a huge hostname size.. no-one has a hostname over 128 chars i believe m_pEditHost->SetTextAcceptedHandler( GUI_CALLBACK( &CQuickConnect::OnConnectButtonClick, this ) ); // Port label m_pLabelPort = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, ":" ) ); m_pLabelPort->SetPosition ( CVector2D ( 0.725f, 0.25f ) ); m_pLabelPort->AutoSize ( ":" ); // Port edit m_pEditPort = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditPort->SetPosition ( CVector2D ( 0.75f, 0.2f ), true ); m_pEditPort->SetSize ( CVector2D ( 59.0f, 24.0f ) ); m_pEditPort->SetMaxLength ( 5 ); m_pEditPort->SetTextAcceptedHandler( GUI_CALLBACK( &CQuickConnect::OnConnectButtonClick, this ) ); // Pass label m_pLabelPass = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Pass:"******"Pass:"******"Connect" ) ); m_pButtonConnect->SetPosition ( CVector2D ( 0.04f, 0.71f ), true ); m_pButtonConnect->SetSize ( CVector2D ( 112.0f, 24.0f ) ); // Cancel button m_pButtonBack = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "Back" ) ); m_pButtonBack->SetPosition ( CVector2D ( 0.56f, 0.71f ), true ); m_pButtonBack->SetSize ( CVector2D ( 112.0f, 24.0f ) ); // Set up event handlers m_pButtonConnect->SetClickHandler ( GUI_CALLBACK ( &CQuickConnect::OnConnectButtonClick, this ) ); m_pButtonBack->SetClickHandler ( GUI_CALLBACK ( &CQuickConnect::OnBackButtonClick, this ) ); }
void CCommunityRegistration::CreateWindows ( void ) { CGUI *pManager = g_pCore->GetGUI (); CMainMenu *pMainMenu = CLocalGUI::GetSingleton ().GetMainMenu (); // Create the window m_pWindow = reinterpret_cast < CGUIWindow* > ( pManager->CreateWnd ( NULL, "Community Registration" ) ); m_pWindow->SetCloseButtonEnabled ( false ); CVector2D resolution = CCore::GetSingleton().GetGUI()->GetResolution(); m_pWindow->SetPosition ( CVector2D ( resolution.fX / 2 - 300.0f / 2, resolution.fY / 2 - 300.0f / 2 ), false ); m_pWindow->SetSize ( CVector2D ( 300.0f, 300.0f ), false ); m_pWindow->SetSizingEnabled ( false ); m_pWindow->SetAlwaysOnTop ( true ); m_pLabelUsername = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Username:"******"Username:"******"Email:" ) ); m_pLabelEmail->SetPosition ( CVector2D ( 15.0f, 85.0f ), false ); m_pLabelEmail->AutoSize ( "Email:" ); m_pLabelPassword = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Password:"******"Password:"******"Confirm:" ) ); m_pLabelConfirm->SetPosition ( CVector2D ( 15.0f, 145.0f ), false ); m_pLabelConfirm->AutoSize ( "Confirm:" ); m_pLabelCode = reinterpret_cast < CGUILabel* > ( pManager->CreateLabel ( m_pWindow, "Validation code:" ) ); m_pLabelCode->SetPosition ( CVector2D ( 15.0f, 180.0f ), false ); m_pLabelCode->AutoSize ( "Validation code:" ); m_pEditUsername = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditUsername->SetPosition ( CVector2D ( 90.0f, 59.0f ), false ); m_pEditUsername->SetSize ( CVector2D ( 180.0f, 22.0f ), false ); m_pEditUsername->SetMaxLength ( 32 ); m_pEditEmail = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditEmail->SetPosition ( CVector2D ( 90.0f, 84.0f ), false ); m_pEditEmail->SetSize ( CVector2D ( 180.0f, 22.0f ), false ); m_pEditPassword = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditPassword->SetPosition ( CVector2D ( 90.0f, 119.0f ), false ); m_pEditPassword->SetSize ( CVector2D ( 180.0f, 22.0f ), false ); m_pEditPassword->SetMasked ( true ); m_pEditPassword->SetMaxLength ( 32 ); m_pEditConfirm = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditConfirm->SetPosition ( CVector2D ( 90.0f, 144.0f ), false ); m_pEditConfirm->SetSize ( CVector2D ( 180.0f, 22.0f ), false ); m_pEditConfirm->SetMasked ( true ); m_pEditConfirm->SetMaxLength ( 32 ); m_pEditCode = reinterpret_cast < CGUIEdit* > ( pManager->CreateEdit ( m_pWindow ) ); m_pEditCode->SetPosition ( CVector2D ( 110.0f, 179.0f ), false ); m_pEditCode->SetSize ( CVector2D ( 85.0f, 22.0f ), false ); m_pEditCode->SetMaxLength ( 6 ); m_pImageCode = reinterpret_cast < CGUIStaticImage* > ( pManager->CreateStaticImage ( m_pWindow ) ); m_pImageCode->SetFrameEnabled ( false ); m_pImageCode->SetPosition ( CVector2D ( 205.0f, 180.0f ), false ); m_pButtonRegister = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "Register" ) ); m_pButtonRegister->SetPosition ( CVector2D ( 100.0f, 270.0f ), false ); m_pButtonRegister->SetSize ( CVector2D ( 90.0f, 20.0f ), false ); m_pButtonRegister->SetZOrderingEnabled ( false ); m_pButtonCancel = reinterpret_cast < CGUIButton* > ( pManager->CreateButton ( m_pWindow, "Cancel" ) ); m_pButtonCancel->SetPosition ( CVector2D ( 200.0f, 270.0f ), false ); m_pButtonCancel->SetSize ( CVector2D ( 70.0f, 20.0f ), false ); m_pButtonRegister->SetZOrderingEnabled ( false ); m_pButtonRegister->SetClickHandler ( GUI_CALLBACK ( &CCommunityRegistration::OnButtonRegisterClick, this ) ); m_pButtonCancel->SetClickHandler ( GUI_CALLBACK ( &CCommunityRegistration::OnButtonCancelClick, this ) ); m_pWindow->SetAlpha ( 0.9f ); }