Logo ROOT  
Reference Guide
TGQuartz.h
Go to the documentation of this file.
1// @(#)root/graf2d:$Id$
2// Author: Olivier Couet and Timur Pocheptsov 23/01/2012
3
4/*************************************************************************
5 * Copyright (C) 1995-2011, 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_TGQuartz
13#define ROOT_TGQuartz
14
15#include <vector>
16
17#include "TGCocoa.h"
18#include "TPoint.h"
19#include "TTF.h"
20
21/** \class TGQuartz
22\ingroup cocoa
23
24This is non-GUI part of TVirtualX interface, implemented for
25MacOS X, using CoreGraphics (Quartz).
26*/
27
28class TGQuartz : public TGCocoa {
29private:
32
33 FT_Vector fAlign; // alignment vector
34public:
35 TGQuartz();
36 TGQuartz(const char *name, const char *title);
37
38 //Final-overriders for TVirtualX.
39 virtual void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2,
41 virtual void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2,
42 Int_t nx, Int_t ny, Int_t *ic);
43 virtual void DrawFillArea(Int_t n, TPoint *xy);
44
45 using TGCocoa::DrawLine;//There is a GUI version of DrawLine.
46
47 virtual void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2);
48 virtual void DrawPolyLine(Int_t n, TPoint *xy);
49 virtual void DrawPolyMarker(Int_t n, TPoint *xy);
50 virtual void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn,
51 const char *text, ETextMode mode);
52 virtual void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn,
53 const wchar_t *text, ETextMode mode);
54
55 //I have to override these setters, since they are alredy overriden
56 //in TVirtualX (originally, they are declared in TAttXXX classes)
57 //and do nothing in TVirtualX (though, they are implemented
58 //correctly in TAttXXX classes).
59 virtual void SetFillColor(Color_t cindex);
60 virtual void SetFillStyle(Style_t style);
61 virtual void SetLineColor(Color_t cindex);
62 virtual void SetLineStyle(Style_t linestyle);
63 virtual void SetLineWidth(Width_t width);
64 virtual void SetMarkerColor(Color_t cindex);
65 virtual void SetMarkerSize(Float_t markersize);
67 virtual void SetOpacity(Int_t percent);
68 virtual void SetTextAlign(Short_t talign=11);
69 virtual void SetTextColor(Color_t cindex);
70 virtual void SetTextFont(Font_t fontnumber);
72 virtual void SetTextSize(Float_t textsize);
73
74 virtual void GetTextExtent(UInt_t &w, UInt_t &h, char *text);
75 virtual Int_t GetFontAscent() const;
76 virtual Int_t GetFontAscent(const char *text) const;
77 virtual Int_t GetFontDescent() const;
78 virtual Int_t GetFontDescent(const char *text) const;
79 virtual Float_t GetTextMagnitude();
80
81private:
82
83 //Unfortunately, I have to convert from
84 //top-left to bottom-left corner system.
85 std::vector<TPoint> fConvertedPoints;
86
87 //Lines with AA can be quite different
88 //from what we always had with X11.
89 //Now this is a switch in our configuration file (system.rootrc),
90 //so it can be disabled. This flag affects _only_ pad's graphics,
91 //GUI graphics is special and different. AA for fill area has a special
92 // switch because it is better to have it off by default.
93 bool fUseAA;
95
96 void AlignTTFString();
99 //I have to use void * instead of QuartzPixmap * because of CINT :(
100 void DrawFTGlyphIntoPixmap(void *pixmap, FT_Bitmap *source, ULong_t fore, ULong_t back, Int_t bx, Int_t by);
101
102 void SetAA();
103 void *GetSelectedDrawableChecked(const char *calledFrom) const;
104
105 TGQuartz(const TGQuartz &rhs);
107
108 ClassDef(TGQuartz, 0);//2D non-GUI graphics for Mac OSX.
109};
110
111#endif
#define h(i)
Definition: RSha256.hxx:106
short Style_t
Definition: RtypesCore.h:89
short Color_t
Definition: RtypesCore.h:92
short Width_t
Definition: RtypesCore.h:91
float Float_t
Definition: RtypesCore.h:57
short Font_t
Definition: RtypesCore.h:88
short Short_t
Definition: RtypesCore.h:39
unsigned long ULong_t
Definition: RtypesCore.h:55
#define ClassDef(name, id)
Definition: Rtypes.h:335
Option_t Option_t cindex
Option_t Option_t mgn
Option_t Option_t fontnumber
Option_t Option_t markerstyle
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t textsize
Option_t Option_t TPoint TPoint angle
Option_t Option_t TPoint xy
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char fontname
Option_t Option_t width
Option_t Option_t TPoint TPoint percent
Option_t Option_t style
Option_t Option_t TPoint TPoint const char text
Option_t Option_t TPoint TPoint const char y1
char name[80]
Definition: TGX11.cxx:110
This class implements TVirtualX interface for MacOS X, using Cocoa and Quartz 2D.
Definition: TGCocoa.h:58
virtual void DrawLine(Drawable_t wid, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2)
Uses the components of the specified GC to draw a line between the specified set of points (x1,...
Definition: TGCocoa.mm:1745
This is non-GUI part of TVirtualX interface, implemented for MacOS X, using CoreGraphics (Quartz).
Definition: TGQuartz.h:28
virtual void DrawPolyMarker(Int_t n, TPoint *xy)
Draws "n" markers with the current attributes at position [x,y].
Definition: TGQuartz.mm:343
virtual void SetTextAlign(Short_t talign=11)
Sets the text alignment.
Definition: TGQuartz.mm:668
virtual Int_t GetFontAscent() const
Returns the ascent of the current font (in pixels).
Definition: TGQuartz.mm:509
virtual Float_t GetTextMagnitude()
Returns the current font magnification factor.
Definition: TGQuartz.mm:592
virtual void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode)
Draws a box between [x1,y1] and [x2,y2] according to the "mode".
Definition: TGQuartz.mm:119
bool fUseFAAA
Definition: TGQuartz.h:94
Bool_t IsTTFStringVisible(Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition: TGQuartz.mm:782
virtual void SetLineWidth(Width_t width)
Sets the line width.
Definition: TGQuartz.mm:615
virtual void SetTextColor(Color_t cindex)
Sets the color index "cindex" for text.
Definition: TGQuartz.mm:679
virtual void SetMarkerSize(Float_t markersize)
Sets marker size index.
Definition: TGQuartz.mm:649
@ kMRight
Definition: TGQuartz.h:31
@ kTLeft
Definition: TGQuartz.h:30
@ kBLeft
Definition: TGQuartz.h:31
@ kBCenter
Definition: TGQuartz.h:31
@ kTCenter
Definition: TGQuartz.h:30
@ kNone
Definition: TGQuartz.h:30
@ kMLeft
Definition: TGQuartz.h:30
@ kMCenter
Definition: TGQuartz.h:31
@ kTRight
Definition: TGQuartz.h:30
@ kBRight
Definition: TGQuartz.h:31
TGQuartz()
Definition: TGQuartz.mm:78
void RenderTTFString(Int_t x, Int_t y, ETextMode mode)
Definition: TGQuartz.mm:812
void SetAA()
Definition: TGQuartz.mm:1039
virtual void DrawPolyLine(Int_t n, TPoint *xy)
Draws a line through all points in the list.
Definition: TGQuartz.mm:300
virtual void SetTextSize(Float_t textsize)
Sets the current text size to "textsize".
Definition: TGQuartz.mm:716
void AlignTTFString()
Definition: TGQuartz.mm:744
virtual Int_t GetFontDescent() const
Returns the descent of the current font (in pixels.
Definition: TGQuartz.mm:550
void * GetSelectedDrawableChecked(const char *calledFrom) const
Definition: TGQuartz.mm:1064
bool fUseAA
Definition: TGQuartz.h:93
void DrawFTGlyphIntoPixmap(void *pixmap, FT_Bitmap *source, ULong_t fore, ULong_t back, Int_t bx, Int_t by)
Definition: TGQuartz.mm:916
virtual void SetFillStyle(Style_t style)
Sets fill area style.
Definition: TGQuartz.mm:633
std::vector< TPoint > fConvertedPoints
Definition: TGQuartz.h:85
virtual void SetMarkerColor(Color_t cindex)
Sets color index "cindex" for markers.
Definition: TGQuartz.mm:641
virtual void SetLineColor(Color_t cindex)
Sets color index "cindex" for drawing lines.
Definition: TGQuartz.mm:599
virtual void SetLineStyle(Style_t linestyle)
Sets the line style.
Definition: TGQuartz.mm:607
TGQuartz(const TGQuartz &rhs)
TGQuartz & operator=(const TGQuartz &rhs)
virtual void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text, ETextMode mode)
Draws a text string using current font.
Definition: TGQuartz.mm:399
virtual void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, Int_t *ic)
Draws a cell array.
Definition: TGQuartz.mm:244
virtual void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2)
Draws a line.
Definition: TGQuartz.mm:252
virtual void GetTextExtent(UInt_t &w, UInt_t &h, char *text)
Returns the size of the specified character string "mess".
Definition: TGQuartz.mm:478
virtual void SetTextFont(Font_t fontnumber)
Sets the current text font number.
Definition: TGQuartz.mm:688
virtual void DrawFillArea(Int_t n, TPoint *xy)
Fills area described by the polygon.
Definition: TGQuartz.mm:186
virtual void SetOpacity(Int_t percent)
Sets opacity of the current window.
Definition: TGQuartz.mm:732
virtual void SetMarkerStyle(Style_t markerstyle)
Sets marker style.
Definition: TGQuartz.mm:659
virtual void SetFillColor(Color_t cindex)
Sets color index "cindex" for fill areas.
Definition: TGQuartz.mm:624
FT_Vector fAlign
Definition: TGQuartz.h:33
Definition: TPoint.h:31
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
const Int_t n
Definition: legend1.C:16