calendar.C: This macro gives an example of how to use html widget | Graphics User Interface | customTH1Fmenu.C: How to customize a context menu for a class |
//How to add a function to the class context menu //Author: Ilka Antcheva #include "TH1.h" #include "TClassMenuItem.h" #include "TList.h" void poptest1(int a=5, int b = 56); void poptest2(int a, int b, TObject* c); void poptest2bis(TObject* c); int poptest3(); void poptest4(char* ch); void customContextMenu() { TH1F *h; TH1F *h2; TClassMenuItem *n; TList *l; // Create test histograms h = new TH1F("h","Schtroumpf",100,-4,4); h->FillRandom("gaus"); h->Draw(); h2 = new TH1F("h2","h2",1000,-4,4); h2->FillRandom("gaus",30000); // Retrieve menu list from TClass TClass *cl = h->IsA(); l = cl->GetMenuList(); // Add some items to the popup menus n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,cl, "Test object, draw a second h","Draw",h2,"Option_t*"); l->AddFirst(n); n = new TClassMenuItem(TClassMenuItem::kPopupSeparator,cl); l->AddFirst(n); n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,cl, "test no 4","poptest4",0,"const char*"); l->AddFirst(n); n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,cl, "test no 3","poptest3",0,""); l->AddFirst(n); n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,cl, "test no 2 bis","poptest2bis",0,"TObject*",2); l->AddFirst(n); n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,cl, "test no 2","poptest2",0,"int,int,TObject*",2); l->AddFirst(n); n = new TClassMenuItem(TClassMenuItem::kPopupUserFunction,cl, "test no 1","poptest1",0,"int,int"); l->AddFirst(n); } void poptest1(int a, int b) { printf("poptest1 %d %d\n",a,b); } void poptest2(int a, int b, TObject *c) { // Remark: the object c will not be asked for since it is the selected object printf("poptest2 %d %d\n",a,b); printf("histo : %lx\n",(Long_t)c); printf("title of the histogram : %s\n",((TH1F*)c)->GetTitle()); } void poptest2bis(TObject *c) { // Remark: the object c will not be asked for since it is the selected object printf("poptest2bis\n"); printf("histo : %lx\n",(Long_t)c); printf("title of the histogram : %s\n",((TH1F*)c)->GetTitle()); } int poptest3() { printf("poptest3\n"); return 12; } void poptest4(const char *ch) { printf("poptest4 %s\n",ch); } customContextMenu.C:1 customContextMenu.C:2 customContextMenu.C:3 customContextMenu.C:4 customContextMenu.C:5 customContextMenu.C:6 customContextMenu.C:7 customContextMenu.C:8 customContextMenu.C:9 customContextMenu.C:10 customContextMenu.C:11 customContextMenu.C:12 customContextMenu.C:13 customContextMenu.C:14 customContextMenu.C:15 customContextMenu.C:16 customContextMenu.C:17 customContextMenu.C:18 customContextMenu.C:19 customContextMenu.C:20 customContextMenu.C:21 customContextMenu.C:22 customContextMenu.C:23 customContextMenu.C:24 customContextMenu.C:25 customContextMenu.C:26 customContextMenu.C:27 customContextMenu.C:28 customContextMenu.C:29 customContextMenu.C:30 customContextMenu.C:31 customContextMenu.C:32 customContextMenu.C:33 customContextMenu.C:34 customContextMenu.C:35 customContextMenu.C:36 customContextMenu.C:37 customContextMenu.C:38 customContextMenu.C:39 customContextMenu.C:40 customContextMenu.C:41 customContextMenu.C:42 customContextMenu.C:43 customContextMenu.C:44 customContextMenu.C:45 customContextMenu.C:46 customContextMenu.C:47 customContextMenu.C:48 customContextMenu.C:49 customContextMenu.C:50 customContextMenu.C:51 customContextMenu.C:52 customContextMenu.C:53 customContextMenu.C:54 customContextMenu.C:55 customContextMenu.C:56 customContextMenu.C:57 customContextMenu.C:58 customContextMenu.C:59 customContextMenu.C:60 customContextMenu.C:61 customContextMenu.C:62 customContextMenu.C:63 customContextMenu.C:64 customContextMenu.C:65 customContextMenu.C:66 customContextMenu.C:67 customContextMenu.C:68 customContextMenu.C:69 customContextMenu.C:70 customContextMenu.C:71 customContextMenu.C:72 customContextMenu.C:73 customContextMenu.C:74 customContextMenu.C:75 customContextMenu.C:76 customContextMenu.C:77 customContextMenu.C:78 customContextMenu.C:79 customContextMenu.C:80 customContextMenu.C:81 customContextMenu.C:82 customContextMenu.C:83 customContextMenu.C:84 customContextMenu.C:85 customContextMenu.C:86 customContextMenu.C:87 customContextMenu.C:88 customContextMenu.C:89 |
|