UMenu
Class UMenuServerSetupPage

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

class UMenuServerSetupPage
extends UMenu.UMenuPageWindow


Variables
 UWindowEditControl AdminEMailEdit
 string AdminEMailHelp
 string AdminEMailText
 UWindowEditControl AdminNameEdit
 string AdminNameHelp
 string AdminNameText
 int ControlOffset
 UWindowCheckbox DoUplinkCheck
 string DoUplinkHelp
 string DoUplinkText
 Class IpServerClass
 UWindowCheckbox LanPlayCheck
 string LanPlayHelp
 string LanPlayText
 UWindowEditControl MOTDLine1Edit
 string MOTDLine1Help
 string MOTDLine1Text
 UWindowEditControl MOTDLine2Edit
 string MOTDLine2Help
 string MOTDLine2Text
 UWindowEditControl MOTDLine3Edit
 string MOTDLine3Help
 string MOTDLine3Text
 UWindowEditControl MOTDLine4Edit
 string MOTDLine4Help
 string MOTDLine4Text
 UWindowEditControl ServerNameEdit
 string ServerNameHelp
 string ServerNameText
 bool bInitialized
 bool bLanPlay
 UWindowCheckbox ngWorldStatsCheck
 string ngWorldStatsHelp
 string ngWorldStatsText


Function Summary
 void AfterCreate()
 void BeforePaint(Canvas C, float X, float Y)
 void Created()
 void Notify(UWindowDialogControl C, byte E)
 void SaveConfigs()



Source Code


