18 #ifndef INC_C4PlayerInfoListBox
19 #define INC_C4PlayerInfoListBox
52 uint32_t dwBackground;
75 return idType == r2.idType &&
id == r2.
id;
86 bool CanLocalChooseTeams(int32_t idPlayer=0)
const;
108 DWORD dwJoinClr, dwPlrClr;
111 int32_t idClient, idPlayer;
112 bool fFreeSavegamePlayer;
113 bool fShownCollapsed;
126 void UpdateCollapsed();
131 void OnCtxTakeOver(
C4GUI::Element *pListItem,
const int32_t &idPlayer);
136 bool OnTeamComboSelChange(
C4GUI::ComboBox *pForCombo, int32_t idNewSelection);
140 int32_t GetInfoID()
const {
return idPlayer; }
146 bool IsLocalClientPlayer()
const;
147 bool CanLocalChooseTeam()
const;
152 class ClientListItem :
public ListItem
165 time_t tLastSoundTime;
169 ~ClientListItem()
override =
default;
171 void SetColor(
DWORD dwToClr)
174 { pStatusIcon->
SetIcon(icoNewStatus); }
175 void SetPing(int32_t iToPing);
188 DWORD GetColor()
const {
return dwClientClr; }
190 bool IsLocalClientPlayer()
const;
193 bool IsLocal()
const;
195 void Update()
override { UpdatePing(); UpdateInfo(); }
231 void MoveLocalPlayersIntoTeam();
235 class FreeSavegamePlayersListItem :
public ListItem
246 virtual bool ListItemTopSpacingBar() {
return true; }
254 class ScriptPlayersListItem :
public ListItem
266 virtual bool ListItemTopSpacingBar() {
return true; }
277 class ReplayPlayersListItem :
public ListItem
295 int32_t iMaxUncollapsedPlayers;
299 uint32_t dwTextColor;
309 void UpdateSavegamePlayers(ListItem **ppCurrInList);
310 void UpdateReplayPlayers(ListItem **ppCurrInList);
311 void UpdateScriptPlayers(ListItem **ppCurrInList);
312 void UpdatePlayersByTeam(ListItem **ppCurrInList);
313 void UpdatePlayersByRandomTeam(ListItem **ppCurrInList);
314 void UpdatePlayersByClient(ListItem **ppCurrInList);
315 void UpdatePlayersByEvaluation(ListItem **ppCurrInList,
bool fShowWinners);
316 void UpdatePlayersByEvaluation(ListItem **ppCurrInList,
C4Team *pTeam, AddMode eAddMode);
323 bool IsTeamFilter()
const {
return !!iTeamFilter; }
339 void SetTeamFilter(int32_t idNewTeamFilter) { iTeamFilter = idNewTeamFilter; }
#define C4GUI_MessageFontAlpha
virtual bool GetListItemTopSpacingBar()
virtual int32_t GetListItemTopSpacing()
void SetIcon(Icons icoNewIconIndex)
void SetColor(DWORD dwToClr, bool fMakeReadableOnBlack=true)
void DrawElement(C4TargetFacet &cgo) override
void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam) override
void UpdateOwnPos() override
void SetTeamFilter(int32_t idNewTeamFilter)
bool IsPlayerItemCollapsed(PlayerListItem *pItem)
C4PlayerInfoListBox(const C4Rect &rcBounds, Mode eMode, int32_t iTeamFilter=0)
friend class TeamListItem
void SetClientSoundIcon(int32_t iForClientID)
void SetCustomFont(CStdFont *pNewFont, uint32_t dwTextColor)
void OnPlrListSelChange(class C4GUI::Element *pEl)
CStdFont * GetCustomFont() const
void SetMode(Mode eNewMode)
~C4PlayerInfoListBox() override=default
friend class PlayerListItem
uint32_t GetTextColor() const
@ PILBM_EvaluationNoWinners
ID(IDType eType, int32_t id)
bool operator==(const ID &r2)
enum C4PlayerInfoListBox::ListItem::ID::IDType PLI_NONE