31 class TCanvas :
public TPad {
33 friend class TCanvasImp;
35 friend class TInterpreter;
44 Color_t fHighLightColor;
57 TObject *fClickSelected;
62 TPad *fClickSelectedPad;
64 TCanvasImp *fCanvasImp;
65 TContextMenu *fContextMenu;
72 TVirtualPadPainter *fPainter;
74 static Bool_t fgIsFolder;
77 TCanvas(
const TCanvas &canvas);
78 TCanvas &operator=(
const TCanvas &rhs);
81 void DrawEventStatus(Int_t event, Int_t x, Int_t y, TObject *selected);
88 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
95 kShowEventStatus = BIT(15),
98 kShowToolBar = BIT(18),
99 kShowEditor = BIT(19),
100 kMoveOpaque = BIT(20),
101 kResizeOpaque = BIT(21),
102 kIsGrayscale = BIT(22),
103 kShowToolTips = BIT(23)
106 TCanvas(Bool_t build=kTRUE);
107 TCanvas(
const char *name,
const char *title=
"", Int_t form=1);
108 TCanvas(
const char *name,
const char *title, Int_t ww, Int_t wh);
109 TCanvas(
const char *name,
const char *title, Int_t wtopx, Int_t wtopy,
111 TCanvas(
const char *name, Int_t ww, Int_t wh, Int_t winid);
116 void Constructor(
const char *name,
const char *title, Int_t form);
117 void Constructor(
const char *name,
const char *title, Int_t ww, Int_t wh);
118 void Constructor(
const char *name,
const char *title,
119 Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh);
122 TVirtualPad *cd(Int_t subpadnumber=0);
123 virtual void Browse(TBrowser *b);
124 void Clear(Option_t *option=
"");
125 void Close(Option_t *option=
"");
126 virtual void Delete(Option_t * =
"") { MayNotUse(
"Delete()"); }
127 void DisconnectWidget();
128 virtual void Draw(Option_t *option=
"");
129 virtual TObject *DrawClone(Option_t *option=
"")
const;
130 virtual TObject *DrawClonePad();
131 virtual void EditorBar();
132 void EmbedInto(Int_t winid, Int_t ww, Int_t wh);
133 void EnterLeave(TPad *prevSelPad, TObject *prevSelObj);
134 void FeedbackMode(Bool_t set);
136 void UseCurrentStyle();
137 void ForceUpdate() {
if (fCanvasImp) fCanvasImp->ForceUpdate(); }
138 const char *GetDISPLAY()
const {
return fDISPLAY.Data();}
139 TContextMenu *GetContextMenu()
const {
return fContextMenu;};
140 Int_t GetDoubleBuffer()
const {
return fDoubleBuffer;}
141 Int_t GetEvent()
const {
return fEvent; }
142 Int_t GetEventX()
const {
return fEventX; }
143 Int_t GetEventY()
const {
return fEventY; }
144 Color_t GetHighLightColor()
const {
return fHighLightColor; }
145 TVirtualPad *GetPadSave()
const {
return fPadSave; }
146 void ClearPadSave() { fPadSave = 0; }
147 TObject *GetSelected()
const {
return fSelected;}
148 TObject *GetClickSelected()
const {
return fClickSelected;}
149 Int_t GetSelectedX()
const {
return fSelectedX;}
150 Int_t GetSelectedY()
const {
return fSelectedY;}
151 Option_t *GetSelectedOpt()
const {
return fSelectedOpt.Data();}
152 TVirtualPad *GetSelectedPad()
const {
return fSelectedPad; }
153 TVirtualPad *GetClickSelectedPad()
const {
return fClickSelectedPad; }
154 Bool_t GetShowEventStatus()
const {
return TestBit(kShowEventStatus); }
155 Bool_t GetShowToolBar()
const {
return TestBit(kShowToolBar); }
156 Bool_t GetShowEditor()
const {
return TestBit(kShowEditor); }
157 Bool_t GetShowToolTips()
const {
return TestBit(kShowToolTips); }
158 Bool_t GetAutoExec()
const {
return TestBit(kAutoExec); }
159 Size_t GetXsizeUser()
const {
return fXsizeUser;}
160 Size_t GetYsizeUser()
const {
return fYsizeUser;}
161 Size_t GetXsizeReal()
const {
return fXsizeReal;}
162 Size_t GetYsizeReal()
const {
return fYsizeReal;}
163 Int_t GetCanvasID()
const {
return fCanvasID;}
164 TCanvasImp *GetCanvasImp()
const {
return fCanvasImp;}
165 Int_t GetWindowTopX();
166 Int_t GetWindowTopY();
167 UInt_t GetWindowWidth()
const {
return fWindowWidth; }
168 UInt_t GetWindowHeight()
const {
return fWindowHeight; }
169 UInt_t GetWw()
const {
return fCw; }
170 UInt_t GetWh()
const {
return fCh; }
171 virtual void GetCanvasPar(Int_t &wtopx, Int_t &wtopy, UInt_t &ww, UInt_t &wh)
172 {wtopx=GetWindowTopX(); wtopy=fWindowTopY; ww=fWindowWidth; wh=fWindowHeight;}
173 virtual void HandleInput(EEventType button, Int_t x, Int_t y);
174 Bool_t HasMenuBar()
const {
return TestBit(kMenuBar); }
175 virtual void HighlightConnect(
const char *slot);
176 void Iconify() {
if (fCanvasImp) fCanvasImp->Iconify(); }
177 Bool_t IsBatch()
const {
return fBatch; }
178 Bool_t IsDrawn() {
return fDrawn; }
179 Bool_t IsFolder()
const;
180 Bool_t IsGrayscale();
181 Bool_t IsRetained()
const {
return fRetained; }
182 Bool_t IsWeb()
const {
return fCanvasImp ? fCanvasImp->IsWeb() : kFALSE; }
183 virtual void ls(Option_t *option=
"")
const;
184 void MoveOpaque(Int_t set=1);
185 Bool_t OpaqueMoving()
const {
return TestBit(kMoveOpaque); }
186 Bool_t OpaqueResizing()
const {
return TestBit(kResizeOpaque); }
187 virtual void Paint(Option_t *option=
"");
188 virtual TPad *Pick(Int_t px, Int_t py, TObjLink *&pickobj) {
return TPad::Pick(px, py, pickobj); }
189 virtual TPad *Pick(Int_t px, Int_t py, TObject *prevSelObj);
190 virtual void Picked(TPad *selpad, TObject *selected, Int_t event);
191 virtual void Highlighted(TVirtualPad *pad, TObject *obj, Int_t x, Int_t y);
192 virtual void ProcessedEvent(Int_t event, Int_t x, Int_t y, TObject *selected);
193 virtual void Selected(TVirtualPad *pad, TObject *obj, Int_t event);
194 virtual void Cleared(TVirtualPad *pad);
195 virtual void Closed();
196 void RaiseWindow() {
if (fCanvasImp) fCanvasImp->RaiseWindow(); }
197 void ResetDrawn() { fDrawn=kFALSE; }
198 virtual void Resize(Option_t *option=
"");
199 void ResizeOpaque(Int_t set=1);
200 void SaveSource(
const char *filename=
"", Option_t *option=
"");
201 void SavePrimitive(std::ostream &out, Option_t *option =
"");
202 virtual void SetCursor(ECursor cursor);
203 virtual void SetDoubleBuffer(Int_t mode=1);
204 virtual void SetName(
const char *name=
"");
205 virtual void SetFixedAspectRatio(Bool_t fixed = kTRUE);
206 void SetGrayscale(Bool_t set = kTRUE);
207 void SetWindowPosition(Int_t x, Int_t y) {
if (fCanvasImp) fCanvasImp->SetWindowPosition(x, y); }
208 void SetWindowSize(UInt_t ww, UInt_t wh)
211 SetCanvasSize((ww + fCw) / 2, (wh + fCh) / 2);
213 fCanvasImp->SetWindowSize(ww, wh);
215 void SetCanvasImp(TCanvasImp *i) { fCanvasImp = i; }
216 void SetCanvasSize(UInt_t ww, UInt_t wh);
217 void SetHighLightColor(Color_t col) { fHighLightColor = col; }
218 void SetSelected(TObject *obj);
219 void SetClickSelected(TObject *obj) { fClickSelected = obj; }
220 void SetSelectedPad(TPad *pad) { fSelectedPad = pad; }
221 void SetClickSelectedPad(TPad *pad) { fClickSelectedPad = pad; }
222 void Show() {
if (fCanvasImp) fCanvasImp->Show(); }
223 virtual void Size(Float_t xsizeuser=0, Float_t ysizeuser=0);
224 void SetBatch(Bool_t batch=kTRUE);
225 static void SetFolder(Bool_t isfolder=kTRUE);
226 void SetPadSave(TPad *pad) {fPadSave = pad;}
227 void SetRetained(Bool_t retained=kTRUE) { fRetained=retained;}
228 void SetTitle(
const char *title=
"");
229 virtual void ToggleEventStatus();
230 virtual void ToggleAutoExec();
231 virtual void ToggleToolBar();
232 virtual void ToggleEditor();
233 virtual void ToggleToolTips();
234 virtual void Update();
236 Bool_t UseGL()
const {
return fUseGL; }
237 void SetSupportGL(Bool_t support) {fUseGL = support;}
238 TVirtualPadPainter *GetCanvasPainter();
239 void DeleteCanvasPainter();
241 static TCanvas *MakeDefCanvas();
242 static Bool_t SupportAlpha();