Class ClassicStyle extends KF2Style; function RenderFramedWindow( KFGUI_FloatingWindow P ) { local int XS,YS,TitleHeight; local float XL, YL, FontScale; XS = Canvas.ClipX-Canvas.OrgX; YS = Canvas.ClipY-Canvas.OrgY; TitleHeight = DefaultHeight; if( P.bWindowFocused ) Canvas.SetDrawColor(105,105,105,255); else Canvas.SetDrawColor(85,85,85,P.FrameOpacity); // Frame Header Canvas.SetPos(0, 0); Canvas.DrawTileStretched(TabTextures[`TAB_TOP],XS,TitleHeight,0,0,128,16); // Frame itself. Canvas.SetPos(0, TitleHeight); Canvas.DrawTileStretched(BorderTextures[`BOX_SMALL_SLIGHTTRANSPARENT],XS,YS-TitleHeight,0,0,128,128); // Title. if( P.WindowTitle!="" ) { Canvas.Font = PickFont(FontScale); Canvas.TextSize(P.WindowTitle,XL,YL,FontScale,FontScale); Canvas.SetDrawColor(250,250,250,255); Canvas.SetPos((XS*0.5)-(XL*0.5),0); Canvas.DrawText(P.WindowTitle,,FontScale,FontScale); } } function RenderWindow( KFGUI_Page P ) { local int XS,YS; XS = Canvas.ClipX-Canvas.OrgX; YS = Canvas.ClipY-Canvas.OrgY; // Frame itself. if( P.bWindowFocused ) Canvas.SetDrawColor(105,105,105,255); else Canvas.SetDrawColor(85,85,85,P.FrameOpacity); Canvas.SetPos(0, 0); Canvas.DrawTileStretched(BorderTextures[`BOX_SMALL_SLIGHTTRANSPARENT],XS,YS,0,0,128,128); } function RenderToolTip( KFGUI_Tooltip TT ) { local int i; local float X,Y,XS,YS,TX,TY,TS,DefFontHeight; Canvas.Font = PickFont(TS); // First compute textbox size. TY = DefaultHeight*TT.Lines.Length; for( i=0; iTT.Owner.ScreenSize.X ) X = TT.Owner.ScreenSize.X-TX; if( (Y+TY)>TT.Owner.ScreenSize.Y ) Y = TT.CompPos[1]-TY; if( TT.CurrentAlpha<255 ) TT.CurrentAlpha = Min(TT.CurrentAlpha+25,255); // Reset clipping. Canvas.SetOrigin(0,0); Canvas.SetClip(TT.Owner.ScreenSize.X,TT.Owner.ScreenSize.Y); // Draw frame. Canvas.SetDrawColor(115,115,115,TT.CurrentAlpha); Canvas.SetPos(X-2,Y-2); DrawBoxHollow(X-2,Y-2,TX+4,TY+4,2); Canvas.SetDrawColor(5,5,5,TT.CurrentAlpha); Canvas.SetPos(X,Y); DrawWhiteBox(TX,TY); DefFontHeight = DefaultHeight; // Draw text. Canvas.SetDrawColor(255,255,255,TT.CurrentAlpha); X+=TOOLTIP_BORDER; Y+=TOOLTIP_BORDER; for( i=0; i0.f && X0.f && Y=YP && Y<=(YP+YL) ) { bCheckMouse = false; C.CurrentRow = i; Canvas.SetPos(4.f,YP); Canvas.SetDrawColor(128,48,48,255); DrawWhiteBox(C.CompPos[2]-(Edge*2.f),YL); } Canvas.SetPos(Edge,YP); if( i==C.Combo.SelectedIndex ) Canvas.DrawColor = C.Combo.SelectedTextColor; else Canvas.DrawColor = C.Combo.TextColor; Canvas.DrawText(C.Combo.Values[i],,C.Combo.TextScale,C.Combo.TextScale,C.Combo.TextFontInfo); YP+=YL; } Canvas.PopMaskRegion(); if( C.OldRow!=C.CurrentRow ) { C.OldRow = C.CurrentRow; C.PlayMenuSound(MN_DropdownChange); } } function RenderRightClickMenu( KFGUI_RightClickMenu C ) { local float X,Y,XL,YL,YP,Edge,TextScale; local int i; local bool bCheckMouse; local string S; // Draw background. Edge = C.EdgeSize; DrawOutlinedBox(0.f,0.f,C.CompPos[2],C.CompPos[3],Edge,C.BoxColor,C.OutlineColor); // While rendering, figure out mouse focus row. X = C.Owner.MousePosition.X - Canvas.OrgX; Y = C.Owner.MousePosition.Y - Canvas.OrgY; bCheckMouse = (X>0.f && X0.f && Y=YP && Y<=(YP+YL) ) { bCheckMouse = false; C.CurrentRow = i; Canvas.SetPos(Edge,YP); Canvas.SetDrawColor(128,0,0,255); DrawWhiteBox(C.CompPos[2]-(Edge*2.f),YL); } Canvas.SetPos(Edge*6,YP); if( C.ItemRows[i].bSplitter ) Canvas.SetDrawColor(255,255,255,255); else { if( C.ItemRows[i].bDisabled ) Canvas.SetDrawColor(148,148,148,255); else Canvas.SetDrawColor(248,248,248,255); } Canvas.DrawText(S,,TextScale,TextScale); YP+=YL; } Canvas.PopMaskRegion(); if( C.OldRow!=C.CurrentRow ) { C.OldRow = C.CurrentRow; C.PlayMenuSound(MN_FocusHover); } } function RenderButton( KFGUI_Button B ) { local float XL,YL,TS,AX,AY,GamepadTexSize; local Texture2D Mat, ButtonTex; local bool bDrawOverride; bDrawOverride = B.DrawOverride(Canvas, B); if( !bDrawOverride ) { if( B.bDisabled ) Mat = ButtonTextures[`BUTTON_DISABLED]; else if( B.bPressedDown ) Mat = ButtonTextures[`BUTTON_PRESSED]; else if( B.bFocused || B.bIsHighlighted ) Mat = ButtonTextures[`BUTTON_HIGHLIGHTED]; else Mat = ButtonTextures[`BUTTON_NORMAL]; Canvas.SetPos(0.f,0.f); Canvas.DrawTileStretched(Mat,B.CompPos[2],B.CompPos[3],0,0,32,32); if( B.OverlayTexture.Texture!=None ) { Canvas.SetPos(0.f,0.f); Canvas.DrawTile(B.OverlayTexture.Texture,B.CompPos[2],B.CompPos[3],B.OverlayTexture.U,B.OverlayTexture.V,B.OverlayTexture.UL,B.OverlayTexture.VL); } } if( B.ButtonText!="" ) { Canvas.Font = MainFont; GamepadTexSize = B.CompPos[3] / 1.25; TS = GetFontScaler(); TS *= B.FontScale; while( true ) { Canvas.TextSize(B.ButtonText,XL,YL,TS,TS); if( XL<(B.CompPos[2]*0.9) && YL<(B.CompPos[3]*0.9) ) break; TS -= 0.001; } Canvas.SetPos((B.CompPos[2]-XL)*0.5,(B.CompPos[3]-YL)*0.5); if( B.bDisabled ) Canvas.DrawColor = B.TextColor*0.5f; else Canvas.DrawColor = B.TextColor; Canvas.DrawText(B.ButtonText,,TS,TS,B.TextFontInfo); if( B.GetUsingGamepad() ) { ButtonTex = Texture2D(DynamicLoadObject("UI_Controller."$B.GamepadButtonName$"_Asset", class'Texture2D')); if( ButtonTex != None ) { B.GetRealtivePos(AX, AY); while( (Canvas.CurX-(GamepadTexSize*1.25))