Core.Object | +--UWindow.UWindowBase | +--UWindow.UWindowWindow | +--UWindow.UWindowClientWindow | +--UWindow.UWindowDialogClientWindow | +--UTMenu.UTPasswordCW
UWindowComboControl
PasswordCombo
string
PasswordHistory[10]
PasswordText
URL
void
BeforePaint(Canvas C, float X, float Y)
Connect()
Created()
Notify(UWindowDialogControl C, byte E)
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 }