UBrowser
Class UBrowserOpenCW

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

class UBrowserOpenCW
extends UWindow.UWindowDialogClientWindow


Variables
 UWindowComboControl OpenCombo
 string OpenHelp
 string OpenHistory[10]
 string OpenText


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



Source Code


00001	class UBrowserOpenCW expands UWindowDialogClientWindow;
00002	
00003	var UWindowComboControl OpenCombo;
00004	var localized string	OpenText;
00005	var localized string	OpenHelp;
00006	
00007	var config string		OpenHistory[10];
00008	
00009	function Created()
00010	{
00011		local float EditWidth;
00012		local int i;
00013		local Color TC;
00014	
00015		Super.Created();
00016	
00017		EditWidth = WinWidth - 140;
00018		OpenCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', 20, 20, EditWidth, 1));
00019		OpenCombo.SetText(OpenText);
00020		OpenCombo.SetHelpText(OpenHelp);
00021		OpenCombo.SetFont(F_Normal);
00022		OpenCombo.SetEditable(True);
00023		for (i=0; i<10; i++)
00024			if (OpenHistory[i] != "")
00025				OpenCombo.AddItem(OpenHistory[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[OpenCombo.Font];
00034		TextSize(C, OpenCombo.Text, XL, YL);
00035	
00036		EditWidth = WinWidth - 50;
00037	
00038		OpenCombo.WinLeft = (WinWidth - EditWidth) / 2;
00039		OpenCombo.WinTop = (WinHeight-OpenCombo.WinHeight) / 2;
00040		OpenCombo.SetSize(EditWidth, OpenCombo.WinHeight);
00041		OpenCombo.EditBoxWidth = OpenCombo.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 == OpenCombo && E == DE_EnterPressed) ||
00051		   (C == UBrowserOpenWindow(ParentWindow).OKButton && E == DE_Click))
00052			OpenURL();
00053	}
00054	
00055	function OpenURL()
00056	{
00057		local int i;
00058		local bool HistoryItem;
00059		local UWindowComboListItem Item;
00060		local string URL;
00061	
00062		URL = OpenCombo.GetValue();
00063		if(URL == "")
00064		{
00065			OpenCombo.BringToFront();
00066			return;
00067		}
00068		
00069		for (i=0; i<10; i++)
00070		{
00071			if (OpenHistory[i] ~= URL)
00072				HistoryItem = True;
00073		}
00074		if (!HistoryItem)
00075		{
00076			OpenCombo.InsertItem(URL);
00077			while(OpenCombo.List.Items.Count() > 10)
00078				OpenCombo.List.Items.Last.Remove();
00079	
00080			Item = UWindowComboListItem(OpenCombo.List.Items.Next);
00081			for (i=0; i<10; i++)
00082			{
00083				if(Item != None)
00084				{
00085					OpenHistory[i] = Item.Value;
00086					Item = UWindowComboListItem(Item.Next);
00087				}
00088				else
00089					OpenHistory[i] = "";
00090			}			
00091		}
00092		SaveConfig();
00093	
00094		OpenCombo.ClearValue();
00095		GetParent(class'UWindowFramedWindow').Close();
00096		UBrowserMainWindow(ParentWindow.OwnerWindow).OpenURL(URL);
00097	}
00098	
00099	defaultproperties
00100	{
00101	     OpenText="Open:"
00102	     OpenHelp="Enter a standard URL, or select one from the URL history.  Press Enter to activate."
00103	}

End Source Code