/* * GlobalLobbyRoomWindow.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ #pragma once #include "../windows/CWindowObject.h" #include "../../lib/modding/ModVerificationInfo.h" class CLabel; class CTextBox; class FilledTexturePlayerColored; class CButton; class CToggleGroup; class GlobalLobbyWindow; class TransparentFilledRectangle; class CListBox; struct GlobalLobbyAccount; struct GlobalLobbyRoom; VCMI_LIB_NAMESPACE_BEGIN struct ModVerificationInfo; VCMI_LIB_NAMESPACE_END struct GlobalLobbyRoomModInfo { std::string modName; std::string version; ModVerificationStatus status; }; class GlobalLobbyRoomAccountCard : public CIntObject { std::shared_ptr backgroundOverlay; std::shared_ptr labelName; std::shared_ptr labelStatus; public: GlobalLobbyRoomAccountCard(const GlobalLobbyAccount & accountDescription); }; class GlobalLobbyRoomModCard : public CIntObject { std::shared_ptr backgroundOverlay; std::shared_ptr labelName; std::shared_ptr labelStatus; std::shared_ptr labelVersion; public: GlobalLobbyRoomModCard(const GlobalLobbyRoomModInfo & modInfo); }; class GlobalLobbyRoomWindow : public CWindowObject { std::vector modVerificationList; GlobalLobbyWindow * window; std::string roomUUID; std::shared_ptr filledBackground; std::shared_ptr labelTitle; std::shared_ptr labelSubtitle; std::shared_ptr labelVersionTitle; std::shared_ptr labelVersionValue; std::shared_ptr labelJoinStatus; std::shared_ptr accountListTitle; std::shared_ptr modListTitle; std::shared_ptr accountListBackground; std::shared_ptr modListBackground; std::shared_ptr accountList; std::shared_ptr modList; std::shared_ptr buttonJoin; std::shared_ptr buttonClose; void onJoin(); void onClose(); public: GlobalLobbyRoomWindow(GlobalLobbyWindow * window, const std::string & roomUUID); };