ROOT logo
// @(#)root/graf:$Id$
// Author: Nicolas Brun   12/12/94

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TText
#define ROOT_TText


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TText                                                                //
//                                                                      //
// Text.                                                                //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#ifndef ROOT_TAttText
#include "TAttText.h"
#endif
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TAttBBox2D
#include "TAttBBox2D.h"
#endif
#ifndef ROOT_TPoint
#include "TPoint.h"
#endif
#ifndef ROOT_GuiTypes
#include "GuiTypes.h"
#endif


class TText : public TNamed, public TAttText, public TAttBBox2D {

protected:
   Double_t     fX;           // X position of text (left,center,etc..)
   Double_t     fY;           // Y position of text (left,center,etc..)
   void         *fWcsTitle;   //!Used by TMathText

public:
   // TText status bits
   enum { kTextNDC = BIT(14) };

   TText();
   TText(Double_t x, Double_t y, const char *text);
   TText(Double_t x, Double_t y, const wchar_t *text);
   TText(const TText &text);
   virtual ~TText();
   void             Copy(TObject &text) const;
   virtual Int_t    DistancetoPrimitive(Int_t px, Int_t py);
   virtual TText   *DrawText(Double_t x, Double_t y, const char *text);
   virtual TText   *DrawText(Double_t x, Double_t y, const wchar_t *text);
   virtual TText   *DrawTextNDC(Double_t x, Double_t y, const char *text);
   virtual TText   *DrawTextNDC(Double_t x, Double_t y, const wchar_t *text);
   virtual void     ExecuteEvent(Int_t event, Int_t px, Int_t py);

   virtual void     GetControlBox(Int_t x, Int_t y, Double_t theta,
                                  Int_t cBoxX[4], Int_t cBoxY[4]);
   Double_t         GetX() const  { return fX; }
   virtual void     GetBoundingBox(UInt_t &w, UInt_t &h, Bool_t angle = kFALSE);
   virtual void     GetTextAscentDescent(UInt_t &a, UInt_t &d, const char *text) const;
   virtual void     GetTextAscentDescent(UInt_t &a, UInt_t &d, const wchar_t *text) const;
   virtual void     GetTextExtent(UInt_t &w, UInt_t &h, const char *text) const;
   virtual void     GetTextExtent(UInt_t &w, UInt_t &h, const wchar_t *text) const;
   virtual void     GetTextAdvance(UInt_t &a, const char *text, const Bool_t kern=kTRUE) const;
   const void *     GetWcsTitle(void) const;
   Double_t         GetY() const  { return fY; }

   virtual void     ls(Option_t *option="") const;
   virtual void     Paint(Option_t *option="");
   virtual void     PaintControlBox(Int_t x, Int_t y, Double_t theta);
   virtual void     PaintText(Double_t x, Double_t y, const char *text);
   virtual void     PaintText(Double_t x, Double_t y, const wchar_t *text);
   virtual void     PaintTextNDC(Double_t u, Double_t v, const char *text);
   virtual void     PaintTextNDC(Double_t u, Double_t v, const wchar_t *text);
   virtual void     Print(Option_t *option="") const;
   virtual void     SavePrimitive(std::ostream &out, Option_t *option = "");
   virtual void     SetMbTitle(const wchar_t *title=L""); // *MENU*
   virtual void     SetNDC(Bool_t isNDC=kTRUE);
   virtual void     SetText(Double_t x, Double_t y, const char *text) {fX=x; fY=y; SetTitle(text);} // *MENU* *ARGS={x=>fX,y=>fY,text=>fTitle}
   virtual void     SetText(Double_t x, Double_t y, const wchar_t *text) {fX=x; fY=y; SetMbTitle(text);}
   virtual void     SetX(Double_t x) { fX = x; } // *MENU*
   virtual void     SetY(Double_t y) { fY = y; } // *MENU*

   virtual Rectangle_t  GetBBox();
   virtual TPoint       GetBBoxCenter();
   virtual void         SetBBoxCenter(const TPoint &p);
   virtual void         SetBBoxCenterX(const Int_t x);
   virtual void         SetBBoxCenterY(const Int_t y);
   virtual void         SetBBoxX1(const Int_t x); //Not Implemented
   virtual void         SetBBoxX2(const Int_t x); //Not Implemented
   virtual void         SetBBoxY1(const Int_t y); //Not Implemented
   virtual void         SetBBoxY2(const Int_t y); //Not Implemented

   ClassDef(TText,3)  //Text
};

#endif
 TText.h:1
 TText.h:2
 TText.h:3
 TText.h:4
 TText.h:5
 TText.h:6
 TText.h:7
 TText.h:8
 TText.h:9
 TText.h:10
 TText.h:11
 TText.h:12
 TText.h:13
 TText.h:14
 TText.h:15
 TText.h:16
 TText.h:17
 TText.h:18
 TText.h:19
 TText.h:20
 TText.h:21
 TText.h:22
 TText.h:23
 TText.h:24
 TText.h:25
 TText.h:26
 TText.h:27
 TText.h:28
 TText.h:29
 TText.h:30
 TText.h:31
 TText.h:32
 TText.h:33
 TText.h:34
 TText.h:35
 TText.h:36
 TText.h:37
 TText.h:38
 TText.h:39
 TText.h:40
 TText.h:41
 TText.h:42
 TText.h:43
 TText.h:44
 TText.h:45
 TText.h:46
 TText.h:47
 TText.h:48
 TText.h:49
 TText.h:50
 TText.h:51
 TText.h:52
 TText.h:53
 TText.h:54
 TText.h:55
 TText.h:56
 TText.h:57
 TText.h:58
 TText.h:59
 TText.h:60
 TText.h:61
 TText.h:62
 TText.h:63
 TText.h:64
 TText.h:65
 TText.h:66
 TText.h:67
 TText.h:68
 TText.h:69
 TText.h:70
 TText.h:71
 TText.h:72
 TText.h:73
 TText.h:74
 TText.h:75
 TText.h:76
 TText.h:77
 TText.h:78
 TText.h:79
 TText.h:80
 TText.h:81
 TText.h:82
 TText.h:83
 TText.h:84
 TText.h:85
 TText.h:86
 TText.h:87
 TText.h:88
 TText.h:89
 TText.h:90
 TText.h:91
 TText.h:92
 TText.h:93
 TText.h:94
 TText.h:95
 TText.h:96
 TText.h:97
 TText.h:98
 TText.h:99
 TText.h:100
 TText.h:101
 TText.h:102
 TText.h:103
 TText.h:104
 TText.h:105
 TText.h:106
 TText.h:107