Logo ROOT  
Reference Guide
TLink.cxx
Go to the documentation of this file.
1// @(#)root/graf:$Id$
2// Author: Rene Brun 05/03/95
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, 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#include <cstdio>
13
14#include "TVirtualPad.h"
15#include "TClass.h"
16#include "TLink.h"
17#include "snprintf.h"
18
20
21/** \class TLink
22\ingroup BasicGraphics
23
24Special TText object used to show hyperlinks.
25
26In the example below created by TObject::Inspect, TLinks are used
27to show pointers to other objects.
28Clicking on one link, inspect the corresponding object.
29*/
30
31////////////////////////////////////////////////////////////////////////////////
32/// Link default constructor.
33
35{
36 fLink = 0;
37}
38
39////////////////////////////////////////////////////////////////////////////////
40/// Constructor to define a link object.
41///
42/// pointer points to any kind of object.
43
45 : TText(x, y, "")
46{
47 fLink = pointer;
48 static char line[16];
49 snprintf(line,16,"->%zx ", (size_t)pointer);
51}
52
53////////////////////////////////////////////////////////////////////////////////
54/// Link default destructor.
55
57{
58}
59
60////////////////////////////////////////////////////////////////////////////////
61/// Execute action corresponding to one event.
62///
63/// This member function is called when a link is clicked with the locator
64///
65/// If mouse is clicked on a link text, the object pointed by the link
66/// is Inspected
67
69{
70 if (!gPad) return;
71
72 if (event == kMouseMotion)
73 gPad->SetCursor(kHand);
74
75 if (event != kButton1Up) return;
76
77 if (TestBit(kIsStarStar)) return;
78 TObject *idcur = (TObject*)fLink;
79 if (!idcur) return;
81 if (!cl) return;
82
83 // check if link points to a TObject
84 TClass *c1 = (TClass*)cl->GetBaseClass("TObject");
85 if (!c1) return;
86
87 idcur->Inspect();
88}
@ kMouseMotion
Definition: Buttons.h:23
@ kButton1Up
Definition: Buttons.h:19
@ kHand
Definition: GuiTypes.h:374
int Int_t
Definition: RtypesCore.h:45
double Double_t
Definition: RtypesCore.h:59
#define ClassImp(name)
Definition: Rtypes.h:364
#define gPad
Definition: TVirtualPad.h:287
#define snprintf
Definition: civetweb.c:1540
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
TClass * GetBaseClass(const char *classname)
Return pointer to the base class "classname".
Definition: TClass.cxx:2642
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
Definition: TClass.cxx:2955
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
Definition: TNamed.cxx:164
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
Mother of all ROOT objects.
Definition: TObject.h:37
virtual void Inspect() const
Dump contents of this object in a graphics canvas.
Definition: TObject.cxx:466
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:187
Base class for several text objects.
Definition: TText.h:22
TLine * line
return c1
Definition: legend1.C:41
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17