Logo ROOT  
Reference Guide
TContextMenu.h
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: Nenad Buncic 08/02/96
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#ifndef ROOT_TContextMenu
13#define ROOT_TContextMenu
14
15
16////////////////////////////////////////////////////////////////////////////////
17// //
18// TContextMenu //
19// //
20// This class provides an interface to context sensitive popup menus. //
21// These menus pop up when the user hits the right mouse button, and //
22// are destroyed when the menu pops downs. //
23// //
24////////////////////////////////////////////////////////////////////////////////
25
26#include "TContextMenuImp.h"
27
28#include "TNamed.h"
29
30class TMethod;
31class TFunction;
32class TMethodArg;
33class TVirtualPad;
34class TObjArray;
35class TBrowser;
36class TToggle;
37class TClassMenuItem;
38
39
40class TContextMenu : public TNamed {
41
42friend class TContextMenuImp;
43
44private:
45 TContextMenu(const TContextMenu&) = delete; // TContextMenu can not be copied since we do not know the actual type of the TContextMenuImp (and it can not be 'Cloned')
46 TContextMenu& operator=(const TContextMenu&) = delete; // TContextMenu can not be copied since we do not know the actual type of the TContextMenuImp (and it can not be 'Cloned')
47
48protected:
49 TContextMenuImp *fContextMenuImp; //!Context menu system specific implementation
50 TFunction *fSelectedMethod; //selected method
51 TObject *fSelectedObject; //selected object
52 TObject *fCalledObject; //object to call
53 TClassMenuItem *fSelectedMenuItem; //selected class menu item
54 TVirtualPad *fSelectedCanvas; //selected canvas (if exist)
55 TVirtualPad *fSelectedPad; //selected pad (if exist)
56 TBrowser *fBrowser; //selected browser (if exist)
57
58 virtual void DisplayPopUp(Int_t x, Int_t y)
60
61private:
63
64public:
65 TContextMenu(const char *name, const char *title = "Context sensitive popup menu");
66 virtual ~TContextMenu();
67
68 virtual void Action(TObject *object, TMethod *method);
69 virtual void Action(TObject *object, TToggle *toggle);
70 virtual void Action(TClassMenuItem *classmenuitem);
71 void Action(TMethod *method) { Action(fSelectedObject, method); }
72 void Action(TToggle *toggle) { Action(fSelectedObject, toggle); }
73 virtual const char *CreateArgumentTitle(TMethodArg *argument);
74 virtual const char *CreateDialogTitle(TObject *object, TFunction *method);
75 virtual const char *CreatePopupTitle(TObject *object );
76 virtual void Execute(const char *method, const char *params, Int_t *error=nullptr) { TObject::Execute(method, params, error); }
77 virtual void Execute(TMethod *method, TObjArray *params, Int_t *error=nullptr) { TObject::Execute(method, params, error); }
78 virtual void Execute(TObject *object, TFunction *method, const char *params);
79 virtual void Execute(TObject *object, TFunction *method, TObjArray *params);
80 void Execute(const char *params) { Execute(fCalledObject, fSelectedMethod, params); }
82 virtual TBrowser *GetBrowser() { return fBrowser; }
87 virtual TObject *GetCalledObject() { return fCalledObject; }
90 virtual void Popup(Int_t x, Int_t y, TObject *obj, TVirtualPad *c=nullptr, TVirtualPad *p=nullptr); // Create menu from canvas
91 virtual void Popup(Int_t x, Int_t y, TObject *obj, TBrowser *b); // Create menu from Browser
92 virtual void SetCanvas(TVirtualPad *c) { fSelectedCanvas = c; }
93 virtual void SetBrowser(TBrowser *b) { fBrowser = b; }
94 virtual void SetMethod(TFunction *m) { fSelectedMethod = m; }
95 virtual void SetCalledObject(TObject *o) { fCalledObject = o; }
97 virtual void SetNameTitle(const char *name, const char *title) { TNamed::SetNameTitle(name, title); }
98 virtual void SetObject(TObject *o) { fSelectedObject = o; }
99 virtual void SetPad(TVirtualPad *p) { fSelectedPad = p; }
100
101 ClassDef(TContextMenu,0) //Context sensitive popup menu
102};
103
104#endif
#define b(i)
Definition: RSha256.hxx:100
#define c(i)
Definition: RSha256.hxx:101
int Int_t
Definition: RtypesCore.h:41
#define ClassDef(name, id)
Definition: Rtypes.h:326
char name[80]
Definition: TGX11.cxx:109
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
Describes one element of the context menu associated to a class The menu item may describe.
This class provides an interface to GUI independent context sensitive popup menus.
virtual void DisplayPopup(Int_t x, Int_t y)
This class provides an interface to context sensitive popup menus.
Definition: TContextMenu.h:40
virtual void SetCanvas(TVirtualPad *c)
Definition: TContextMenu.h:92
TContextMenuImp * fContextMenuImp
Definition: TContextMenu.h:49
virtual TVirtualPad * GetSelectedCanvas()
Definition: TContextMenu.h:84
virtual void DisplayPopUp(Int_t x, Int_t y)
Definition: TContextMenu.h:58
virtual void SetCalledObject(TObject *o)
Definition: TContextMenu.h:95
virtual ~TContextMenu()
Destroy a context menu.
virtual void Action(TObject *object, TMethod *method)
Action to be performed when this menu item is selected.
virtual void Popup(Int_t x, Int_t y, TObject *obj, TVirtualPad *c=nullptr, TVirtualPad *p=nullptr)
Popup context menu at given location in canvas c and pad p for selected object.
virtual TFunction * GetSelectedMethod()
Definition: TContextMenu.h:85
void Execute(TObjArray *params)
Definition: TContextMenu.h:81
virtual void Execute(TMethod *method, TObjArray *params, Int_t *error=nullptr)
Execute method on this object with parameters stored in the TObjArray.
Definition: TContextMenu.h:77
TBrowser * fBrowser
Definition: TContextMenu.h:56
virtual TVirtualPad * GetSelectedPad()
Definition: TContextMenu.h:89
virtual void SetPad(TVirtualPad *p)
Definition: TContextMenu.h:99
TFunction * fSelectedMethod
Context menu system specific implementation.
Definition: TContextMenu.h:50
virtual TClassMenuItem * GetSelectedMenuItem()
Definition: TContextMenu.h:88
virtual void SetMethod(TFunction *m)
Definition: TContextMenu.h:94
void Action(TMethod *method)
Definition: TContextMenu.h:71
virtual void SetObject(TObject *o)
Definition: TContextMenu.h:98
virtual TObject * GetSelectedObject()
Definition: TContextMenu.h:86
virtual const char * CreateArgumentTitle(TMethodArg *argument)
Create string describing argument (for use in dialog box).
TVirtualPad * fSelectedPad
Definition: TContextMenu.h:55
TObject * fSelectedObject
Definition: TContextMenu.h:51
TContextMenu(const TContextMenu &)=delete
void Execute(const char *params)
Definition: TContextMenu.h:80
virtual TObject * GetCalledObject()
Definition: TContextMenu.h:87
virtual TBrowser * GetBrowser()
Definition: TContextMenu.h:82
virtual TContextMenuImp * GetContextMenuImp()
Definition: TContextMenu.h:83
TVirtualPad * fSelectedCanvas
Definition: TContextMenu.h:54
virtual const char * CreateDialogTitle(TObject *object, TFunction *method)
Create title for dialog box retrieving argument values.
TContextMenu & operator=(const TContextMenu &)=delete
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Definition: TContextMenu.h:97
TObject * fCalledObject
Definition: TContextMenu.h:52
virtual const char * CreatePopupTitle(TObject *object)
Create title for popup menu.
virtual void Execute(const char *method, const char *params, Int_t *error=nullptr)
Execute method on this object with the given parameter string, e.g.
Definition: TContextMenu.h:76
void Action(TToggle *toggle)
Definition: TContextMenu.h:72
virtual void SetSelectedMenuItem(TClassMenuItem *mi)
Definition: TContextMenu.h:96
virtual void SetBrowser(TBrowser *b)
Definition: TContextMenu.h:93
TClassMenuItem * fSelectedMenuItem
Definition: TContextMenu.h:53
Global functions class (global functions are obtained from CINT).
Definition: TFunction.h:28
Each ROOT method (see TMethod) has a linked list of its arguments.
Definition: TMethodArg.h:31
Each ROOT class (see TClass) has a linked list of methods.
Definition: TMethod.h:38
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Definition: TNamed.cxx:154
An array of TObjects.
Definition: TObjArray.h:37
Mother of all ROOT objects.
Definition: TObject.h:37
virtual void Execute(const char *method, const char *params, Int_t *error=0)
Execute method on this object with the given parameter string, e.g.
Definition: TObject.cxx:277
This class defines toggling facility for both - object's method or variables.
Definition: TToggle.h:43
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:50
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
auto * m
Definition: textangle.C:8