// @(#)root/graf:$Id: TMathText.h 20882 2007-11-19 11:31:26Z rdm $ // Author: Yue Shi Lai 12/12/09 /************************************************************************* * Copyright (C) 2009, Yue Shi Lai. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOT_TMathText #define ROOT_TMathText #ifndef ROOT_Riosfwd #include "Riosfwd.h" #endif #ifndef ROOT_TText #include "TText.h" #endif #ifndef ROOT_TAttFill #include "TAttFill.h" #endif class TMathTextRenderer; class TMathText : public TText, public TAttFill { protected: void *fRenderer; TMathText &operator=(const TMathText &); void Render(const Double_t x, const Double_t y, const Double_t size, const Double_t angle, const Char_t *t, const Int_t length); void GetSize(Double_t &x0, Double_t &y0, Double_t &x1, Double_t &y1, const Double_t size, const Double_t angle, const Char_t *t, const Int_t length); void GetAlignPoint(Double_t &x0, Double_t &y0, const Double_t size, const Double_t angle, const Char_t *t, const Int_t length, const Short_t align); public: enum { kTextNDC = BIT(14) }; TMathText(void); TMathText( Double_t x, Double_t y, const char *text); TMathText(const TMathText &text); virtual ~TMathText(void); void Copy(TObject &text) const; TMathText *DrawMathText( Double_t x, Double_t y, const char *text); void GetBoundingBox( UInt_t &w, UInt_t &h, Bool_t angle = kFALSE); Double_t GetXsize(void); Double_t GetYsize(void); virtual void Paint(Option_t *option = ""); virtual void PaintMathText( Double_t x, Double_t y, Double_t angle, Double_t size, const char *text); virtual void SavePrimitive( std::ostream &out, Option_t *option = ""); friend class TMathTextRenderer; ClassDef(TMathText,1) }; #endif