class ScrnGUIWeaponBar extends GUIProgressBar;

var bool bHighlighted;
var color HighlightColor;
var color CaptionColor;
var float CaptionMargin; // margin in % of bar width, if CaptionAlign = TXTA_Left or TXTA_Right

var private color OriginalBarColor;

function InitComponent( GUIController MyController, GUIComponent MyOwner )
{
    Super.InitComponent(MyController,MyOwner);
    
    OriginalBarColor = BarColor;
}

function SetHighlight(bool bValue)
{
    bHighlighted = bValue;
    if ( !bHighlighted )
        BarColor = OriginalBarColor;
    else
        BarColor = HighlightColor;
}

function InternalOnRendered(canvas Canvas)
{
    local float w, h;
    //ClientBounds[0]

    if ( !bVisible )
        return;
        
    Canvas.DrawColor = CaptionColor;
    Canvas.StrLen(Caption, w, h);
    switch ( CaptionAlign ) {
        case TXTA_Left:
            Canvas.SetPos(ClientBounds[0] + (ClientBounds[2] - ClientBounds[0]) * CaptionMargin, ClientBounds[1] + (ClientBounds[3] - ClientBounds[1] - h) / 2);
            break;
        case TXTA_Right:
            Canvas.SetPos(ClientBounds[0] + (ClientBounds[2] - ClientBounds[0]) * (1.0 - CaptionMargin) - w, ClientBounds[1] + (ClientBounds[3] - ClientBounds[1] - h) / 2);
            break;
        default:
            Canvas.SetPos(ClientBounds[0] + (ClientBounds[2] - ClientBounds[0] - w) / 2, ClientBounds[1] + (ClientBounds[3] - ClientBounds[1] - h) / 2);
    }
    Canvas.DrawText(Caption);
}


/*
function ResetColor()
{
    BarColor.R=255;
    BarColor.G=255;
    BarColor.B=255;
    BarColor.A=255;
}
*/

defaultproperties
{
     HighlightColor=(B=128,G=192,R=128,A=255)
     CaptionColor=(B=192,G=192,R=192,A=255)
     CaptionMargin=0.050000
     BarBack=Texture'KF_InterfaceArt_tex.Menu.Innerborder_transparent'
     BarTop=Texture'InterfaceArt_tex.Menu.progress_bar'
     BarColor=(B=128,G=128,R=128)
     CaptionWidth=0.000000
     CaptionAlign=TXTA_Center
     ValueRightWidth=0.000000
     bShowValue=False
     FontScale=FNS_Small
     bCaptureMouse=True
     Begin Object Class=GUIToolTip Name=GUIButtonToolTip
     End Object
     ToolTip=GUIToolTip'XInterface.GUIButton.GUIButtonToolTip'

     OnRendered=ScrnGUIWeaponBar.InternalOnRendered
}
