//======== (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: AvHTooltip.h $ // $Date: 2002/09/25 20:52:10 $ // //------------------------------------------------------------------------------- // $Log: AvHTooltip.h,v $ // Revision 1.2 2002/09/25 20:52:10 Flayra // - Refactoring // // Revision 1.1 2002/08/02 21:43:47 Flayra // - New files to control tooltips on HUD // //=============================================================================== #ifndef AVH_TOOLTIP_H #define AVH_TOOLTIP_H #include "../types.h" const string kTooltipBoldPreString = ""; class AvHTooltip { public: AvHTooltip(); AvHTooltip(string& inText, float inNormScreenX, float inNormScreenY, bool inCentered = false); virtual ~AvHTooltip(); void Draw(); void DrawBorder(int x, int y, int a); void FadeText(float inTimePassed, bool inFadeDown); int GetA() const; float GetNormalizedScreenX() const; float GetNormalizedScreenY() const; int GetScreenWidth() const; int GetScreenHeight() const; void RecomputeIfNeccessary(); void SetCentered(bool inCentered); void SetDrawBorder(bool inDrawBorder); void SetFadeDownSpeed(int inFadeDownSpeed); void SetFadeUpSpeed(int inFadeUpSpeed); void SetIgnoreFadeForLifetime(bool inIgnoreFadeForLifetime); void SetText(const string& inText); float GetNormalizedMaxWidth() const; void SetNormalizedMaxWidth(float inNormalizedMaxWidth); void SetNormalizedScreenX(float inNormScreenX); void SetNormalizedScreenY(float inNormScreenY); void SetRGB(int inR, int inG, int inB); void SetR(int inR); void SetG(int inG); void SetB(int inB); void SetA(int inA); void SetBackgroundR(int inR); void SetBackgroundG(int inG); void SetBackgroundB(int inB); void SetBackgroundA(int inA); void SetBoldR(int inR); void SetBoldG(int inG); void SetBoldB(int inB); string GetText() { return mText; } private: bool ChopStringOfMaxScreenWidth(int inMaxScreenWidth, string& ioBaseString, string& outChoppedString); void RecomputeTextAndDimensions(); // TODO: Add more info here to indicate what to point out in the world (either an entity, or a position) string mText; string mLocalizedText; StringList mStringList; bool mDrawBorder; int mColorR; int mColorG; int mColorB; int mColorA; int mBoldColorR; int mBoldColorG; int mBoldColorB; int mBackgroundColorR; int mBackgroundColorG; int mBackgroundColorB; int mBackgroundColorA; bool mIgnoreFadeForLifetime; float mLifetime; bool mCentered; bool mNeedsRecomputing; float mNormScreenX; float mNormScreenY; float mNormMaxWidth; int mScreenWidth; int mScreenHeight; int mScreenLineHSpacing; int mScreenLineVSpacing; int mScreenLineHeight; int mFadeDownSpeed; int mFadeUpSpeed; }; #endif