Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGX11TTF.h
Go to the documentation of this file.
1 // @(#)root/x11ttf:$Id$
2 // Author: Olivier Couet 01/10/02
3 // Author: Fons Rademakers 21/11/98
4 
5 /*************************************************************************
6  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
7  * All rights reserved. *
8  * *
9  * For the licensing terms see $ROOTSYS/LICENSE. *
10  * For the list of contributors see $ROOTSYS/README/CREDITS. *
11  *************************************************************************/
12 
13 #ifndef ROOT_TGX11TTF
14 #define ROOT_TGX11TTF
15 
16 
17 #include "TGX11.h"
18 
19 #include "TTF.h"
20 
21 #include "RConfigure.h"
22 
23 #ifdef R__HAS_XFT
24 class TXftFontHash;
25 #endif
26 
27 class TGX11TTF : public TGX11 {
28 
29 private:
30  enum EAlign { kNone, kTLeft, kTCenter, kTRight, kMLeft, kMCenter, kMRight,
31  kBLeft, kBCenter, kBRight };
32 
33  FT_Vector fAlign; ///< alignment vector
34 #ifdef R__HAS_XFT
35  TXftFontHash *fXftFontHash; ///< hash table for Xft fonts
36 #endif
37 
38  void Align(void);
39  void DrawImage(FT_Bitmap *source, ULong_t fore, ULong_t back, RXImage *xim,
40  Int_t bx, Int_t by);
41  Bool_t IsVisible(Int_t x, Int_t y, UInt_t w, UInt_t h);
42  RXImage *GetBackground(Int_t x, Int_t y, UInt_t w, UInt_t h);
43  void RenderString(Int_t x, Int_t y, ETextMode mode);
44 
45 public:
46  TGX11TTF(const TGX11 &org);
47  virtual ~TGX11TTF() { }
48 
49  Bool_t Init(void *display);
50  void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn,
51  const char *text, ETextMode mode);
52  void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn,
53  const wchar_t *text, ETextMode mode);
54  void SetTextFont(Font_t fontnumber);
55  Int_t SetTextFont(char *fontname, ETextSetMode mode);
56  void SetTextSize(Float_t textsize);
57 
58 #ifdef R__HAS_XFT
59  //---- Methods used text/fonts handling via Xft -----
60  //void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t *recs, Int_t n);
61  FontStruct_t LoadQueryFont(const char *font_name);
62  void DeleteFont(FontStruct_t fs);
63  void DeleteGC(GContext_t gc);
64  void DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y, const char *s, Int_t len);
65  Int_t TextWidth(FontStruct_t font, const char *s, Int_t len);
66  void GetFontProperties(FontStruct_t font, Int_t &max_ascent, Int_t &max_descent);
67  FontH_t GetFontHandle(FontStruct_t fs);
68  FontStruct_t GetGCFont(GContext_t gc);
69  void MapGCFont(GContext_t gc, FontStruct_t font);
70 #endif
71 
72  static void Activate();
73 
74  ClassDef(TGX11TTF,0) //Interface to X11 + TTF font handling
75 };
76 
77 #endif