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 <stdio.h>
13
14#include "TVirtualPad.h"
15#include "TClass.h"
16#include "TLink.h"
17
19
20/** \class TLink
21\ingroup BasicGraphics
22
23Special TText object used to show hyperlinks.
24
25In the example below created by TObject::Inspect, TLinks are used
26to show pointers to other objects.
27Clicking on one link, inspect the corresponding object.
28*/
29
30////////////////////////////////////////////////////////////////////////////////
31/// Link default constructor.
32
34{
35 fLink = 0;
36}
37
38////////////////////////////////////////////////////////////////////////////////
39/// Constructor to define a link object.
40///
41/// pointer points to any kind of object.
42
44 : TText(x, y, "")
45{
46 fLink = pointer;
47 static char line[16];
48 snprintf(line,16,"->%lx ", (Long_t)pointer);
50}
51
52////////////////////////////////////////////////////////////////////////////////
53/// Link default destructor.
54
56{
57}
58
59////////////////////////////////////////////////////////////////////////////////
60/// Execute action corresponding to one event.
61///
62/// This member function is called when a link is clicked with the locator
63///
64/// If mouse is clicked on a link text, the object pointed by the link
65/// is Inspected
66
68{
69 if (!gPad) return;
70
71 if (event == kMouseMotion)
72 gPad->SetCursor(kHand);
73
74 if (event != kButton1Up) return;
75
76 if (TestBit(kIsStarStar)) return;
77 TObject *idcur = (TObject*)fLink;
78 if (!idcur) return;
80 if (!cl) return;
81
82 // check if link points to a TObject
83 TClass *c1 = (TClass*)cl->GetBaseClass("TObject");
84 if (!c1) return;
85
86 idcur->Inspect();
87}
@ kMouseMotion
Definition: Buttons.h:23
@ kButton1Up
Definition: Buttons.h:19
int Int_t
Definition: RtypesCore.h:41
long Long_t
Definition: RtypesCore.h:50
double Double_t
Definition: RtypesCore.h:55
#define ClassImp(name)
Definition: Rtypes.h:365
#define gPad
Definition: TVirtualPad.h:286
@ kHand
Definition: TVirtualX.h:46
#define snprintf
Definition: civetweb.c:1540
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
TClass * GetBaseClass(const char *classname)
Return pointer to the base class "classname".
Definition: TClass.cxx:2593
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:2906
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:464
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:172
Base class for several text objects.
Definition: TText.h:23
TLine * line
return c1
Definition: legend1.C:41
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17