UTMenu
Class MatchButton

source: e:\games\UnrealTournament\UTMenu\Classes\MatchButton.uc
Core.Object
   |
   +--UWindow.UWindowBase
      |
      +--UWindow.UWindowWindow
         |
         +--UWindow.UWindowDialogControl
            |
            +--UWindow.UWindowButton
               |
               +--UTMenu.MatchButton
Direct Known Subclasses:None

class MatchButton
extends UWindow.UWindowButton


Variables
 LabelWidth, LabelHeight
 Class Ladder
 UTLadder LadderWindow
 int MatchIndex
 font MyFont
 OtherTexture, OldOverTexture
 color TextColor
 string UnknownText
 bool bUnknown


Function Summary
 bool CheckMousePassThrough(float X, float Y)
 void Notify(byte E)
 void Paint(Canvas C, float X, float Y)
 void SetMatchIndex(int NewIndex)
 void SetTextColor(color NewColor)



Source Code


00001	class MatchButton extends UWindowButton;
00002	
00003	var font MyFont;
00004	var color TextColor;
00005	
00006	var Class<Ladder> Ladder;
00007	var int MatchIndex;
00008	
00009	var bool bUnknown;
00010	var localized string UnknownText;
00011	
00012	var UTLadder LadderWindow;
00013	
00014	var float LabelWidth, LabelHeight;
00015	
00016	var texture OtherTexture, OldOverTexture;
00017	
00018	function bool CheckMousePassThrough(float X, float Y)
00019	{
00020		if ((X > LabelWidth) && (LabelWidth != 0))
00021			return true;
00022		if ((Y > LabelHeight) && (LabelHeight != 0))
00023			return true;
00024	
00025		return false;
00026	}
00027	
00028	function Paint(Canvas C, float X, float Y)
00029	{
00030		local float Wx, Hy, XL, YL, XMod, YMod;
00031		local string MapName;
00032		local int W, H;
00033	
00034		W = Root.WinWidth / 4;
00035		H = W;
00036	
00037		if(W > 256 || H > 256)
00038		{
00039			W = 256;
00040			H = 256;
00041		}
00042	
00043		XMod = 4*W;
00044		YMod = 3*H;
00045	
00046		Super.Paint(C, X, Y);
00047	
00048		MapName = Ladder.Static.GetMapTitle(MatchIndex);
00049		C.DrawColor = TextColor;
00050		C.Font = MyFont;
00051		if (bUnknown)
00052		{
00053			C.DrawColor.R = 255;
00054			C.DrawColor.G = 255;
00055			C.DrawColor.B = 0;
00056			MapName = UnknownText;
00057		}
00058		if (LabelWidth == 0)
00059			LabelWidth = WinWidth;
00060	
00061		if (LabelHeight == 0)
00062			LabelHeight = WinHeight;
00063	
00064		TextSize(C, MapName, XL, YL);
00065		if ( XL > LabelWidth - (14.0/1024 * XMod) )
00066		{
00067			C.Font = class'UTLadderStub'.Static.GetStubClass().Static.GetSmallFont(Root);
00068			TextSize(C, MapName, XL, YL);
00069			if ( XL > LabelWidth - (14.0/1024 * XMod) )
00070			{
00071				// first remove leading "the"
00072				if ( Left(MapName, 4) ~= "The ")
00073				{
00074					MapName = Right(MapName, Len(MapName) - 4);
00075					TextSize(C, MapName, XL, YL);
00076				}
00077				MapName = Left(MapName, Len(MapName) * LabelWidth/XL);
00078			}
00079		}
00080	
00081		TextSize(C, MapName, Wx, Hy);
00082		ClipText(C, (LabelWidth - Wx)/2, (LabelHeight - Hy)/2, MapName);
00083		C.DrawColor.R = 255;
00084		C.DrawColor.G = 255;
00085		C.DrawColor.B = 255;
00086	}
00087	
00088	
00089	function SetTextColor(color NewColor)
00090	{
00091		TextColor = NewColor;
00092	}
00093	
00094	function SetLadder(Class<Ladder> NewLadder)
00095	{
00096		Ladder = NewLadder;
00097	}
00098	
00099	function SetMatchIndex(int NewIndex)
00100	{
00101		MatchIndex = NewIndex;
00102	}
00103	
00104	function Notify(byte E)
00105	{
00106		if (!bDisabled)
00107			LadderWindow.Notify(Self, E);
00108	}
00109	
00110	defaultproperties
00111	{
00112	     UnknownText="? Unknown ?"
00113	     bIgnoreLDoubleClick=False
00114	}

End Source Code