// @(#)root/gpad:$Id$ // Author: Rene Brun 03/07/96 /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #include "TROOT.h" #include "TDialogCanvas.h" #include "TGroupButton.h" #include "TText.h" #include "TStyle.h" ClassImp(TDialogCanvas) //______________________________________________________________________________ // A DialogCanvas is a canvas specialized to set attributes. // It contains, in general, TGroupButton objects. // When the APPLY button is executed, the actions corresponding // to the active buttons are executed via the Interpreter. // // See examples in TAttLineCanvas, TAttFillCanvas, TAttTextCanvas, TAttMarkerCanvas //______________________________________________________________________________ TDialogCanvas::TDialogCanvas() : TCanvas() { // DialogCanvas default constructor fRefObject = 0; fRefPad = 0; } //_____________________________________________________________________________ TDialogCanvas::TDialogCanvas(const char *name, const char *title, Int_t ww, Int_t wh) : TCanvas(name,title,-ww,wh) { // DialogCanvas constructor SetFillColor(36); fRefObject = 0; fRefPad = 0; } //_____________________________________________________________________________ TDialogCanvas::TDialogCanvas(const char *name, const char *title, Int_t wtopx, Int_t wtopy, UInt_t ww, UInt_t wh) : TCanvas(name,title,-wtopx,wtopy,ww,wh) { // DialogCanvas constructor SetFillColor(36); fRefObject = 0; fRefPad = 0; } //______________________________________________________________________________ TDialogCanvas::~TDialogCanvas() { // DialogCanvas default destructor } //______________________________________________________________________________ void TDialogCanvas::Apply(const char *action) { // Called when the APPLY button is executed if (!fRefPad) return; SetCursor(kWatch); TIter next(fPrimitives); TObject *refobj = fRefObject; TObject *obj; TGroupButton *button; if (!strcmp(action,"gStyle")) fRefObject = gStyle; while ((obj = next())) { if (obj->InheritsFrom(TGroupButton::Class())) { button = (TGroupButton*)obj; if (button->GetBorderMode() < 0) button->ExecuteAction(); } } fRefObject = refobj; if (!gROOT->GetSelectedPad()) return; gROOT->GetSelectedPad()->Modified(); gROOT->GetSelectedPad()->Update(); } //______________________________________________________________________________ void TDialogCanvas::BuildStandardButtons() { // Create APPLY, gStyle and CLOSE buttons TGroupButton *apply = new TGroupButton("APPLY","Apply","",.05,.01,.3,.09); apply->SetTextSize(0.55); apply->SetBorderSize(3); apply->SetFillColor(44); apply->Draw(); apply = new TGroupButton("APPLY","gStyle","",.375,.01,.625,.09); apply->SetTextSize(0.55); apply->SetBorderSize(3); apply->SetFillColor(44); apply->Draw(); apply = new TGroupButton("APPLY","Close","",.70,.01,.95,.09); apply->SetTextSize(0.55); apply->SetBorderSize(3); apply->SetFillColor(44); apply->Draw(); } //______________________________________________________________________________ void TDialogCanvas::Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) { // Set world coordinate system for the pad TPad::Range(x1,y1,x2,y2); } //______________________________________________________________________________ void TDialogCanvas::RecursiveRemove(TObject *obj) { // Recursively remove object from a pad and its subpads TPad::RecursiveRemove(obj); if (fRefObject == obj) fRefObject = 0; if (fRefPad == obj) fRefPad = 0; }