UMenu
Class UMenuCustomizeClientWindow

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

class UMenuCustomizeClientWindow
extends UMenu.UMenuPageWindow


Variables
 int AliasCount
 string AliasNames[100]
 int BoundKey1[100]
 int BoundKey2[100]
 string CustomizeHelp
 UWindowSmallButton DefaultsButton
 string DefaultsHelp
 string DefaultsText
 string JoyXBinding[2]
 UWindowComboControl JoyXCombo
 string JoyXHelp
 string JoyXOptions[2]
 string JoyXText
 string JoyYBinding[2]
 UWindowComboControl JoyYCombo
 string JoyYHelp
 string JoyYOptions[2]
 string JoyYText
 UMenuLabelControl JoystickHeading
 string JoystickText
 UMenuRaisedButton KeyButtons[100]
 UMenuLabelControl KeyNames[100]
 string LabelList[100]
 string LocalizedKeyName[255]
 JoyDesiredHeight, NoJoyDesiredHeight
 string OrString
 string RealKeyName[255]
 UMenuRaisedButton SelectedButton
 int Selection
 bool bJoystick
 bool bLoadedExisting
 bool bPolling


Function Summary
 void BeforePaint(Canvas C, float X, float Y)
 void Created()
 void GetDesiredDimensions(out float, out float)
 void KeyDown(int Key, float X, float Y)
 void LoadExistingKeys()
 void Notify(UWindowDialogControl C, byte E)
 void ProcessMenuKey(int KeyNo, string KeyName)
 void RemoveExistingKey(int KeyNo, string KeyName)
 void SetKey(int KeyNo, string KeyName)
 void WindowShown()



Source Code


