Class GUIStyleBase extends Object abstract; var Texture2D ItemTex; var() byte MaxFontScale; var byte DefaultFontSize; // Default medium font size of current resolution. var float DefaultHeight; // Default font text size. var transient Canvas Canvas; function InitStyle() { ItemTex = Texture2D(DynamicLoadObject("UI_LevelChevrons_TEX.UI_LevelChevron_Icon_02",class'Texture2D')); if(ItemTex==None) ItemTex = Texture2D'EngineMaterials.DefaultWhiteGrid'; } function RenderFramedWindow(KFGUI_FloatingWindow P); function RenderWindow(KFGUI_Page P); function RenderToolTip(KFGUI_Tooltip TT); function RenderButton(KFGUI_Button B); function RenderEditBox(KFGUI_EditBox E); function RenderScrollBar(KFGUI_ScrollBarBase S); function RenderColumnHeader(KFGUI_ColumnTop C, float XPos, float Width, int Index, bool bFocus, bool bSort); function RenderCheckbox(KFGUI_CheckBox C); function RenderComboBox(KFGUI_ComboBox C); function RenderComboList(KFGUI_ComboSelector C); function RenderRightClickMenu(KFGUI_RightClickMenu C); function Font PickFont(byte i, out float Scaler); function PickDefaultFontSize(float YRes) { local int XL,YL; local string S; DefaultFontSize = 0; if(YRes>800) ++DefaultFontSize; if(YRes>1000) ++DefaultFontSize; //if(YRes>1200) //++DefaultFontSize; //if(YRes>1300) //++DefaultFontSize; S = "ABC"; PickFont(DefaultFontSize,YRes).GetStringHeightAndWidth(S,YL,XL); DefaultHeight = float(YL)*YRes; } final function DrawText(byte Res, string S) { local float Scale; Canvas.Font = PickFont(Res,Scale); Canvas.DrawText(S,,Scale,Scale); } final function DrawCornerTexNU(int SizeX, int SizeY, byte Dir) // Draw non-uniform corner. { switch(Dir) { case 0: // Up-left Canvas.DrawTile(ItemTex,SizeX,SizeY,77,15,-66,58); break; case 1: // Up-right Canvas.DrawTile(ItemTex,SizeX,SizeY,11,15,66,58); break; case 2: // Down-left Canvas.DrawTile(ItemTex,SizeX,SizeY,77,73,-66,-58); break; default: // Down-right Canvas.DrawTile(ItemTex,SizeX,SizeY,11,73,66,-58); } } final function DrawCornerTex(int Size, byte Dir) { switch(Dir) { case 0: // Up-left Canvas.DrawTile(ItemTex,Size,Size,77,15,-66,58); break; case 1: // Up-right Canvas.DrawTile(ItemTex,Size,Size,11,15,66,58); break; case 2: // Down-left Canvas.DrawTile(ItemTex,Size,Size,77,73,-66,-58); break; default: // Down-right Canvas.DrawTile(ItemTex,Size,Size,11,73,66,-58); } } final function DrawWhiteBox(int XS, int YS) { Canvas.DrawTile(ItemTex,XS,YS,19,45,1,1); } final function DrawRectBox(int X, int Y, int XS, int YS, int Edge, optional byte Extrav) { if(Extrav==2) Edge = Min(FMin(Edge,(XS)*0.5),YS);// Verify size. else Edge = Min(FMin(Edge,(XS)*0.5),(YS)*0.5);// Verify size. // Top left Canvas.SetPos(X,Y); DrawCornerTex(Edge,0); if(Extrav<=1) { if(Extrav==0) { // Top right Canvas.SetPos(X+XS-Edge,Y); DrawCornerTex(Edge,1); // Bottom right Canvas.SetPos(X+XS-Edge,Y+YS-Edge); DrawCornerTex(Edge,3); // Fill Canvas.SetPos(X+Edge,Y); DrawWhiteBox(XS-Edge*2,YS); Canvas.SetPos(X,Y+Edge); DrawWhiteBox(Edge,YS-Edge*2); Canvas.SetPos(X+XS-Edge,Y+Edge); DrawWhiteBox(Edge,YS-Edge*2); } else if(Extrav==1) { // Top right Canvas.SetPos(X+XS,Y); DrawCornerTex(Edge,3); // Bottom right Canvas.SetPos(X+XS,Y+YS-Edge); DrawCornerTex(Edge,1); // Fill Canvas.SetPos(X+Edge,Y); DrawWhiteBox(XS-Edge,YS); Canvas.SetPos(X,Y+Edge); DrawWhiteBox(Edge,YS-Edge*2); } // Bottom left Canvas.SetPos(X,Y+YS-Edge); DrawCornerTex(Edge,2); } else { // Top right Canvas.SetPos(X+XS-Edge,Y); DrawCornerTex(Edge,1); // Bottom right Canvas.SetPos(X+XS-Edge,Y+YS); DrawCornerTex(Edge,2); // Bottom left Canvas.SetPos(X,Y+YS); DrawCornerTex(Edge,3); // Fill Canvas.SetPos(X,Y+Edge); DrawWhiteBox(XS,YS-Edge); Canvas.SetPos(X+Edge,Y); DrawWhiteBox(XS-Edge*2,Edge); } }