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); } }