#ifndef ROOT_TRootContextMenu
#define ROOT_TRootContextMenu
#ifndef ROOT_TContextMenuImp
#include "TContextMenuImp.h"
#endif
#ifndef ROOT_TGMenu
#include "TGMenu.h"
#endif
class TRootDialog;
class TRootContextMenu : public TGPopupMenu, public TContextMenuImp {
private:
TRootDialog *fDialog;
TList *fTrash;
TRootContextMenu(const TRootContextMenu&);
TRootContextMenu& operator=(const TRootContextMenu&);
void CreateMenu(TObject *object);
public:
TRootContextMenu(TContextMenu *c = 0, const char *name = "ROOT Context Menu");
virtual ~TRootContextMenu();
virtual void DisplayPopup(Int_t x, Int_t y);
virtual void Dialog(TObject *object, TMethod *method);
virtual void Dialog(TObject *object, TFunction *function);
virtual void DrawEntry(TGMenuEntry *entry);
TRootDialog *GetDialog() const { return fDialog; };
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleCrossing(Event_t *event);
virtual Bool_t HandleMotion(Event_t *event);
virtual void OnlineHelp();
virtual void RecursiveRemove(TObject *obj);
Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
protected:
TGPopupMenu * FindHierarchy(const char *commentstring, TString &last_component);
void AddEntrySorted(TGPopupMenu *current, const char *s, Int_t id, void *ud = 0,
const TGPicture *p = 0, Bool_t sorted = kTRUE);
ClassDef(TRootContextMenu,0)
};
#endif