rott/kf_sources/XInterface/Classes/Browser_PlayersList.uc
2026-07-14 20:27:09 +07:00

68 lines
2.1 KiB
Ucode

class Browser_PlayersList extends GUIMultiColumnList;
var Browser_ServerListPageBase MyPage;
var Browser_ServersList MyServersList;
var int listitem;
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
OnDrawItem = MyOnDrawItem;
OnKeyEvent = InternalOnKeyEvent;
Super.Initcomponent(MyController, MyOwner);
}
function MyOnDrawItem(Canvas Canvas, int i, float X, float Y, float W, float H, bool bSelected, bool bPending)
{
local float CellLeft, CellWidth;
GetCellLeftWidth( 0, CellLeft, CellWidth );
Style.DrawText( Canvas, MenuState, CellLeft, Y, CellWidth, H, TXTA_Left, MyServersList.Servers[listitem].PlayerInfo[i].PlayerName, FontScale );
GetCellLeftWidth( 1, CellLeft, CellWidth );
Style.DrawText( Canvas, MenuState, CellLeft, Y, CellWidth, H, TXTA_Left, string(MyServersList.Servers[listitem].PlayerInfo[i].Score), FontScale );
if( MyServersList.Servers[listitem].PlayerInfo[i].StatsID != 0 )
{
GetCellLeftWidth( 2, CellLeft, CellWidth );
Style.DrawText( Canvas, MenuState, CellLeft, Y, CellWidth, H, TXTA_Left, string(MyServersList.Servers[listitem].PlayerInfo[i].StatsID), FontScale );
}
GetCellLeftWidth( 3, CellLeft, CellWidth );
Style.DrawText( Canvas, MenuState, CellLeft, Y, CellWidth, H, TXTA_Left, string(MyServersList.Servers[listitem].PlayerInfo[i].Ping), FontScale );
}
function bool InternalOnKeyEvent(out byte Key, out byte State, float delta)
{
if( Super.InternalOnKeyEvent(Key, State, delta) )
return true;
if( State==1 )
{
switch(Key)
{
case 0x0D: //IK_Enter
MyServersList.Connect(false);
return true;
break;
case 0x74: //IK_F5
MyPage.RefreshList();
return true;
break;
}
}
return false;
}
defaultproperties
{
ColumnHeadings(0)="Player Name"
ColumnHeadings(1)="Score"
ColumnHeadings(2)="Stats ID"
ColumnHeadings(3)="Ping"
InitColumnPerc(0)=0.17
InitColumnPerc(1)=0.11
InitColumnPerc(2)=0.11
InitColumnPerc(3)=0.11
}