UTMenu
Class UTPasswordCW

source: e:\games\UnrealTournament\UTMenu\Classes\UTPasswordCW.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowClientWindow
            |
            +--UWindow.UWindowDialogClientWindow
               |
               +--UTMenu.UTPasswordCW
Direct Known Subclasses:None

class UTPasswordCW
extends UWindow.UWindowDialogClientWindow


Variables
 UWindowComboControl PasswordCombo
 string PasswordHistory[10]
 string PasswordText
 string URL


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



Source Code


00001	class UTPasswordCW expands UWindowDialogClientWindow;
00002	
00003	var string URL;
00004	
00005	var UWindowComboControl PasswordCombo;
00006	var localized string	PasswordText;
00007	
00008	var config string		PasswordHistory[10];
00009	
00010	function Created()
00011	{
00012		local float EditWidth;
00013		local int i;
00014		local Color TC;
00015	
00016		Super.Created();
00017	
00018		EditWidth = WinWidth - 140;
00019		PasswordCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', 20, 20, EditWidth, 1));
00020		PasswordCombo.SetText(PasswordText);
00021		PasswordCombo.SetFont(F_Normal);
00022		PasswordCombo.SetEditable(True);
00023		for (i=0; i<10; i++)
00024			if (PasswordHistory[i] != "")
00025				PasswordCombo.AddItem(PasswordHistory[i]);
00026	}
00027	
00028	function BeforePaint(Canvas C, float X, float Y)
00029	{
00030		local float EditWidth;
00031		local float XL, YL;
00032	
00033		C.Font = Root.Fonts[PasswordCombo.Font];
00034		TextSize(C, PasswordCombo.Text, XL, YL);
00035	
00036		EditWidth = WinWidth - 50;
00037	
00038		PasswordCombo.WinLeft = (WinWidth - EditWidth) / 2;
00039		PasswordCombo.WinTop = (WinHeight-PasswordCombo.WinHeight) / 2;
00040		PasswordCombo.SetSize(EditWidth, PasswordCombo.WinHeight);
00041		PasswordCombo.EditBoxWidth = PasswordCombo.WinWidth - XL - 20;
00042	
00043		Super.BeforePaint(C, X, Y);
00044	}
00045	
00046	function Notify(UWindowDialogControl C, byte E)
00047	{
00048		Super.Notify(C, E);
00049	
00050		if((C == PasswordCombo && E == DE_EnterPressed) ||
00051		   (C == UTPasswordWindow(ParentWindow).OKButton && E == DE_Click))
00052			Connect();
00053	}
00054	
00055	function Connect()
00056	{
00057		local int i;
00058		local bool HistoryItem;
00059		local UWindowComboListItem Item;
00060		local string P;
00061	
00062		P = PasswordCombo.GetValue();
00063		if(P == "")
00064		{
00065			PasswordCombo.BringToFront();
00066			return;
00067		}
00068		i = InStr( P, " " );
00069		if( i != -1 )
00070			P = Left(P, i);
00071		
00072		for (i=0; i<10; i++)
00073		{
00074			if (PasswordHistory[i] ~= P)
00075				HistoryItem = True;
00076		}
00077		if (!HistoryItem)
00078		{
00079			PasswordCombo.InsertItem(P);
00080			while(PasswordCombo.List.Items.Count() > 10)
00081				PasswordCombo.List.Items.Last.Remove();
00082	
00083			Item = UWindowComboListItem(PasswordCombo.List.Items.Next);
00084			for (i=0; i<10; i++)
00085			{
00086				if(Item != None)
00087				{
00088					PasswordHistory[i] = Item.Value;
00089					Item = UWindowComboListItem(Item.Next);
00090				}
00091				else
00092					PasswordHistory[i] = "";
00093			}			
00094		}
00095		SaveConfig();
00096		PasswordCombo.ClearValue();
00097		GetParent(class'UWindowFramedWindow').Close();
00098		UTConsole(Root.Console).ConnectWithPassword(URL, P);
00099	}
00100	
00101	defaultproperties
00102	{
00103	     PasswordText="Password:"
00104	}

End Source Code