//======== (C) Copyright 2002 Charles G. Cleveland All rights reserved. ========= // // The copyright to the contents herein is the property of Charles G. Cleveland. // The contents may be used and/or copied only with the written permission of // Charles G. Cleveland, or in accordance with the terms and conditions stipulated in // the agreement/contract under which the contents have been supplied. // // Purpose: // // $Workfile: MarqueeComponent.cpp $ // $Date: 2002/08/16 02:28:55 $ // //------------------------------------------------------------------------------- // $Log: MarqueeComponent.cpp,v $ // Revision 1.6 2002/08/16 02:28:55 Flayra // - Added document headers // //=============================================================================== #include "ui/MarqueeComponent.h" #include "ui/UIUtil.h" #include "cl_dll/hud.h" #include "cl_dll/cl_util.h" MarqueeComponent::MarqueeComponent() { this->mX0 = this->mY0 = 0; this->mX1 = this->mY1 = 0; this->mGammaSlope = 1.0f; // Default color scheme this->setFgColor(0, 255, 0, 0); this->setBgColor(0, 255, 0, 230); } void MarqueeComponent::NotifyGammaChange(float inGammaSlope) { this->mGammaSlope = inGammaSlope; } void MarqueeComponent::paint() { // Draw outline int r, g, b, a; this->getFgColor(r, g, b, a); int theXPos, theYPos; this->getPos(theXPos, theYPos); int theWidth, theHeight; this->getSize(theWidth, theHeight); //vguiSimpleBox(0, 0, theWidth, theHeight, r/this->mGammaSlope, g/this->mGammaSlope, b/this->mGammaSlope, a/this->mGammaSlope); vguiSimpleBox(0, 0, theWidth, theHeight, r/this->mGammaSlope, g/this->mGammaSlope, b/this->mGammaSlope, a); // Top // vguiSimpleLine(0, 0, theWidth, 0, r, g, b, a); // // // Left // vguiSimpleLine(0, 1, 0, theHeight, r, g, b, a); // // // Right // vguiSimpleLine(theWidth, 1, theWidth, theHeight, r, g, b, a); // // // Bottom // vguiSimpleLine(1, theHeight, theWidth, theHeight, r, g, b, a); } void MarqueeComponent::paintBackground() { int r, g, b, a; this->getBgColor(r, g, b, a); int theXPos, theYPos; this->getPos(theXPos, theYPos); int theWidth, theHeight; this->getSize(theWidth, theHeight); //FillRGBA(0, 0, theWidth, theHeight, r/this->mGammaSlope, g/this->mGammaSlope, b/this->mGammaSlope, a/this->mGammaSlope); FillRGBA(0, 0, theWidth, theHeight, r/this->mGammaSlope, g/this->mGammaSlope, b/this->mGammaSlope, a); } void MarqueeComponent::ResetDimensions() { int theMinX = min(this->mX0, this->mX1); int theMinY = min(this->mY0, this->mY1); int theMaxX = max(this->mX0, this->mX1); int theMaxY = max(this->mY0, this->mY1); int theWidth = theMaxX - theMinX; int theHeight = theMaxY - theMinY; ASSERT(theWidth >= 0); ASSERT(theHeight >= 0); this->setPos(theMinX, theMinY); this->setSize(theWidth, theHeight); } void MarqueeComponent::SetStartPos(int inX, int inY) { this->mX0 = inX; this->mY0 = inY; this->ResetDimensions(); } void MarqueeComponent::SetEndPos(int inX, int inY) { this->mX1 = inX; this->mY1 = inY; this->ResetDimensions(); }