RMenu
Class RuneMenuAdminClientWindow

source: c:\runehov\RMenu\Classes\RuneMenuAdminClientWindow.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowClientWindow
            |
            +--UWindow.UWindowDialogClientWindow
               |
               +--UWindow.UWindowPageWindow
                  |
                  +--RMenu.RuneMenuPageWindow
                     |
                     +--RMenu.RuneMenuAdminClientWindow
Direct Known Subclasses:None

class RuneMenuAdminClientWindow
extends RMenu.RuneMenuPageWindow


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


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

End Source Code