#ifndef ROOT_TGString #define ROOT_TGString //+SEQ,CopyRight,T=NOINCLUDE. ////////////////////////////////////////////////////////////////////////// // // // TGString and TGHotString // // // // TGString wraps a TString and adds some graphics routines like // // drawing, size of string on screen depending on font, etc. // // TGHotString is a string with a "hot" character unerlined. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TString //*KEEP,TString. #include "TString.h" //*KEND. #endif #ifndef ROOT_GuiTypes //*KEEP,GuiTypes. #include "GuiTypes.h" //*KEND. #endif class TGString { protected: TString fString; // embedded string public: TGString() { } TGString(TString s) { fString = s; } TGString(const char *s) { fString = s; } TGString(const TGString *s) { fString = s->fString; } virtual ~TGString() { } Int_t GetLength() const { return fString.Length(); } const char *GetString() const { return (const char *)fString; } virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y); virtual void DrawWrapped(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, FontStruct_t font); virtual Int_t GetLines(FontStruct_t font, UInt_t w); ClassDef(TGString,0) // Graphics string }; class TGHotString : public TGString { protected: char fHotChar; // hot character Int_t fHotPos; // position of hot character GContext_t fLastGC; // context used during last drawing Int_t fOff1; // variable used during drawing (cache) Int_t fOff2; // variable used during drawing (cache) void DrawHotChar(Drawable_t id, GContext_t gc, Int_t x, Int_t y); public: TGHotString(const char *s); Int_t GetHotChar() const { return fHotChar; } virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y); virtual void DrawWrapped(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, FontStruct_t font); ClassDef(TGHotString,0) // Graphics string with hot character }; #endif