Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGString.h
Go to the documentation of this file.
1 // @(#)root/gui:$Id$
2 // Author: Fons Rademakers 05/01/98
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGString
13 #define ROOT_TGString
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TGString and TGHotString //
19 // //
20 // TGString wraps a TString and adds some graphics routines like //
21 // drawing, size of string on screen depending on font, etc. //
22 // TGHotString is a string with a "hot" character unerlined. //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 
26 #include "TString.h"
27 #include "GuiTypes.h"
28 
29 
30 class TGString : public TString {
31 
32 public:
33  TGString() : TString() { }
34  TGString(const char *s) : TString(s) { }
35  TGString(Int_t number) : TString() { *this += number; }
36  TGString(const TGString *s);
37  virtual ~TGString() { }
38 
39  Int_t GetLength() const { return Length(); }
40  const char *GetString() const { return Data(); }
41  virtual void SetString(const char *s) { *this = s; }
42 
43  virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y);
44  virtual void DrawWrapped(Drawable_t id, GContext_t gc,
45  Int_t x, Int_t y, UInt_t w, FontStruct_t font);
46  virtual Int_t GetLines(FontStruct_t font, UInt_t w);
47 
48  ClassDef(TGString,0) // Graphics string
49 };
50 
51 
52 class TGHotString : public TGString {
53 
54 protected:
55  char fHotChar; // hot character
56  Int_t fHotPos; // position of hot character
57 
58  GContext_t fLastGC; // context used during last drawing
59  Int_t fOff1; // variable used during drawing (cache)
60  Int_t fOff2; // variable used during drawing (cache)
61 
62  void DrawHotChar(Drawable_t id, GContext_t gc, Int_t x, Int_t y);
63 
64 public:
65  TGHotString(const char *s);
66 
67  Int_t GetHotChar() const { return fHotChar; }
68  Int_t GetHotPos() const { return fHotPos; }
69  virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y);
70  virtual void DrawWrapped(Drawable_t id, GContext_t gc,
71  Int_t x, Int_t y, UInt_t w, FontStruct_t font);
72 
73  ClassDef(TGHotString,0) // Graphics string with hot character
74 };
75 
76 #endif