#ifndef ROOT_TGLAnnotation
#define ROOT_TGLAnnotation
#include "TGLOverlay.h"
#include "TGLUtil.h"
#include "TGLFontManager.h"
class TGLViewer;
class TGLViewerBase;
class TGLFont;
class TGTextEdit;
class TGMainFrame;
class TGLAnnotation : public TGLOverlayElement
{
private:
TGLAnnotation(const TGLAnnotation&);
TGLAnnotation& operator=(const TGLAnnotation&);
void MakeEditor();
Float_t fPosX;
Float_t fPosY;
Int_t fMouseX, fMouseY;
Bool_t fInDrag;
Float_t fDrawW, fDrawH;
Float_t fDrawY;
TGLVector3 fPointer;
Bool_t fActive;
TGMainFrame *fMainFrame;
TGTextEdit *fTextEdit;
static Color_t fgBackColor;
static Color_t fgTextColor;
protected:
TGLViewer *fParent;
TString fText;
Float_t fTextSize;
TGLFont fFont;
TGLFont fMenuFont;
TGLFont::ETextAlignH_e fTextAlign;
Color_t fBackColor;
Color_t fTextColor;
Char_t fTransparency;
Bool_t fDrawRefLine;
Bool_t fUseColorSet;
public:
TGLAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Float_t posy);
TGLAnnotation(TGLViewerBase *parent, const char *text, Float_t posx, Float_t posy, TGLVector3 ref);
virtual ~TGLAnnotation();
void SetTransparency(Char_t x) { fTransparency = x;}
Char_t GetTransparency() const { return fTransparency;}
void SetUseColorSet(Bool_t x) { fUseColorSet = x; }
Bool_t GetUseColorSet() const { return fUseColorSet;}
void SetBackColor(Color_t x) { fBackColor = x;}
Color_t GetBackColor() const { return fBackColor;}
void SetTextColor(Color_t x) { fTextColor = x; }
Color_t GetTextColor() const { return fTextColor;}
void SetTextSize(Float_t x) { fTextSize = x; }
Float_t GetTextSize() const { return fTextSize;}
TGLFont::ETextAlignH_e GetTextAlign() const { return fTextAlign; }
void SetTextAlign(TGLFont::ETextAlignH_e a) { fTextAlign = a; }
virtual Bool_t MouseEnter(TGLOvlSelectRecord& selRec);
virtual Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec,
Event_t* event);
virtual void MouseLeave();
void CloseEditor();
void UpdateText();
virtual void Render(TGLRnrCtx& rnrCtx);
ClassDef(TGLAnnotation, 0);
};
#endif