/** * MobileMenuButton * This is a simple button. It's an image with 2 states * * * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. */ class MobileMenuButton extends MobileMenuObject; /** The 2 images that make up the button. [0] = the untouched, [1] = touched */ var Texture2D Images[2]; /** The UV Coordinates for the images. [0] = the untouched, [1] = touched */ var UVCoords ImagesUVs[2]; /** Holds the color override for the image */ var LinearColor ImageColor; /** Localizable caption for the button */ var string Caption; /** Holds the color for the caption */ var LinearColor CaptionColor; function InitMenuObject(MobilePlayerInput PlayerInput, MobileMenuScene Scene, int ScreenWidth, int ScreenHeight, bool bIsFirstInitialization) { local int i; Super.InitMenuObject(PlayerInput, Scene, ScreenWidth, ScreenHeight,bIsFirstInitialization); for (i=0;i<2;i++) { if (!ImagesUVs[i].bCustomCoords && Images[i] != none) { ImagesUVs[i].U = 0.0f; ImagesUVs[i].V = 0.0f; ImagesUVs[i].UL = Images[i].SizeX; ImagesUVs[i].VL = Images[i].SizeY; } } } /** * Render the widget * * @param Canvas - the canvas object for drawing */ function RenderObject(canvas Canvas, float DeltaTime) { local int Idx; local LinearColor DrawColor; Idx = (bIsTouched || bIsHighlighted) ? 1 : 0; SetCanvasPos(Canvas); Drawcolor = ImageColor; Drawcolor.A *= Opacity * OwnerScene.Opacity; Canvas.DrawTile(Images[Idx], Width, Height,ImagesUVs[Idx].U, ImagesUVs[Idx].V, ImagesUVs[Idx].UL, ImagesUVs[Idx].VL, DrawColor); RenderCaption(Canvas); } /** * Render the optional caption on top of the widget * * @param Canvas - the canvas object for drawing */ function RenderCaption(canvas Canvas) { local float UL,VL; if (Caption != "") { Canvas.Font = OwnerScene.SceneCaptionFont; Canvas.TextSize(Caption,UL,VL); SetCanvasPos(Canvas, (Width / 2) - (UL/2), (Height /2) - (VL/2)); Canvas.DrawColor.R = byte(CaptionColor.R * 255.0); Canvas.DrawColor.G = byte(CaptionColor.G * 255.0); Canvas.DrawColor.B = byte(CaptionColor.B * 255.0); Canvas.DrawColor.A = byte(CaptionColor.A * 255.0); Canvas.DrawText(Caption); } } defaultproperties { ImageColor=(r=1.0,g=1.0,b=1.0,a=1.0) CaptionColor=(r=0.0,g=0.0,b=0.0,a=1.0) bIsActive=true; }