12 #ifndef ROOT_TContextMenu
13 #define ROOT_TContextMenu
40 class TContextMenu :
public TNamed {
42 friend class TContextMenuImp;
45 TContextMenu(
const TContextMenu&) =
delete;
46 TContextMenu& operator=(
const TContextMenu&) =
delete;
49 TContextMenuImp *fContextMenuImp;
50 TFunction *fSelectedMethod;
51 TObject *fSelectedObject;
52 TObject *fCalledObject;
53 TClassMenuItem *fSelectedMenuItem;
54 TVirtualPad *fSelectedCanvas;
55 TVirtualPad *fSelectedPad;
58 virtual void DisplayPopUp(Int_t x, Int_t y)
59 {
if (fContextMenuImp) fContextMenuImp->DisplayPopup(x, y); }
65 TContextMenu(
const char *name,
const char *title =
"Context sensitive popup menu");
66 virtual ~TContextMenu();
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); }
81 void Execute(TObjArray *params) { Execute(fCalledObject, fSelectedMethod, params); }
82 virtual TBrowser *GetBrowser() {
return fBrowser; }
83 virtual TContextMenuImp *GetContextMenuImp() {
return fContextMenuImp; }
84 virtual TVirtualPad *GetSelectedCanvas() {
return fSelectedCanvas; }
85 virtual TFunction *GetSelectedMethod() {
return fSelectedMethod; }
86 virtual TObject *GetSelectedObject() {
return fSelectedObject; }
87 virtual TObject *GetCalledObject() {
return fCalledObject; }
88 virtual TClassMenuItem *GetSelectedMenuItem() {
return fSelectedMenuItem; }
89 virtual TVirtualPad *GetSelectedPad() {
return fSelectedPad; }
90 virtual void Popup(Int_t x, Int_t y, TObject *obj, TVirtualPad *c=
nullptr, TVirtualPad *p=
nullptr);
91 virtual void Popup(Int_t x, Int_t y, TObject *obj, TBrowser *b);
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; }
96 virtual void SetSelectedMenuItem(TClassMenuItem *mi) { fSelectedMenuItem = mi; }
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; }
101 ClassDef(TContextMenu,0)