00001	class UMenuCustomizeClientWindow extends UMenuPageWindow;
00002	
00003	var localized string LocalizedKeyName[255];
00004	var string RealKeyName[255];
00005	var int BoundKey1[100];
00006	var int BoundKey2[100];
00007	var UMenuLabelControl KeyNames[100];
00008	var UMenuRaisedButton KeyButtons[100];
00009	var UMenuRaisedButton SelectedButton;
00010	var localized string LabelList[100];
00011	var string AliasNames[100];
00012	var int Selection;
00013	var bool bPolling;
00014	var localized string OrString;
00015	var localized string CustomizeHelp;
00016	
00017	var UWindowSmallButton DefaultsButton;
00018	var localized string DefaultsText;
00019	var localized string DefaultsHelp;
00020	
00021	var UMenuLabelControl JoystickHeading;
00022	var localized string JoystickText;
00023	
00024	var UWindowComboControl JoyXCombo;
00025	var localized string JoyXText;
00026	var localized string JoyXHelp;
00027	var localized string JoyXOptions[2];
00028	var string JoyXBinding[2];
00029	
00030	var UWindowComboControl JoyYCombo;
00031	var localized string JoyYText;
00032	var localized string JoyYHelp;
00033	var localized string JoyYOptions[2];
00034	var string JoyYBinding[2];
00035	
00036	var int AliasCount;
00037	var bool bLoadedExisting;
00038	var bool bJoystick;
00039	var float JoyDesiredHeight, NoJoyDesiredHeight;
00040	
00041	function Created()
00042	{
00043		local int ButtonWidth, ButtonLeft, ButtonTop, I, J, pos;
00044		local int LabelWidth, LabelLeft;
00045		local UMenuLabelControl Heading;
00046		local bool bTop;
00047	
00048		bIgnoreLDoubleClick = True;
00049		bIgnoreMDoubleClick = True;
00050		bIgnoreRDoubleClick = True;
00051	
00052		bJoystick =	bool(GetPlayerOwner().ConsoleCommand("get windrv.windowsclient usejoystick"));
00053	
00054		Super.Created();
00055	
00056		SetAcceptsFocus();
00057	
00058		ButtonWidth = WinWidth - 140;
00059		ButtonLeft = WinWidth - ButtonWidth - 40;
00060	
00061		LabelWidth = WinWidth - 100;
00062		LabelLeft = 20;
00063	
00064		// Defaults Button
00065		DefaultsButton = UWindowSmallButton(CreateControl(class'UWindowSmallButton', 30, 10, 48, 16));
00066		DefaultsButton.SetText(DefaultsText);
00067		DefaultsButton.SetFont(F_Normal);
00068		DefaultsButton.SetHelpText(DefaultsHelp);
00069		
00070		ButtonTop = 25;
00071		bTop = True;
00072		for (I=0; I<ArrayCount(AliasNames); I++)
00073		{
00074			if(AliasNames[I] == "")
00075				break;
00076	
00077			j = InStr(LabelList[I], ",");
00078			if(j != -1)
00079			{
00080				if(!bTop)
00081					ButtonTop += 10;
00082				Heading = UMenuLabelControl(CreateControl(class'UMenuLabelControl', LabelLeft-10, ButtonTop+3, WinWidth, 1));
00083				Heading.SetText(Left(LabelList[I], j));
00084				Heading.SetFont(F_Bold);
00085				LabelList[I] = Mid(LabelList[I], j+1);
00086				ButtonTop += 19;
00087			}
00088			bTop = False;
00089	
00090			KeyNames[I] = UMenuLabelControl(CreateControl(class'UMenuLabelControl', LabelLeft, ButtonTop+3, LabelWidth, 1));
00091			KeyNames[I].SetText(LabelList[I]);
00092			KeyNames[I].SetHelpText(CustomizeHelp);
00093			KeyNames[I].SetFont(F_Normal);
00094			KeyButtons[I] = UMenuRaisedButton(CreateControl(class'UMenuRaisedButton', ButtonLeft, ButtonTop, ButtonWidth, 1));
00095			KeyButtons[I].SetHelpText(CustomizeHelp);
00096			KeyButtons[I].bAcceptsFocus = False;
00097			KeyButtons[I].bIgnoreLDoubleClick = True;
00098			KeyButtons[I].bIgnoreMDoubleClick = True;
00099			KeyButtons[I].bIgnoreRDoubleClick = True;
00100			ButtonTop += 19;
00101		}
00102		AliasCount = I;
00103	
00104		NoJoyDesiredHeight = ButtonTop + 10;
00105	
00106		// Joystick
00107		ButtonTop += 10;
00108		JoystickHeading = UMenuLabelControl(CreateControl(class'UMenuLabelControl', LabelLeft-10, ButtonTop+3, WinWidth, 1));
00109		JoystickHeading.SetText(JoystickText);
00110		JoystickHeading.SetFont(F_Bold);
00111		LabelList[I] = Mid(LabelList[I], j+1);
00112		ButtonTop += 19;
00113	
00114		JoyXCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', 20, ButtonTop, WinWidth - 40, 1));
00115		JoyXCombo.CancelAcceptsFocus();
00116		JoyXCombo.SetText(JoyXText);
00117		JoyXCombo.SetHelpText(JoyXHelp);
00118		JoyXCombo.SetFont(F_Normal);
00119		JoyXCombo.SetEditable(False);
00120		JoyXCombo.AddItem(JoyXOptions[0]);
00121		JoyXCombo.AddItem(JoyXOptions[1]);
00122		JoyXCombo.EditBoxWidth = ButtonWidth;
00123		ButtonTop += 20;
00124	
00125		JoyYCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', 20, ButtonTop, WinWidth - 40, 1));
00126		JoyYCombo.CancelAcceptsFocus();
00127		JoyYCombo.SetText(JoyYText);
00128		JoyYCombo.SetHelpText(JoyYHelp);
00129		JoyYCombo.SetFont(F_Normal);
00130		JoyYCombo.SetEditable(False);
00131		JoyYCombo.AddItem(JoyYOptions[0]);
00132		JoyYCombo.AddItem(JoyYOptions[1]);
00133		JoyYCombo.EditBoxWidth = ButtonWidth;
00134		ButtonTop += 20;
00135	
00136		LoadExistingKeys();
00137	
00138		DesiredWidth = 220;
00139		JoyDesiredHeight = ButtonTop + 10;
00140		DesiredHeight = JoyDesiredHeight;
00141	}
00142	
00143	function WindowShown()
00144	{
00145		Super.WindowShown();
00146		bJoystick =	bool(GetPlayerOwner().ConsoleCommand("get windrv.windowsclient usejoystick"));
00147	}
00148	
00149	function LoadExistingKeys()
00150	{
00151		local int I, J, pos;
00152		local string KeyName;
00153		local string Alias;
00154	
00155		for (I=0; I<AliasCount; I++)
00156		{
00157			BoundKey1[I] = 0;
00158			BoundKey2[I] = 0;
00159		}
00160	
00161		for (I=0; I<255; I++)
00162		{
00163			KeyName = GetPlayerOwner().ConsoleCommand( "KEYNAME "$i );
00164			RealKeyName[i] = KeyName;
00165			if ( KeyName != "" )
00166			{
00167				Alias = GetPlayerOwner().ConsoleCommand( "KEYBINDING "$KeyName );
00168				if ( Alias != "" )
00169				{
00170					pos = InStr(Alias, " ");
00171					if ( pos != -1 )
00172					{
00173						if( !(Left(Alias, pos) ~= "taunt") &&
00174							!(Left(Alias, pos) ~= "getweapon") &&
00175							!(Left(Alias, pos) ~= "viewplayernum") &&
00176							!(Left(Alias, pos) ~= "button") &&
00177							!(Left(Alias, pos) ~= "mutate"))
00178							Alias = Left(Alias, pos);
00179					}
00180					for (J=0; J<AliasCount; J++)
00181					{
00182						if ( AliasNames[J] ~= Alias && AliasNames[J] != "None" )
00183						{
00184							if ( BoundKey1[J] == 0 )
00185								BoundKey1[J] = i;
00186							else
00187							if ( BoundKey2[J] == 0)
00188								BoundKey2[J] = i;
00189						}
00190					}
00191				}
00192			}
00193		}
00194	
00195		bLoadedExisting = False;
00196		Alias = GetPlayerOwner().ConsoleCommand( "KEYBINDING JoyX" );
00197		if(Alias ~= JoyXBinding[0])
00198			JoyXCombo.SetSelectedIndex(0);
00199		if(Alias ~= JoyXBinding[1])
00200			JoyXCombo.SetSelectedIndex(1);
00201	
00202		Alias = GetPlayerOwner().ConsoleCommand( "KEYBINDING JoyY" );
00203		if(Alias ~= JoyYBinding[0])
00204			JoyYCombo.SetSelectedIndex(0);
00205		if(Alias ~= JoyYBinding[1])
00206			JoyYCombo.SetSelectedIndex(1);
00207		bLoadedExisting = True;
00208	}
00209	
00210	function BeforePaint(Canvas C, float X, float Y)
00211	{
00212		local int ButtonWidth, ButtonLeft, I;
00213		local int LabelWidth, LabelLeft;
00214	
00215		ButtonWidth = WinWidth - 135;
00216		ButtonLeft = WinWidth - ButtonWidth - 20;
00217	
00218		DefaultsButton.AutoWidth(C);
00219		DefaultsButton.WinLeft = ButtonLeft + ButtonWidth - DefaultsButton.WinWidth;
00220	
00221		LabelWidth = WinWidth - 100;
00222		LabelLeft = 20;
00223	
00224		if(bJoystick)
00225		{
00226			DesiredHeight = JoyDesiredHeight;
00227	
00228			JoystickHeading.ShowWindow();
00229			JoyXCombo.ShowWindow();
00230			JoyYCombo.ShowWindow();
00231	
00232			JoyXCombo.SetSize(WinWidth - 40, 1);
00233			JoyXCombo.EditBoxWidth = ButtonWidth;
00234	
00235			JoyYCombo.SetSize(WinWidth - 40, 1);
00236			JoyYCombo.EditBoxWidth = ButtonWidth;
00237		}
00238		else
00239		{
00240			DesiredHeight = NoJoyDesiredHeight;
00241	
00242			JoystickHeading.HideWindow();
00243			JoyXCombo.HideWindow();
00244			JoyYCombo.HideWindow();
00245		}
00246	
00247		for (I=0; I<AliasCount; I++)
00248		{
00249			KeyButtons[I].SetSize(ButtonWidth, 1);
00250			KeyButtons[I].WinLeft = ButtonLeft;
00251	
00252			KeyNames[I].SetSize(LabelWidth, 1);
00253			KeyNames[I].WinLeft = LabelLeft;
00254		}
00255	
00256		for (I=0; I<AliasCount; I++ )
00257		{
00258			if ( BoundKey1[I] == 0 )
00259				KeyButtons[I].SetText("");
00260			else
00261			if ( BoundKey2[I] == 0 )
00262				KeyButtons[I].SetText(LocalizedKeyName[BoundKey1[I]]);
00263			else
00264				KeyButtons[I].SetText(LocalizedKeyName[BoundKey1[I]]$OrString$LocalizedKeyName[BoundKey2[I]]);
00265		}
00266	}
00267	
00268	function KeyDown( int Key, float X, float Y )
00269	{
00270		if (bPolling)
00271		{
00272			ProcessMenuKey(Key, RealKeyName[Key]);
00273			bPolling = False;
00274			SelectedButton.bDisabled = False;
00275		}
00276	}
00277	
00278	function RemoveExistingKey(int KeyNo, string KeyName)
00279	{
00280		local int I;
00281	
00282		// Remove this key from any existing binding display
00283		for ( I=0; I<AliasCount; I++ )
00284		{
00285			if(I != Selection)
00286			{
00287				if ( BoundKey2[I] == KeyNo )
00288					BoundKey2[I] = 0;
00289	
00290				if ( BoundKey1[I] == KeyNo )
00291				{
00292					BoundKey1[I] = BoundKey2[I];
00293					BoundKey2[I] = 0;
00294				}
00295			}
00296		}
00297	}
00298	
00299	function SetKey(int KeyNo, string KeyName)
00300	{
00301		if ( BoundKey1[Selection] != 0 )
00302		{
00303	
00304			// if this key is already chosen, just clear out other slot
00305			if(KeyNo == BoundKey1[Selection])
00306			{
00307				// if 2 exists, remove it it.
00308				if(BoundKey2[Selection] != 0)
00309				{
00310					GetPlayerOwner().ConsoleCommand("SET Input "$RealKeyName[BoundKey2[Selection]]);
00311					BoundKey2[Selection] = 0;
00312				}
00313			}
00314			else 
00315			if(KeyNo == BoundKey2[Selection])
00316			{
00317				// Remove slot 1
00318				GetPlayerOwner().ConsoleCommand("SET Input "$RealKeyName[BoundKey1[Selection]]);
00319				BoundKey1[Selection] = BoundKey2[Selection];
00320				BoundKey2[Selection] = 0;
00321			}
00322			else
00323			{
00324				// Clear out old slot 2 if it exists
00325				if(BoundKey2[Selection] != 0)
00326				{
00327					GetPlayerOwner().ConsoleCommand("SET Input "$RealKeyName[BoundKey2[Selection]]);
00328					BoundKey2[Selection] = 0;
00329				}
00330	
00331				// move key 1 to key 2, and set ourselves in 1.
00332				BoundKey2[Selection] = BoundKey1[Selection];
00333				BoundKey1[Selection] = KeyNo;
00334				GetPlayerOwner().ConsoleCommand("SET Input"@KeyName@AliasNames[Selection]);		
00335			}
00336		}
00337		else
00338		{
00339			BoundKey1[Selection] = KeyNo;
00340			GetPlayerOwner().ConsoleCommand("SET Input"@KeyName@AliasNames[Selection]);		
00341		}
00342	}
00343	
00344	function ProcessMenuKey( int KeyNo, string KeyName )
00345	{
00346		if ( (KeyName == "") || (KeyName == "Escape")  
00347			|| ((KeyNo >= 0x70 ) && (KeyNo <= 0x79)) // function keys
00348			|| ((KeyNo >= 0x30 ) && (KeyNo <= 0x39))) // number keys
00349			return;
00350	
00351		RemoveExistingKey(KeyNo, KeyName);
00352		SetKey(KeyNo, KeyName);
00353	}
00354	
00355	function Notify(UWindowDialogControl C, byte E)
00356	{
00357		local int I;
00358	
00359		Super.Notify(C, E);
00360	
00361		if(C == DefaultsButton && E == DE_Click)
00362		{
00363			GetPlayerOwner().ResetKeyboard();
00364			LoadExistingKeys();
00365			return;
00366		} 
00367	
00368		switch(E)
00369		{
00370		case DE_Change:
00371			switch(C)
00372			{
00373			case JoyXCombo:
00374				if(bLoadedExisting)
00375					GetPlayerOwner().ConsoleCommand("SET Input JoyX "$JoyXBinding[JoyXCombo.GetSelectedIndex()]);
00376				break;
00377			case JoyYCombo:
00378				if(bLoadedExisting)
00379					GetPlayerOwner().ConsoleCommand("SET Input JoyY "$JoyYBinding[JoyYCombo.GetSelectedIndex()]);
00380				break;
00381			}
00382			break;
00383		case DE_Click:
00384			if (bPolling)
00385			{
00386				bPolling = False;
00387				SelectedButton.bDisabled = False;
00388	
00389				if(C == SelectedButton)
00390				{
00391					ProcessMenuKey(1, RealKeyName[1]);
00392					return;
00393				}
00394			}
00395	
00396			if (UMenuRaisedButton(C) != None)
00397			{
00398				SelectedButton = UMenuRaisedButton(C);
00399				for ( I=0; I<AliasCount; I++ )
00400				{
00401					if (KeyButtons[I] == C)
00402						Selection = I;
00403				}
00404				bPolling = True;
00405				SelectedButton.bDisabled = True;
00406			}
00407			break;
00408		case DE_RClick:
00409			if (bPolling)
00410				{
00411					bPolling = False;
00412					SelectedButton.bDisabled = False;
00413	
00414					if(C == SelectedButton)
00415					{
00416						ProcessMenuKey(2, RealKeyName[2]);
00417						return;
00418					}
00419				}
00420			break;
00421		case DE_MClick:
00422			if (bPolling)
00423				{
00424					bPolling = False;
00425					SelectedButton.bDisabled = False;
00426	
00427					if(C == SelectedButton)
00428					{
00429						ProcessMenuKey(4, RealKeyName[4]);
00430						return;
00431					}			
00432				}
00433			break;
00434		}
00435	}
00436	
00437	function GetDesiredDimensions(out float W, out float H)
00438	{	
00439		Super.GetDesiredDimensions(W, H);
00440		H = 200;
00441	}
00442	
00443	defaultproperties
00444	{
00445	     LocalizedKeyName(1)="LeftMouse"
00446	     LocalizedKeyName(2)="RightMouse"
00447	     LocalizedKeyName(3)="Cancel"
00448	     LocalizedKeyName(4)="MiddleMouse"
00449	     LocalizedKeyName(5)="Unknown05"
00450	     LocalizedKeyName(6)="Unknown06"
00451	     LocalizedKeyName(7)="Unknown07"
00452	     LocalizedKeyName(8)="Backspace"
00453	     LocalizedKeyName(9)="Tab"
00454	     LocalizedKeyName(10)="Unknown0A"
00455	     LocalizedKeyName(11)="Unknown0B"
00456	     LocalizedKeyName(12)="Unknown0C"
00457	     LocalizedKeyName(13)="Enter"
00458	     LocalizedKeyName(14)="Unknown0E"
00459	     LocalizedKeyName(15)="Unknown0F"
00460	     LocalizedKeyName(16)="Shift"
00461	     LocalizedKeyName(17)="Ctrl"
00462	     LocalizedKeyName(18)="Alt"
00463	     LocalizedKeyName(19)="Pause"
00464	     LocalizedKeyName(20)="CapsLock"
00465	     LocalizedKeyName(21)="Unknown15"
00466	     LocalizedKeyName(22)="Unknown16"
00467	     LocalizedKeyName(23)="Unknown17"
00468	     LocalizedKeyName(24)="Unknown18"
00469	     LocalizedKeyName(25)="Unknown19"
00470	     LocalizedKeyName(26)="Unknown1A"
00471	     LocalizedKeyName(27)="Escape"
00472	     LocalizedKeyName(28)="Unknown1C"
00473	     LocalizedKeyName(29)="Unknown1D"
00474	     LocalizedKeyName(30)="Unknown1E"
00475	     LocalizedKeyName(31)="Unknown1F"
00476	     LocalizedKeyName(32)="Space"
00477	     LocalizedKeyName(33)="PageUp"
00478	     LocalizedKeyName(34)="PageDown"
00479	     LocalizedKeyName(35)="End"
00480	     LocalizedKeyName(36)="Home"
00481	     LocalizedKeyName(37)="Left"
00482	     LocalizedKeyName(38)="Up"
00483	     LocalizedKeyName(39)="Right"
00484	     LocalizedKeyName(40)="Down"
00485	     LocalizedKeyName(41)="Select"
00486	     LocalizedKeyName(42)="Print"
00487	     LocalizedKeyName(43)="Execute"
00488	     LocalizedKeyName(44)="PrintScrn"
00489	     LocalizedKeyName(45)="Insert"
00490	     LocalizedKeyName(46)="Delete"
00491	     LocalizedKeyName(47)="Help"
00492	     LocalizedKeyName(48)="0"
00493	     LocalizedKeyName(49)="1"
00494	     LocalizedKeyName(50)="2"
00495	     LocalizedKeyName(51)="3"
00496	     LocalizedKeyName(52)="4"
00497	     LocalizedKeyName(53)="5"
00498	     LocalizedKeyName(54)="6"
00499	     LocalizedKeyName(55)="7"
00500	     LocalizedKeyName(56)="8"
00501	     LocalizedKeyName(57)="9"
00502	     LocalizedKeyName(58)="Unknown3A"
00503	     LocalizedKeyName(59)="Unknown3B"
00504	     LocalizedKeyName(60)="Unknown3C"
00505	     LocalizedKeyName(61)="Unknown3D"
00506	     LocalizedKeyName(62)="Unknown3E"
00507	     LocalizedKeyName(63)="Unknown3F"
00508	     LocalizedKeyName(64)="Unknown40"
00509	     LocalizedKeyName(65)="A"
00510	     LocalizedKeyName(66)="B"
00511	     LocalizedKeyName(67)="C"
00512	     LocalizedKeyName(68)="D"
00513	     LocalizedKeyName(69)="E"
00514	     LocalizedKeyName(70)="F"
00515	     LocalizedKeyName(71)="G"
00516	     LocalizedKeyName(72)="H"
00517	     LocalizedKeyName(73)="I"
00518	     LocalizedKeyName(74)="J"
00519	     LocalizedKeyName(75)="K"
00520	     LocalizedKeyName(76)="L"
00521	     LocalizedKeyName(77)="M"
00522	     LocalizedKeyName(78)="N"
00523	     LocalizedKeyName(79)="O"
00524	     LocalizedKeyName(80)="P"
00525	     LocalizedKeyName(81)="Q"
00526	     LocalizedKeyName(82)="R"
00527	     LocalizedKeyName(83)="S"
00528	     LocalizedKeyName(84)="T"
00529	     LocalizedKeyName(85)="U"
00530	     LocalizedKeyName(86)="V"
00531	     LocalizedKeyName(87)="W"
00532	     LocalizedKeyName(88)="X"
00533	     LocalizedKeyName(89)="Y"
00534	     LocalizedKeyName(90)="Z"
00535	     LocalizedKeyName(91)="Unknown5B"
00536	     LocalizedKeyName(92)="Unknown5C"
00537	     LocalizedKeyName(93)="Unknown5D"
00538	     LocalizedKeyName(94)="Unknown5E"
00539	     LocalizedKeyName(95)="Unknown5F"
00540	     LocalizedKeyName(96)="NumPad0"
00541	     LocalizedKeyName(97)="NumPad1"
00542	     LocalizedKeyName(98)="NumPad2"
00543	     LocalizedKeyName(99)="NumPad3"
00544	     LocalizedKeyName(100)="NumPad4"
00545	     LocalizedKeyName(101)="NumPad5"
00546	     LocalizedKeyName(102)="NumPad6"
00547	     LocalizedKeyName(103)="NumPad7"
00548	     LocalizedKeyName(104)="NumPad8"
00549	     LocalizedKeyName(105)="NumPad9"
00550	     LocalizedKeyName(106)="GreyStar"
00551	     LocalizedKeyName(107)="GreyPlus"
00552	     LocalizedKeyName(108)="Separator"
00553	     LocalizedKeyName(109)="GreyMinus"
00554	     LocalizedKeyName(110)="NumPadPeriod"
00555	     LocalizedKeyName(111)="GreySlash"
00556	     LocalizedKeyName(112)="F1"
00557	     LocalizedKeyName(113)="F2"
00558	     LocalizedKeyName(114)="F3"
00559	     LocalizedKeyName(115)="F4"
00560	     LocalizedKeyName(116)="F5"
00561	     LocalizedKeyName(117)="F6"
00562	     LocalizedKeyName(118)="F7"
00563	     LocalizedKeyName(119)="F8"
00564	     LocalizedKeyName(120)="F9"
00565	     LocalizedKeyName(121)="F10"
00566	     LocalizedKeyName(122)="F11"
00567	     LocalizedKeyName(123)="F12"
00568	     LocalizedKeyName(124)="F13"
00569	     LocalizedKeyName(125)="F14"
00570	     LocalizedKeyName(126)="F15"
00571	     LocalizedKeyName(127)="F16"
00572	     LocalizedKeyName(128)="F17"
00573	     LocalizedKeyName(129)="F18"
00574	     LocalizedKeyName(130)="F19"
00575	     LocalizedKeyName(131)="F20"
00576	     LocalizedKeyName(132)="F21"
00577	     LocalizedKeyName(133)="F22"
00578	     LocalizedKeyName(134)="F23"
00579	     LocalizedKeyName(135)="F24"
00580	     LocalizedKeyName(136)="Unknown88"
00581	     LocalizedKeyName(137)="Unknown89"
00582	     LocalizedKeyName(138)="Unknown8A"
00583	     LocalizedKeyName(139)="Unknown8B"
00584	     LocalizedKeyName(140)="Unknown8C"
00585	     LocalizedKeyName(141)="Unknown8D"
00586	     LocalizedKeyName(142)="Unknown8E"
00587	     LocalizedKeyName(143)="Unknown8F"
00588	     LocalizedKeyName(144)="NumLock"
00589	     LocalizedKeyName(145)="ScrollLock"
00590	     LocalizedKeyName(146)="Unknown92"
00591	     LocalizedKeyName(147)="Unknown93"
00592	     LocalizedKeyName(148)="Unknown94"
00593	     LocalizedKeyName(149)="Unknown95"
00594	     LocalizedKeyName(150)="Unknown96"
00595	     LocalizedKeyName(151)="Unknown97"
00596	     LocalizedKeyName(152)="Unknown98"
00597	     LocalizedKeyName(153)="Unknown99"
00598	     LocalizedKeyName(154)="Unknown9A"
00599	     LocalizedKeyName(155)="Unknown9B"
00600	     LocalizedKeyName(156)="Unknown9C"
00601	     LocalizedKeyName(157)="Unknown9D"
00602	     LocalizedKeyName(158)="Unknown9E"
00603	     LocalizedKeyName(159)="Unknown9F"
00604	     LocalizedKeyName(160)="LShift"
00605	     LocalizedKeyName(161)="RShift"
00606	     LocalizedKeyName(162)="LControl"
00607	     LocalizedKeyName(163)="RControl"
00608	     LocalizedKeyName(164)="UnknownA4"
00609	     LocalizedKeyName(165)="UnknownA5"
00610	     LocalizedKeyName(166)="UnknownA6"
00611	     LocalizedKeyName(167)="UnknownA7"
00612	     LocalizedKeyName(168)="UnknownA8"
00613	     LocalizedKeyName(169)="UnknownA9"
00614	     LocalizedKeyName(170)="UnknownAA"
00615	     LocalizedKeyName(171)="UnknownAB"
00616	     LocalizedKeyName(172)="UnknownAC"
00617	     LocalizedKeyName(173)="UnknownAD"
00618	     LocalizedKeyName(174)="UnknownAE"
00619	     LocalizedKeyName(175)="UnknownAF"
00620	     LocalizedKeyName(176)="UnknownB0"
00621	     LocalizedKeyName(177)="UnknownB1"
00622	     LocalizedKeyName(178)="UnknownB2"
00623	     LocalizedKeyName(179)="UnknownB3"
00624	     LocalizedKeyName(180)="UnknownB4"
00625	     LocalizedKeyName(181)="UnknownB5"
00626	     LocalizedKeyName(182)="UnknownB6"
00627	     LocalizedKeyName(183)="UnknownB7"
00628	     LocalizedKeyName(184)="UnknownB8"
00629	     LocalizedKeyName(185)="UnknownB9"
00630	     LocalizedKeyName(186)="Semicolon"
00631	     LocalizedKeyName(187)="Equals"
00632	     LocalizedKeyName(188)="Comma"
00633	     LocalizedKeyName(189)="Minus"
00634	     LocalizedKeyName(190)="Period"
00635	     LocalizedKeyName(191)="Slash"
00636	     LocalizedKeyName(192)="Tilde"
00637	     LocalizedKeyName(193)="UnknownC1"
00638	     LocalizedKeyName(194)="UnknownC2"
00639	     LocalizedKeyName(195)="UnknownC3"
00640	     LocalizedKeyName(196)="UnknownC4"
00641	     LocalizedKeyName(197)="UnknownC5"
00642	     LocalizedKeyName(198)="UnknownC6"
00643	     LocalizedKeyName(199)="UnknownC7"
00644	     LocalizedKeyName(200)="Joy1"
00645	     LocalizedKeyName(201)="Joy2"
00646	     LocalizedKeyName(202)="Joy3"
00647	     LocalizedKeyName(203)="Joy4"
00648	     LocalizedKeyName(204)="Joy5"
00649	     LocalizedKeyName(205)="Joy6"
00650	     LocalizedKeyName(206)="Joy7"
00651	     LocalizedKeyName(207)="Joy8"
00652	     LocalizedKeyName(208)="Joy9"
00653	     LocalizedKeyName(209)="Joy10"
00654	     LocalizedKeyName(210)="Joy11"
00655	     LocalizedKeyName(211)="Joy12"
00656	     LocalizedKeyName(212)="Joy13"
00657	     LocalizedKeyName(213)="Joy14"
00658	     LocalizedKeyName(214)="Joy15"
00659	     LocalizedKeyName(215)="Joy16"
00660	     LocalizedKeyName(216)="UnknownD8"
00661	     LocalizedKeyName(217)="UnknownD9"
00662	     LocalizedKeyName(218)="UnknownDA"
00663	     LocalizedKeyName(219)="LeftBracket"
00664	     LocalizedKeyName(220)="Backslash"
00665	     LocalizedKeyName(221)="RightBracket"
00666	     LocalizedKeyName(222)="SingleQuote"
00667	     LocalizedKeyName(223)="UnknownDF"
00668	     LocalizedKeyName(224)="JoyX"
00669	     LocalizedKeyName(225)="JoyY"
00670	     LocalizedKeyName(226)="JoyZ"
00671	     LocalizedKeyName(227)="JoyR"
00672	     LocalizedKeyName(228)="MouseX"
00673	     LocalizedKeyName(229)="MouseY"
00674	     LocalizedKeyName(230)="MouseZ"
00675	     LocalizedKeyName(231)="MouseW"
00676	     LocalizedKeyName(232)="JoyU"
00677	     LocalizedKeyName(233)="JoyV"
00678	     LocalizedKeyName(234)="UnknownEA"
00679	     LocalizedKeyName(235)="UnknownEB"
00680	     LocalizedKeyName(236)="MouseWheelUp"
00681	     LocalizedKeyName(237)="MouseWheelDown"
00682	     LocalizedKeyName(238)="Unknown10E"
00683	     LocalizedKeyName(239)="Unknown10F"
00684	     LocalizedKeyName(240)="JoyPovUp"
00685	     LocalizedKeyName(241)="JoyPovDown"
00686	     LocalizedKeyName(242)="JoyPovLeft"
00687	     LocalizedKeyName(243)="JoyPovRight"
00688	     LocalizedKeyName(244)="UnknownF4"
00689	     LocalizedKeyName(245)="UnknownF5"
00690	     LocalizedKeyName(246)="Attn"
00691	     LocalizedKeyName(247)="CrSel"
00692	     LocalizedKeyName(248)="ExSel"
00693	     LocalizedKeyName(249)="ErEof"
00694	     LocalizedKeyName(250)="Play"
00695	     LocalizedKeyName(251)="Zoom"
00696	     LocalizedKeyName(252)="NoName"
00697	     LocalizedKeyName(253)="PA1"
00698	     LocalizedKeyName(254)="OEMClear"
00699	     LabelList(0)="Fire"
00700	     LabelList(1)="Alternate Fire"
00701	     LabelList(2)="Move Forward"
00702	     LabelList(3)="Move Backward"
00703	     LabelList(4)="Turn Left"
00704	     LabelList(5)="Turn Right"
00705	     LabelList(6)="Strafe Left"
00706	     LabelList(7)="Strafe Right"
00707	     LabelList(8)="Jump/Up"
00708	     LabelList(9)="Crouch/Down"
00709	     LabelList(10)="Mouse Look"
00710	     LabelList(11)="Activate Item"
00711	     LabelList(12)="Next Item"
00712	     LabelList(13)="Previous Item"
00713	     LabelList(14)="Look Up"
00714	     LabelList(15)="Look Down"
00715	     LabelList(16)="Center View"
00716	     LabelList(17)="Walk"
00717	     LabelList(18)="Strafe"
00718	     LabelList(19)="Next Weapon"
00719	     LabelList(20)="Throw Weapon"
00720	     LabelList(21)="Feign Death"
00721	     AliasNames(0)="Fire"
00722	     AliasNames(1)="AltFire"
00723	     AliasNames(2)="MoveForward"
00724	     AliasNames(3)="MoveBackward"
00725	     AliasNames(4)="TurnLeft"
00726	     AliasNames(5)="TurnRight"
00727	     AliasNames(6)="StrafeLeft"
00728	     AliasNames(7)="StrafeRight"
00729	     AliasNames(8)="Jump"
00730	     AliasNames(9)="Duck"
00731	     AliasNames(10)="Look"
00732	     AliasNames(11)="InventoryActivate"
00733	     AliasNames(12)="InventoryNext"
00734	     AliasNames(13)="InventoryPrevious"
00735	     AliasNames(14)="LookUp"
00736	     AliasNames(15)="LookDown"
00737	     AliasNames(16)="CenterView"
00738	     AliasNames(17)="Walking"
00739	     AliasNames(18)="Strafe"
00740	     AliasNames(19)="NextWeapon"
00741	     AliasNames(20)="ThrowWeapon"
00742	     AliasNames(21)="FeignDeath"
00743	     OrString=" or "
00744	     CustomizeHelp="Click the blue rectangle and then press the key to bind to this control."
00745	     DefaultsText="Reset"
00746	     DefaultsHelp="Reset all controls to their default settings."
00747	     JoystickText="Joystick"
00748	     JoyXText="X Axis"
00749	     JoyXHelp="Select the behavior for the left-right axis of your joystick."
00750	     JoyXOptions(0)="Strafe Left/Right"
00751	     JoyXOptions(1)="Turn Left/Right"
00752	     JoyXBinding(0)="Axis aStrafe speed=2"
00753	     JoyXBinding(1)="Axis aBaseX speed=0.7"
00754	     JoyYText="Y Axis"
00755	     JoyYHelp="Select the behavior for the up-down axis of your joystick."
00756	     JoyYOptions(0)="Move Forward/Back"
00757	     JoyYOptions(1)="Look Up/Down"
00758	     JoyYBinding(0)="Axis aBaseY speed=2"
00759	     JoyYBinding(1)="Axis aLookup speed=-0.4"
00760	}

End Source Code