UMenu
Class UMenuNetworkClientWindow

source: e:\games\UnrealTournament\UMenu\Classes\UMenuNetworkClientWindow.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowClientWindow
            |
            +--UWindow.UWindowDialogClientWindow
               |
               +--UWindow.UWindowPageWindow
                  |
                  +--UMenu.UMenuPageWindow
                     |
                     +--UMenu.UMenuNetworkClientWindow
Direct Known Subclasses:None

class UMenuNetworkClientWindow
extends UMenu.UMenuPageWindow


Variables
 float ControlOffset
 UWindowComboControl NetSpeedCombo
 string NetSpeedHelp
 string NetSpeedText
 string NetSpeeds[4]
 bool bInitialized
 bool bShownWindow


Function Summary
 void AfterCreate()
 void BeforePaint(Canvas C, float X, float Y)
 void Created()
 void NetSpeedChanged()
     
/*
 * Message Crackers
 */
 void Notify(UWindowDialogControl C, byte E)
 void SaveConfigs()



Source Code


00001	class UMenuNetworkClientWindow extends UMenuPageWindow;
00002	
00003	// NetSpeed
00004	var UWindowComboControl NetSpeedCombo;
00005	var localized string NetSpeedText;
00006	var localized string NetSpeedHelp;
00007	var localized string NetSpeeds[4];
00008	
00009	var bool bInitialized;
00010	
00011	var config bool bShownWindow;
00012	
00013	var float ControlOffset;
00014	
00015	function Created()
00016	{
00017		local int ControlWidth, ControlLeft, ControlRight;
00018		local int CenterWidth, CenterPos;
00019	
00020		Super.Created();
00021	
00022		ControlWidth = WinWidth/2.5;
00023		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00024		ControlRight = WinWidth/2 + ControlLeft;
00025	
00026		CenterWidth = (WinWidth/4)*3;
00027		CenterPos = (WinWidth - CenterWidth)/2;
00028	
00029		// Net Speed
00030		NetSpeedCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', CenterPos, ControlOffset, CenterWidth, 1));
00031		NetSpeedCombo.SetText(NetSpeedText);
00032		NetSpeedCombo.SetHelpText(NetSpeedHelp);
00033		NetSpeedCombo.SetFont(F_Normal);
00034		NetSpeedCombo.SetEditable(False);
00035		NetSpeedCombo.AddItem(NetSpeeds[0]);
00036		NetSpeedCombo.AddItem(NetSpeeds[1]);
00037		NetSpeedCombo.AddItem(NetSpeeds[2]);
00038		NetSpeedCombo.AddItem(NetSpeeds[3]);
00039	
00040		if (class'Player'.default.ConfiguredInternetSpeed > 12500)
00041			NetSpeedCombo.SetSelectedIndex(3);
00042		else if (class'Player'.default.ConfiguredInternetSpeed >= 6000) 
00043			NetSpeedCombo.SetSelectedIndex(2);
00044		else if (class'Player'.default.ConfiguredInternetSpeed >= 4000) 
00045			NetSpeedCombo.SetSelectedIndex(1);
00046		else 
00047			NetSpeedCombo.SetSelectedIndex(0);
00048		ControlOffset += 25;
00049	
00050		bInitialized = True;
00051	}
00052	
00053	function AfterCreate()
00054	{
00055		Super.AfterCreate();
00056		DesiredWidth = 220;
00057		DesiredHeight = ControlOffset;
00058	}
00059	
00060	function BeforePaint(Canvas C, float X, float Y)
00061	{
00062		local int ControlWidth, ControlLeft, ControlRight;
00063		local int CenterWidth, CenterPos;
00064	
00065		Super.BeforePaint(C, X, Y);
00066	
00067		if(!bShownWindow)
00068		{
00069			bShownWindow = True;
00070			default.bShownWindow = True;
00071			SaveConfig();
00072		}
00073	
00074		ControlWidth = WinWidth/2.5;
00075		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00076		ControlRight = WinWidth/2 + ControlLeft;
00077	
00078		CenterWidth = (WinWidth/6)*5;
00079		CenterPos = (WinWidth - CenterWidth)/2;
00080	
00081		NetSpeedCombo.SetSize(CenterWidth, 1);
00082		NetSpeedCombo.WinLeft = CenterPos;
00083		NetSpeedCombo.EditBoxWidth = 130;
00084	}
00085	
00086	function Notify(UWindowDialogControl C, byte E)
00087	{
00088		Super.Notify(C, E);
00089	
00090		switch(E)
00091		{
00092		case DE_Change:
00093			switch(C)
00094			{
00095			case NetSpeedCombo:
00096				NetSpeedChanged();
00097				break;
00098			}
00099		}
00100	}
00101	
00102	/*
00103	 * Message Crackers
00104	 */
00105	
00106	function NetSpeedChanged()
00107	{
00108		local int NewSpeed;
00109	
00110		if (!bInitialized)
00111			return;
00112	
00113		switch(NetSpeedCombo.GetSelectedIndex())
00114		{
00115			case 0:
00116				NewSpeed = 2600;
00117				break;
00118			case 1:
00119				NewSpeed = 5000;
00120				break;
00121			case 2:
00122				NewSpeed = 10000;
00123				break;
00124			case 3:
00125				NewSpeed = 20000;
00126				break;
00127		}
00128		GetPlayerOwner().ConsoleCommand("NETSPEED "$NewSpeed);
00129	}
00130	
00131	function SaveConfigs()
00132	{
00133		GetPlayerOwner().SaveConfig();
00134		if ( GetLevel().Game != None ) 
00135		{
00136			GetLevel().Game.SaveConfig();
00137			GetLevel().Game.GameReplicationInfo.SaveConfig();
00138		}
00139		Super.SaveConfigs();
00140	}
00141	
00142	defaultproperties
00143	{
00144	     NetSpeedText="Internet Connection"
00145	     NetSpeedHelp="Select the closest match to your internet connection. Try selecting a lower setting if you're getting huge lag."
00146	     NetSpeeds(0)="Modem (28.8K - 56K)"
00147	     NetSpeeds(1)="ISDN"
00148	     NetSpeeds(2)="Cable, xDSL"
00149	     NetSpeeds(3)="LAN"
00150	     ControlOffset=20.000000
00151	}

End Source Code