proper menu ID handling for multiple plots
This commit is contained in:
parent
6cc5c2478c
commit
2ed303abb6
@ -55,7 +55,8 @@ PMusrCanvas::PMusrCanvas()
|
|||||||
|
|
||||||
fImp = 0;
|
fImp = 0;
|
||||||
fBar = 0;
|
fBar = 0;
|
||||||
fPopup = 0;
|
fPopupMain = 0;
|
||||||
|
fPopupSave = 0;
|
||||||
|
|
||||||
fStyle = 0;
|
fStyle = 0;
|
||||||
fMainCanvas = 0;
|
fMainCanvas = 0;
|
||||||
@ -104,6 +105,10 @@ PMusrCanvas::~PMusrCanvas()
|
|||||||
{
|
{
|
||||||
cout << "~PMusrCanvas() called. fMainCanvas name=" << fMainCanvas->GetName() << endl;
|
cout << "~PMusrCanvas() called. fMainCanvas name=" << fMainCanvas->GetName() << endl;
|
||||||
// cleanup
|
// cleanup
|
||||||
|
if (fPopupSave) {
|
||||||
|
delete fPopupSave;
|
||||||
|
fPopupSave = 0;
|
||||||
|
}
|
||||||
if (fStyle) {
|
if (fStyle) {
|
||||||
delete fStyle;
|
delete fStyle;
|
||||||
fStyle = 0;
|
fStyle = 0;
|
||||||
@ -177,7 +182,8 @@ void PMusrCanvas::InitMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, In
|
|||||||
|
|
||||||
fImp = 0;
|
fImp = 0;
|
||||||
fBar = 0;
|
fBar = 0;
|
||||||
fPopup = 0;
|
fPopupMain = 0;
|
||||||
|
fPopupSave = 0;
|
||||||
|
|
||||||
fMainCanvas = 0;
|
fMainCanvas = 0;
|
||||||
fTitlePad = 0;
|
fTitlePad = 0;
|
||||||
@ -196,17 +202,21 @@ void PMusrCanvas::InitMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, In
|
|||||||
}
|
}
|
||||||
|
|
||||||
// add canvas menu
|
// add canvas menu
|
||||||
TRootCanvas *fImp = (TRootCanvas*)fMainCanvas->GetCanvasImp();
|
fImp = (TRootCanvas*)fMainCanvas->GetCanvasImp();
|
||||||
TGMenuBar *fBar = fImp->GetMenuBar();
|
fBar = fImp->GetMenuBar();
|
||||||
TGPopupMenu *fPopup = fBar->AddPopup("&Musrfit");
|
fPopupMain = fBar->AddPopup("&Musrfit");
|
||||||
fPopup->AddEntry("&Fourier", P_MENU_ID_FOURIER);
|
fPopupMain->AddEntry("&Fourier", P_MENU_ID_FOURIER+P_MENU_PLOT_OFFSET*fPlotNumber);
|
||||||
fPopup->AddEntry("&Difference", P_MENU_ID_DIFFERENCE);
|
fPopupMain->AddEntry("&Difference", P_MENU_ID_DIFFERENCE+P_MENU_PLOT_OFFSET*fPlotNumber);
|
||||||
fPopup->AddSeparator();
|
fPopupMain->AddSeparator();
|
||||||
fPopup->AddEntry("&Save Data", P_MENU_ID_SAVE_DATA);
|
// fPopupMain->AddEntry("&Save Data", P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber);
|
||||||
|
fPopupSave = new TGPopupMenu();
|
||||||
|
fPopupSave->AddEntry("Save ascii", P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_ASCII);
|
||||||
|
fPopupSave->AddEntry("Save db", P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_DB);
|
||||||
|
fPopupMain->AddPopup("&Save Data", fPopupSave);
|
||||||
fBar->MapSubwindows();
|
fBar->MapSubwindows();
|
||||||
fBar->Layout();
|
fBar->Layout();
|
||||||
|
|
||||||
fPopup->Connect("TGPopupMenu", "Activated(Int_t)", "PMusrCanvas", this, "HandleMenuPopup(Int_t)");
|
fPopupMain->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
|
||||||
@ -321,18 +331,14 @@ void PMusrCanvas::HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
|
|||||||
*/
|
*/
|
||||||
void PMusrCanvas::HandleMenuPopup(Int_t id)
|
void PMusrCanvas::HandleMenuPopup(Int_t id)
|
||||||
{
|
{
|
||||||
switch (id) {
|
if (id == P_MENU_ID_FOURIER+P_MENU_PLOT_OFFSET*fPlotNumber) {
|
||||||
case P_MENU_ID_FOURIER:
|
cout << endl << ">> will handle Fourier ..." << endl;
|
||||||
cout << endl << ">> will handle Fourier ..." << endl;
|
} else if (id == P_MENU_ID_DIFFERENCE+P_MENU_PLOT_OFFSET*fPlotNumber) {
|
||||||
break;
|
HandleDifference();
|
||||||
case P_MENU_ID_DIFFERENCE:
|
} else if (id == P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_ASCII) {
|
||||||
cout << endl << ">> will handle Difference ..." << endl;
|
SaveDataAscii();
|
||||||
break;
|
} else if (id == P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_DB) {
|
||||||
case P_MENU_ID_SAVE_DATA:
|
SaveDataDb();
|
||||||
cout << endl << ">> will handle Save Data ..." << endl;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1383,3 +1389,27 @@ void PMusrCanvas::PlotFourier(int fourierType)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// SaveDataAscii
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrCanvas::SaveDataAscii()
|
||||||
|
{
|
||||||
|
cout << endl << ">> will handle Save Data in ascii format ..." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// SaveDataDb
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMusrCanvas::SaveDataDb()
|
||||||
|
{
|
||||||
|
cout << endl << ">> will handle Save Data in db format ..." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -59,6 +59,10 @@
|
|||||||
#define P_MENU_ID_DIFFERENCE 10002
|
#define P_MENU_ID_DIFFERENCE 10002
|
||||||
#define P_MENU_ID_SAVE_DATA 10003
|
#define P_MENU_ID_SAVE_DATA 10003
|
||||||
|
|
||||||
|
#define P_MENU_PLOT_OFFSET 1000
|
||||||
|
#define P_MENU_ID_SAVE_ASCII 100
|
||||||
|
#define P_MENU_ID_SAVE_DB 101
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -158,7 +162,8 @@ class PMusrCanvas : public TObject, public TQObject
|
|||||||
// canvas menu related variables
|
// canvas menu related variables
|
||||||
TRootCanvas *fImp;
|
TRootCanvas *fImp;
|
||||||
TGMenuBar *fBar;
|
TGMenuBar *fBar;
|
||||||
TGPopupMenu *fPopup;
|
TGPopupMenu *fPopupMain;
|
||||||
|
TGPopupMenu *fPopupSave;
|
||||||
|
|
||||||
// canvas related variables
|
// canvas related variables
|
||||||
TCanvas *fMainCanvas;
|
TCanvas *fMainCanvas;
|
||||||
@ -195,6 +200,9 @@ class PMusrCanvas : public TObject, public TQObject
|
|||||||
virtual void PlotDifference();
|
virtual void PlotDifference();
|
||||||
virtual void PlotFourier(int fourierType);
|
virtual void PlotFourier(int fourierType);
|
||||||
|
|
||||||
|
virtual void SaveDataAscii();
|
||||||
|
virtual void SaveDataDb();
|
||||||
|
|
||||||
ClassDef(PMusrCanvas, 1)
|
ClassDef(PMusrCanvas, 1)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user