00001	class UMenuServerSetupPage extends UMenuPageWindow;
00002	
00003	var int ControlOffset;
00004	var bool bInitialized;
00005	
00006	var UWindowEditControl AdminEMailEdit;
00007	var localized string AdminEMailText;
00008	var localized string AdminEMailHelp;
00009	
00010	var UWindowEditControl AdminNameEdit;
00011	var localized string AdminNameText;
00012	var localized string AdminNameHelp;
00013	
00014	var UWindowEditControl MOTDLine1Edit;
00015	var localized string MOTDLine1Text;
00016	var localized string MOTDLine1Help;
00017	
00018	var UWindowEditControl MOTDLine2Edit;
00019	var localized string MOTDLine2Text;
00020	var localized string MOTDLine2Help;
00021	
00022	var UWindowEditControl MOTDLine3Edit;
00023	var localized string MOTDLine3Text;
00024	var localized string MOTDLine3Help;
00025	
00026	var UWindowEditControl MOTDLine4Edit;
00027	var localized string MOTDLine4Text;
00028	var localized string MOTDLine4Help;
00029	
00030	var UWindowEditControl ServerNameEdit;
00031	var localized string ServerNameText;
00032	var localized string ServerNameHelp;
00033	
00034	var UWindowCheckbox DoUplinkCheck;
00035	var localized string DoUplinkText;
00036	var localized string DoUplinkHelp;
00037	
00038	var UWindowCheckbox ngWorldStatsCheck;
00039	var localized string ngWorldStatsText;
00040	var localized string ngWorldStatsHelp;
00041	
00042	var UWindowCheckbox LanPlayCheck;
00043	var localized string LanPlayText;
00044	var localized string LanPlayHelp;
00045	
00046	var config bool bLanPlay;
00047	var Class IpServerClass;
00048	
00049	function Created()
00050	{
00051		local int ControlWidth, ControlLeft, ControlRight;
00052		local int CenterWidth, CenterPos;
00053	
00054		ControlOffset = 20;
00055		bInitialized = False;
00056	
00057		Super.Created();
00058	
00059		ControlWidth = WinWidth/2.5;
00060		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00061		ControlRight = WinWidth/2 + ControlLeft;
00062	
00063		CenterWidth = (WinWidth/4)*3;
00064		CenterPos = (WinWidth - CenterWidth)/2;
00065	
00066		ServerNameEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00067		ServerNameEdit.SetText(ServerNameText);
00068		ServerNameEdit.SetHelpText(ServerNameHelp);
00069		ServerNameEdit.SetFont(F_Normal);
00070		ServerNameEdit.SetNumericOnly(False);
00071		ServerNameEdit.SetMaxLength(205);
00072		ServerNameEdit.SetDelayedNotify(True);
00073		ServerNameEdit.SetValue(class'Engine.GameReplicationInfo'.default.ServerName);
00074		ControlOffset += 20;
00075	
00076		AdminNameEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00077		AdminNameEdit.SetText(AdminNameText);
00078		AdminNameEdit.SetHelpText(AdminNameHelp);
00079		AdminNameEdit.SetFont(F_Normal);
00080		AdminNameEdit.SetNumericOnly(False);
00081		AdminNameEdit.SetMaxLength(205);
00082		AdminNameEdit.SetDelayedNotify(True);
00083		AdminNameEdit.SetValue(class'Engine.GameReplicationInfo'.default.AdminName);
00084		ControlOffset += 20;
00085		
00086		AdminEmailEdit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00087		AdminEmailEdit.SetText(AdminEmailText);
00088		AdminEmailEdit.SetHelpText(AdminEmailHelp);
00089		AdminEmailEdit.SetFont(F_Normal);
00090		AdminEmailEdit.SetNumericOnly(False);
00091		AdminEmailEdit.SetMaxLength(205);
00092		AdminEmailEdit.SetDelayedNotify(True);
00093		AdminEmailEdit.SetValue(class'Engine.GameReplicationInfo'.default.AdminEmail);
00094		ControlOffset += 20;
00095	
00096		MOTDLine1Edit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00097		MOTDLine1Edit.SetText(MOTDLine1Text);
00098		MOTDLine1Edit.SetHelpText(MOTDLine1Help);
00099		MOTDLine1Edit.SetFont(F_Normal);
00100		MOTDLine1Edit.SetNumericOnly(False);
00101		MOTDLine1Edit.SetMaxLength(205);
00102		MOTDLine1Edit.SetDelayedNotify(True);
00103		MOTDLine1Edit.SetValue(class'Engine.GameReplicationInfo'.default.MOTDLine1);
00104		ControlOffset += 20;
00105	
00106		MOTDLine2Edit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00107		MOTDLine2Edit.SetText(MOTDLine2Text);
00108		MOTDLine2Edit.SetHelpText(MOTDLine2Help);
00109		MOTDLine2Edit.SetFont(F_Normal);
00110		MOTDLine2Edit.SetNumericOnly(False);
00111		MOTDLine2Edit.SetMaxLength(205);
00112		MOTDLine2Edit.SetDelayedNotify(True);
00113		MOTDLine2Edit.SetValue(class'Engine.GameReplicationInfo'.default.MOTDLine2);
00114		ControlOffset += 20;
00115	
00116		MOTDLine3Edit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00117		MOTDLine3Edit.SetText(MOTDLine3Text);
00118		MOTDLine3Edit.SetHelpText(MOTDLine3Help);
00119		MOTDLine3Edit.SetFont(F_Normal);
00120		MOTDLine3Edit.SetNumericOnly(False);
00121		MOTDLine3Edit.SetMaxLength(205);
00122		MOTDLine3Edit.SetDelayedNotify(True);
00123		MOTDLine3Edit.SetValue(class'Engine.GameReplicationInfo'.default.MOTDLine3);
00124		ControlOffset += 20;
00125	
00126		MOTDLine4Edit = UWindowEditControl(CreateControl(class'UWindowEditControl', CenterPos, ControlOffset, CenterWidth, 1));
00127		MOTDLine4Edit.SetText(MOTDLine4Text);
00128		MOTDLine4Edit.SetHelpText(MOTDLine4Help);
00129		MOTDLine4Edit.SetFont(F_Normal);
00130		MOTDLine4Edit.SetNumericOnly(False);
00131		MOTDLine4Edit.SetMaxLength(205);
00132		MOTDLine4Edit.SetDelayedNotify(True);
00133		MOTDLine4Edit.SetValue(class'Engine.GameReplicationInfo'.default.MOTDLine4);
00134		ControlOffset += 20;
00135	
00136		DoUplinkCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1));
00137		DoUplinkCheck.SetText(DoUplinkText);
00138		DoUplinkCheck.SetHelpText(DoUplinkHelp);
00139		DoUplinkCheck.SetFont(F_Normal);
00140		DoUplinkCheck.Align = TA_Left;
00141		// Force IPServer to load!!!
00142		IPServerClass = Class(DynamicLoadObject("IpServer.UdpServerUplink", class'Class'));
00143		DoUplinkCheck.bChecked = GetPlayerOwner().ConsoleCommand("get IpServer.UdpServerUplink DoUplink") ~= "True";
00144		ControlOffset += 20;
00145	
00146		ngWorldStatsCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1));
00147		ngWorldStatsCheck.SetText(ngWorldStatsText);
00148		ngWorldStatsCheck.SetHelpText(ngWorldStatsHelp);
00149		ngWorldStatsCheck.SetFont(F_Normal);
00150		ngWorldStatsCheck.Align = TA_Left;
00151		if (GetLevel().Game != None)
00152			ngWorldStatsCheck.bChecked = GetLevel().Game.Default.bWorldLog;
00153		else
00154			ngWorldStatsCheck.bDisabled = True;
00155		ControlOffset += 20;
00156	
00157		LanPlayCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1));
00158		LanPlayCheck.SetText(LanPlayText);
00159		LanPlayCheck.SetHelpText(LanPlayHelp);
00160		LanPlayCheck.SetFont(F_Normal);
00161		LanPlayCheck.Align = TA_Left;
00162		LanPlayCheck.bChecked = bLanPlay;
00163		ControlOffset += 20;
00164	}
00165	
00166	function Notify(UWindowDialogControl C, byte E)
00167	{
00168		switch(E)
00169		{
00170		case DE_Change:
00171			switch(C)
00172			{
00173			case AdminEMailEdit:
00174				class'Engine.GameReplicationInfo'.default.AdminEmail = AdminEmailEdit.GetValue();
00175				break;
00176			case AdminNameEdit:
00177				class'Engine.GameReplicationInfo'.default.AdminName = AdminNameEdit.GetValue();
00178				break;
00179			case MOTDLine1Edit:
00180				class'Engine.GameReplicationInfo'.default.MOTDLine1 = MOTDLine1Edit.GetValue();
00181				break;
00182			case MOTDLine2Edit:
00183				class'Engine.GameReplicationInfo'.default.MOTDLine2 = MOTDLine2Edit.GetValue();
00184				break;
00185			case MOTDLine3Edit:
00186				class'Engine.GameReplicationInfo'.default.MOTDLine3 = MOTDLine3Edit.GetValue();
00187				break;
00188			case MOTDLine4Edit:
00189				class'Engine.GameReplicationInfo'.default.MOTDLine4 = MOTDLine4Edit.GetValue();
00190				break;
00191			case ServerNameEdit:
00192				class'Engine.GameReplicationInfo'.default.ServerName = ServerNameEdit.GetValue();
00193				break;
00194			case DoUplinkCheck:
00195				if(DoUplinkCheck.bChecked)
00196					GetPlayerOwner().ConsoleCommand("set IpServer.UdpServerUplink DoUplink True");
00197				else
00198					GetPlayerOwner().ConsoleCommand("set IpServer.UdpServerUplink DoUplink False");
00199				IPServerClass.Static.StaticSaveConfig();
00200				break;
00201			case ngWorldStatsCheck:
00202				if (GetLevel().Game != None)
00203				{
00204					GetLevel().Game.bWorldLog = ngWorldStatsCheck.bChecked;
00205					GetLevel().Game.SaveConfig();
00206				}
00207				break;
00208			case LanPlayCheck:
00209				bLanPlay = LanPlayCheck.bChecked;
00210				break;
00211			}
00212		}
00213		Super.Notify(C, E);
00214	}
00215	
00216	function SaveConfigs()
00217	{
00218		SaveConfig();
00219		Super.SaveConfigs();
00220		class'Engine.GameReplicationInfo'.static.StaticSaveConfig();
00221	}
00222	
00223	function AfterCreate()
00224	{
00225		Super.AfterCreate();
00226	
00227		DesiredWidth = 270;
00228		DesiredHeight = ControlOffset + 5;
00229	
00230		bInitialized = True;
00231	}
00232	
00233	function BeforePaint(Canvas C, float X, float Y)
00234	{
00235		local int ControlWidth, ControlLeft, ControlRight;
00236		local int CenterWidth, CenterPos;
00237		local int EditWidth;
00238	
00239		Super.BeforePaint(C, X, Y);
00240	
00241		ControlWidth = WinWidth/2.5;
00242		ControlLeft = (WinWidth/2 - ControlWidth)/2;
00243		ControlRight = WinWidth/2 + ControlLeft;
00244	
00245		CenterWidth = (WinWidth/7)*6;
00246		CenterPos = (WinWidth - CenterWidth)/2;
00247		
00248		EditWidth = CenterWidth - 100;
00249	
00250		ServerNameEdit.SetSize(CenterWidth, 1);
00251		ServerNameEdit.WinLeft = CenterPos;
00252		ServerNameEdit.EditBoxWidth = EditWidth;
00253	
00254		AdminNameEdit.SetSize(CenterWidth, 1);
00255		AdminNameEdit.WinLeft = CenterPos;
00256		AdminNameEdit.EditBoxWidth = EditWidth;
00257	
00258		AdminEmailEdit.SetSize(CenterWidth, 1);
00259		AdminEmailEdit.WinLeft = CenterPos;
00260		AdminEmailEdit.EditBoxWidth = EditWidth;
00261	
00262		MOTDLine1Edit.SetSize(CenterWidth, 1);
00263		MOTDLine1Edit.WinLeft = CenterPos;
00264		MOTDLine1Edit.EditBoxWidth = EditWidth;
00265	
00266		MOTDLine2Edit.SetSize(CenterWidth, 1);
00267		MOTDLine2Edit.WinLeft = CenterPos;
00268		MOTDLine2Edit.EditBoxWidth = EditWidth;
00269		
00270		MOTDLine3Edit.SetSize(CenterWidth, 1);
00271		MOTDLine3Edit.WinLeft = CenterPos;
00272		MOTDLine3Edit.EditBoxWidth = EditWidth;
00273	
00274		MOTDLine4Edit.SetSize(CenterWidth, 1);
00275		MOTDLine4Edit.WinLeft = CenterPos;
00276		MOTDLine4Edit.EditBoxWidth = EditWidth;
00277	
00278		DoUplinkCheck.SetSize(CenterWidth-EditWidth+16, 1);
00279		DoUplinkCheck.WinLeft = CenterPos;
00280	
00281		ngWorldStatsCheck.SetSize(CenterWidth-EditWidth+16, 1);
00282		ngWorldStatsCheck.WinLeft = CenterPos;
00283	
00284		LanPlayCheck.SetSize(CenterWidth-EditWidth+16, 1);
00285		LanPlayCheck.WinLeft = CenterPos;
00286	}
00287	
00288	defaultproperties
00289	{
00290	     AdminEmailText="Admin Email"
00291	     AdminEMailHelp="Enter an email address so users of this server can contact you."
00292	     AdminNameText="Admin Name"
00293	     AdminNameHelp="Enter the name of this server's administrator."
00294	     MOTDLine1Text="MOTD Line 1"
00295	     MOTDLine1Help="Enter a message of the day which will be presented to users upon joining your server."
00296	     MOTDLine2Text="MOTD Line 2"
00297	     MOTDLine2Help="Enter a message of the day which will be presented to users upon joining your server."
00298	     MOTDLine3Text="MOTD Line 3"
00299	     MOTDLine3Help="Enter a message of the day which will be presented to users upon joining your server."
00300	     MOTDLine4Text="MOTD Line 4"
00301	     MOTDLine4Help="Enter a message of the day which will be presented to users upon joining your server."
00302	     ServerNameText="Server Name"
00303	     ServerNameHelp="Enter the full description for your server, to appear in query tools such as UBrowser or GameSpy."
00304	     DoUplinkText="Advertise Server"
00305	     DoUplinkHelp="If checked, your server will be advertised to the Master Server, so your server will appear in the global server list."
00306	     ngWorldStatsText="ngWorldStats Logging"
00307	     ngWorldStatsHelp="If checked, your server will upload a log of gameplay to NetGamesUSA for stats collection.  Check out ut.ngworldstats.com for information."
00308	     LanPlayText="Optimize for LAN"
00309	     LanPlayHelp="If checked, a dedicated server started will be optimized for play on a LAN."
00310	}

End Source Code