Core.Object | +--UWindow.UWindowBase | +--UWindow.UWindowWindow | +--UWindow.UWindowDialogControl | +--UWindow.UWindowButton | +--UTMenu.MatchButton
LabelWidth,
LabelHeight
Class
Ladder
UTLadder
LadderWindow
int
MatchIndex
font
MyFont
OtherTexture,
OldOverTexture
color
TextColor
string
UnknownText
bool
bUnknown
CheckMousePassThrough(float X, float Y)
void
Notify(byte E)
Paint(Canvas C, float X, float Y)
SetMatchIndex(int NewIndex)
SetTextColor(color NewColor)
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 }