Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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:
30 FT_Vector fAlign; // alignment vector
31public:
32 TGQuartz();
33 TGQuartz(const char *name, const char *title);
34
35 //Final-overriders for TVirtualX.
37 EBoxMode mode) override;
39 Int_t nx, Int_t ny, Int_t *ic) override;
40 void DrawFillArea(Int_t n, TPoint *xy) override;
41
42 using TGCocoa::DrawLine;//There is a GUI version of DrawLine.
43
44 void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2) override;
45 void DrawPolyLine(Int_t n, TPoint *xy) override;
46 void DrawPolyMarker(Int_t n, TPoint *xy) override;
48 const char *text, ETextMode mode) override;
50 const wchar_t *text, ETextMode mode) override;
51
52 //I have to override these setters, since they are alredy overriden
53 //in TVirtualX (originally, they are declared in TAttXXX classes)
54 //and do nothing in TVirtualX (though, they are implemented
55 //correctly in TAttXXX classes).
56 void SetFillColor(Color_t cindex) override;
57 void SetFillStyle(Style_t style) override;
58 void SetLineColor(Color_t cindex) override;
59 void SetLineStyle(Style_t linestyle) override;
60 void SetLineWidth(Width_t width) override;
61 void SetMarkerColor(Color_t cindex) override;
62 void SetMarkerSize(Float_t markersize) override;
63 void SetMarkerStyle(Style_t markerstyle) override;
64 void SetOpacity(Int_t percent) override;
65 void SetTextAlign(Short_t talign=11) override;
66 void SetTextColor(Color_t cindex) override;
67 void SetTextFont(Font_t fontnumber) override;
69 void SetTextSize(Float_t textsize) override;
70
71 void GetTextExtent(UInt_t &w, UInt_t &h, char *text) override;
72 Int_t GetFontAscent() const override;
73 Int_t GetFontAscent(const char *text) const override;
74 Int_t GetFontDescent() const override;
75 Int_t GetFontDescent(const char *text) const override;
76 Float_t GetTextMagnitude() override;
77
78 //---- Methods used for new graphics -----
79 void SetAttFill(WinContext_t wctxt, const TAttFill &att) override;
80 void SetAttLine(WinContext_t wctxt, const TAttLine &att) override;
81 void SetAttMarker(WinContext_t wctxt, const TAttMarker &att) override;
82 void SetAttText(WinContext_t wctxt, const TAttText &att) override;
83
91 void DrawTextW(WinContext_t wctxt, Int_t x, Int_t y, Float_t angle, Float_t mgn, const wchar_t *text, ETextMode mode) override;
92
93
94private:
95
96 //Unfortunately, I have to convert from
97 //top-left to bottom-left corner system.
98 std::vector<TPoint> fConvertedPoints;
99
100 //Lines with AA can be quite different
101 //from what we always had with X11.
102 //Now this is a switch in our configuration file (system.rootrc),
103 //so it can be disabled. This flag affects _only_ pad's graphics,
104 //GUI graphics is special and different. AA for fill area has a special
105 // switch because it is better to have it off by default.
106 bool fUseAA;
108
113
114 void SetAA();
119 void *GetPixmapDrawable(void *drawable0, const char *calledFrom) const;
120
123
124 ClassDefOverride(TGQuartz, 0);//2D non-GUI graphics for Mac OSX.
125};
126
127#endif
Handle_t WinContext_t
Window drawing context.
Definition GuiTypes.h:30
#define h(i)
Definition RSha256.hxx:106
short Style_t
Style number (short)
Definition RtypesCore.h:96
short Color_t
Color number (short)
Definition RtypesCore.h:99
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
Definition RtypesCore.h:69
short Width_t
Line width (short)
Definition RtypesCore.h:98
float Float_t
Float 4 bytes (float)
Definition RtypesCore.h:71
short Font_t
Font number (short)
Definition RtypesCore.h:95
short Short_t
Signed Short integer 2 bytes (short)
Definition RtypesCore.h:53
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
Option_t Option_t cindex
Option_t Option_t SetLineWidth
Option_t Option_t SetFillStyle
Option_t Option_t SetTextSize
Option_t Option_t DrawFillArea
Option_t Option_t mgn
Option_t Option_t fontnumber
Option_t Option_t markerstyle
Option_t Option_t SetLineColor
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t SetTextFont
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 TPoint DrawPolyMarker
Option_t Option_t SetFillColor
Option_t Option_t TPoint TPoint const char DrawLine
Option_t Option_t SetMarkerStyle
Option_t Option_t width
Option_t Option_t TPoint TPoint percent
Option_t Option_t TPoint TPoint DrawText
Option_t Option_t TPoint TPoint SetOpacity
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:146
Fill Area Attributes class.
Definition TAttFill.h:21
Line Attributes class.
Definition TAttLine.h:21
Marker Attributes class.
Definition TAttMarker.h:21
Text Attributes class.
Definition TAttText.h:21
This class implements TVirtualX interface for MacOS X, using Cocoa and Quartz 2D.
Definition TGCocoa.h:58
void DrawLine(Drawable_t wid, GContext_t gc, Int_t x1, Int_t y1, Int_t x2, Int_t y2) override
Uses the components of the specified GC to draw a line between the specified set of points (x1,...
Definition TGCocoa.mm:1790
This is non-GUI part of TVirtualX interface, implemented for MacOS X, using CoreGraphics (Quartz).
Definition TGQuartz.h:28
TAttMarker & GetAttMarker(WinContext_t wctxt)
Definition TGQuartz.mm:1231
bool fUseFAAA
Definition TGQuartz.h:107
void SetAttLine(WinContext_t wctxt, const TAttLine &att) override
Set line attributes for specified window.
Definition TGQuartz.mm:830
void SetMarkerColor(Color_t cindex) override
Set the marker color.
Definition TGQuartz.mm:721
void DrawPolyLine(Int_t n, TPoint *xy) override
Draws a line through all points in the list.
Definition TGQuartz.mm:369
Float_t GetTextMagnitude() override
Returns the current font magnification factor.
Definition TGQuartz.mm:662
void SetAttText(WinContext_t wctxt, const TAttText &att) override
Set text attributes for specified window.
Definition TGQuartz.mm:852
void SetAA()
Definition TGQuartz.mm:1186
Bool_t IsTTFStringVisible(WinContext_t wctxt, Int_t x, Int_t y, UInt_t w, UInt_t h)
Definition TGQuartz.mm:915
void DrawTextW(WinContext_t wctxt, Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text, ETextMode mode) override
Draw text on specified window.
Definition TGQuartz.mm:457
void SetTextColor(Color_t cindex) override
Set the text color.
Definition TGQuartz.mm:764
bool fUseAA
Definition TGQuartz.h:106
void DrawFTGlyphIntoPixmap(void *pixmap, FT_Bitmap *source, ULong_t fore, ULong_t back, Int_t bx, Int_t by)
Definition TGQuartz.mm:1063
void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode) override
Draws a box between [x1,y1] and [x2,y2] according to the "mode".
Definition TGQuartz.mm:189
void SetAttFill(WinContext_t wctxt, const TAttFill &att) override
Set fill attributes for specified window.
Definition TGQuartz.mm:820
std::vector< TPoint > fConvertedPoints
Definition TGQuartz.h:98
void SetTextAlign(Short_t talign=11) override
Set the text alignment.
Definition TGQuartz.mm:754
TAttText & GetAttText(WinContext_t wctxt)
Definition TGQuartz.mm:1241
void SetAttMarker(WinContext_t wctxt, const TAttMarker &att) override
Set marker attributes for specified window.
Definition TGQuartz.mm:841
void RenderTTFString(WinContext_t wctxt, Int_t x, Int_t y, ETextMode mode)
Definition TGQuartz.mm:947
void GetTextExtent(UInt_t &w, UInt_t &h, char *text) override
Returns the size of the specified character string "mess".
Definition TGQuartz.mm:548
Int_t GetFontAscent() const override
Returns the ascent of the current font (in pixels).
Definition TGQuartz.mm:579
void SetMarkerSize(Float_t markersize) override
Set the marker size.
Definition TGQuartz.mm:731
TGQuartz(const TGQuartz &rhs)
void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, Int_t *ic) override
Draws a cell array.
Definition TGQuartz.mm:264
TGQuartz & operator=(const TGQuartz &rhs)
void DrawLinesSegmentsW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draw line segments on specified window.
Definition TGQuartz.mm:383
void AlignTTFString(WinContext_t wctxt)
Definition TGQuartz.mm:875
void DrawPolyMarkerW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draw poly marker on specified window.
Definition TGQuartz.mm:390
void DrawLineW(WinContext_t wctxt, Int_t x1, Int_t y1, Int_t x2, Int_t y2) override
Draw line on specified window.
Definition TGQuartz.mm:271
void DrawPolyLineW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draw poly line on specified window.
Definition TGQuartz.mm:328
void SetLineStyle(Style_t linestyle) override
Set the line style.
Definition TGQuartz.mm:679
TAttFill & GetAttFill(WinContext_t wctxt)
Definition TGQuartz.mm:1211
Int_t GetFontDescent() const override
Returns the descent of the current font (in pixels.
Definition TGQuartz.mm:620
void DrawBoxW(WinContext_t wctxt, Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode) override
Draw box on specified window.
Definition TGQuartz.mm:117
void * GetPixmapDrawable(void *drawable0, const char *calledFrom) const
Definition TGQuartz.mm:1251
void DrawFillAreaW(WinContext_t wctxt, Int_t n, TPoint *xy) override
Draw fill area on specified window.
Definition TGQuartz.mm:195
TAttLine & GetAttLine(WinContext_t wctxt)
Definition TGQuartz.mm:1221
FT_Vector fAlign
Definition TGQuartz.h:30
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16