Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TRootContextMenu.h
Go to the documentation of this file.
1 // @(#)root/gui:$Id$
2 // Author: Fons Rademakers 12/02/98
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_TRootContextMenu
13 #define ROOT_TRootContextMenu
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TRootContextMenu //
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 #include "TGMenu.h"
28 
29 class TRootDialog;
30 
31 
32 class TRootContextMenu : public TGPopupMenu, public TContextMenuImp {
33 
34 private:
35  TRootDialog *fDialog; // dialog prompting for command line arguments
36  TList *fTrash; // list of objects to be deleted before refilling menu
37 
38  TRootContextMenu(const TRootContextMenu&);
39  TRootContextMenu& operator=(const TRootContextMenu&);
40  void CreateMenu(TObject *object);
41 
42 public:
43  TRootContextMenu(TContextMenu *c = 0, const char *name = "ROOT Context Menu");
44  virtual ~TRootContextMenu();
45 
46  virtual void DisplayPopup(Int_t x, Int_t y);
47  virtual void Dialog(TObject *object, TMethod *method);
48  virtual void Dialog(TObject *object, TFunction *function);
49  virtual void DrawEntry(TGMenuEntry *entry);
50  TRootDialog *GetDialog() const { return fDialog; };
51  virtual Bool_t HandleButton(Event_t *event);
52  virtual Bool_t HandleCrossing(Event_t *event);
53  virtual Bool_t HandleMotion(Event_t *event);
54  virtual void OnlineHelp();
55  virtual void RecursiveRemove(TObject *obj);
56 
57  Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
58 
59 protected:
60  TGPopupMenu * FindHierarchy(const char *commentstring, TString &last_component);
61  void AddEntrySorted(TGPopupMenu *current, const char *s, Int_t id, void *ud = 0,
62  const TGPicture *p = 0, Bool_t sorted = kTRUE);
63 
64  ClassDef(TRootContextMenu,0) //ROOT native GUI context sensitive popup menu
65 };
66 
67 #endif