first canvas menu dummy implementation

This commit is contained in:
nemu 2008-10-29 07:18:42 +00:00
parent 983e7607c4
commit 6cc5c2478c
3 changed files with 65 additions and 6 deletions

View File

@ -53,6 +53,10 @@ PMusrCanvas::PMusrCanvas()
fPlotType = -1; fPlotType = -1;
fPlotNumber = -1; fPlotNumber = -1;
fImp = 0;
fBar = 0;
fPopup = 0;
fStyle = 0; fStyle = 0;
fMainCanvas = 0; fMainCanvas = 0;
fTitlePad = 0; fTitlePad = 0;
@ -171,6 +175,10 @@ void PMusrCanvas::InitMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, In
fDifferencePlot = false; fDifferencePlot = false;
fPlotType = -1; fPlotType = -1;
fImp = 0;
fBar = 0;
fPopup = 0;
fMainCanvas = 0; fMainCanvas = 0;
fTitlePad = 0; fTitlePad = 0;
fDataTheoryPad = 0; fDataTheoryPad = 0;
@ -187,6 +195,19 @@ void PMusrCanvas::InitMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, In
return; return;
} }
// add canvas menu
TRootCanvas *fImp = (TRootCanvas*)fMainCanvas->GetCanvasImp();
TGMenuBar *fBar = fImp->GetMenuBar();
TGPopupMenu *fPopup = fBar->AddPopup("&Musrfit");
fPopup->AddEntry("&Fourier", P_MENU_ID_FOURIER);
fPopup->AddEntry("&Difference", P_MENU_ID_DIFFERENCE);
fPopup->AddSeparator();
fPopup->AddEntry("&Save Data", P_MENU_ID_SAVE_DATA);
fBar->MapSubwindows();
fBar->Layout();
fPopup->Connect("TGPopupMenu", "Activated(Int_t)", "PMusrCanvas", this, "HandleMenuPopup(Int_t)");
// divide the canvas into 4 pads // divide the canvas into 4 pads
// title pad // title pad
fTitlePad = new TPaveText(0.0, YTITLE, 1.0, 1.0, "NDC"); fTitlePad = new TPaveText(0.0, YTITLE, 1.0, 1.0, "NDC");
@ -291,6 +312,30 @@ void PMusrCanvas::HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
} }
} }
//--------------------------------------------------------------------------
// HandleMenuPopup (SLOT)
//--------------------------------------------------------------------------
/**
* <p>
*
*/
void PMusrCanvas::HandleMenuPopup(Int_t id)
{
switch (id) {
case P_MENU_ID_FOURIER:
cout << endl << ">> will handle Fourier ..." << endl;
break;
case P_MENU_ID_DIFFERENCE:
cout << endl << ">> will handle Difference ..." << endl;
break;
case P_MENU_ID_SAVE_DATA:
cout << endl << ">> will handle Save Data ..." << endl;
break;
default:
break;
}
}
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
// LastCanvasClosed (SLOT) // LastCanvasClosed (SLOT)
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------

View File

@ -35,6 +35,8 @@
#include <TObject.h> #include <TObject.h>
#include <TQObject.h> #include <TQObject.h>
#include <TStyle.h> #include <TStyle.h>
#include <TRootCanvas.h>
#include <TGMenu.h>
#include <TCanvas.h> #include <TCanvas.h>
#include <TPaveText.h> #include <TPaveText.h>
#include <TLegend.h> #include <TLegend.h>
@ -52,6 +54,11 @@
#define YTITLE 0.95 #define YTITLE 0.95
#define XTHEO 0.75 #define XTHEO 0.75
// Canvas menu id's
#define P_MENU_ID_FOURIER 10001
#define P_MENU_ID_DIFFERENCE 10002
#define P_MENU_ID_SAVE_DATA 10003
//------------------------------------------------------------------------ //------------------------------------------------------------------------
/** /**
* <p> * <p>
@ -137,6 +144,7 @@ class PMusrCanvas : public TObject, public TQObject
virtual void Done(Int_t status=0); // *SIGNAL* virtual void Done(Int_t status=0); // *SIGNAL*
virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected); // SLOT virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected); // SLOT
virtual void HandleMenuPopup(Int_t id); // SLOT
virtual void LastCanvasClosed(); // SLOT virtual void LastCanvasClosed(); // SLOT
private: private:
@ -147,6 +155,12 @@ class PMusrCanvas : public TObject, public TQObject
TStyle *fStyle; TStyle *fStyle;
// canvas menu related variables
TRootCanvas *fImp;
TGMenuBar *fBar;
TGPopupMenu *fPopup;
// canvas related variables
TCanvas *fMainCanvas; TCanvas *fMainCanvas;
TPaveText *fTitlePad; TPaveText *fTitlePad;
TPad *fDataTheoryPad; TPad *fDataTheoryPad;

View File

@ -34,9 +34,9 @@ using namespace std;
#include "PMyCanvas.h" #include "PMyCanvas.h"
#define P_ID_FOURIER 1 #define P_ID_FOURIER 10001
#define P_ID_DIFFERENCE 2 #define P_ID_DIFFERENCE 10002
#define P_ID_SAVE_DATA 3 #define P_ID_SAVE_DATA 10003
ClassImpQ(PMyCanvas) ClassImpQ(PMyCanvas)
@ -58,10 +58,10 @@ cout << endl << ">> fImp=" << fImp << endl;
cout << endl << ">> fBar=" << fBar << endl; cout << endl << ">> fBar=" << fBar << endl;
TGPopupMenu *fPopup = fBar->AddPopup("m&y menu"); TGPopupMenu *fPopup = fBar->AddPopup("m&y menu");
cout << endl << ">> fPopup=" << fPopup << endl; cout << endl << ">> fPopup=" << fPopup << endl;
fPopup->AddEntry("F&ourier", 1); fPopup->AddEntry("F&ourier", P_ID_FOURIER);
fPopup->AddEntry("&Difference", 2); fPopup->AddEntry("&Difference", P_ID_DIFFERENCE);
fPopup->AddSeparator(); fPopup->AddSeparator();
fPopup->AddEntry("Save Data", 3); fPopup->AddEntry("Save Data", P_ID_SAVE_DATA);
fBar->MapSubwindows(); fBar->MapSubwindows();
fBar->Layout(); fBar->Layout();