Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "TGo4HisDrawOptionsShort.h"
00015
00016 #include "Riostream.h"
00017 #include "TROOT.h"
00018 #include "TColor.h"
00019 #include "TAttLine.h"
00020 #include "TAttFill.h"
00021 #include "TAttMarker.h"
00022
00023 #include "TGo4MdiArea.h"
00024 #include "TGo4ViewPanel.h"
00025
00026 #include <QColorDialog>
00027
00028
00029 TGo4HisDrawOptionsShort::TGo4HisDrawOptionsShort(QWidget *parent, const char* name)
00030 : QGo4Widget(parent,name)
00031 {
00032 setupUi(this);
00033 }
00034
00035 void TGo4HisDrawOptionsShort::SlotXlin()
00036 {
00037 SetDrawOpt(3, 0, "");
00038 }
00039
00040 void TGo4HisDrawOptionsShort::SlotXlog()
00041 {
00042 SetDrawOpt(3, 1, "");
00043 }
00044
00045 void TGo4HisDrawOptionsShort::SlotYlin()
00046 {
00047 SetDrawOpt(4, 0, "");
00048 }
00049
00050 void TGo4HisDrawOptionsShort::SlotYlog()
00051 {
00052 SetDrawOpt(4, 1, "");
00053 }
00054
00055 void TGo4HisDrawOptionsShort::SlotZlin()
00056 {
00057 SetDrawOpt(5, 0, "");
00058 }
00059
00060 void TGo4HisDrawOptionsShort::SlotZlog()
00061 {
00062 SetDrawOpt(5, 1, "");
00063 }
00064
00065 void TGo4HisDrawOptionsShort::SlotD1his()
00066 {
00067 SetDrawOpt(0, 0, "");
00068 }
00069
00070 void TGo4HisDrawOptionsShort::SlotD1line()
00071 {
00072 SetDrawOpt(0, 0, "L");
00073 }
00074
00075 void TGo4HisDrawOptionsShort::SlotD2scatter()
00076 {
00077 SetDrawOpt(0, 0, "HIST");
00078 }
00079
00080 void TGo4HisDrawOptionsShort::SlotD2pixel()
00081 {
00082 SetDrawOpt(0, 0, "COLZ");
00083 }
00084
00085 void TGo4HisDrawOptionsShort::SlotD2surfcol()
00086 {
00087 SetDrawOpt(0, 0, "SURF2");
00088 }
00089
00090 void TGo4HisDrawOptionsShort::SlotD2lego()
00091 {
00092 SetDrawOpt(0, 0, "LEGO2");
00093 }
00094
00095 void TGo4HisDrawOptionsShort::SlotD2contfill()
00096 {
00097 SetDrawOpt(0, 0, "CONT0Z");
00098 }
00099
00100 void TGo4HisDrawOptionsShort::SlotD2contline()
00101 {
00102 SetDrawOpt(0, 0, "CONT1Z");
00103 }
00104
00105 void TGo4HisDrawOptionsShort::SlotLineColor()
00106 {
00107 ChangeColor(0);
00108 }
00109
00110 void TGo4HisDrawOptionsShort::SlotFillColor()
00111 {
00112 ChangeColor(1);
00113 }
00114
00115 void TGo4HisDrawOptionsShort::SlotMarkerColor()
00116 {
00117 ChangeColor(2);
00118 }
00119
00120 void TGo4HisDrawOptionsShort::ChangeColor(int kind)
00121 {
00122 TGo4ViewPanel* panel = TGo4MdiArea::Instance()->GetActivePanel();
00123 if (panel==0) return;
00124
00125 TPad* pad = panel->GetActivePad();
00126 TObject* obj = panel->GetSelectedObject(pad, 0);
00127
00128 Color_t icol = 0;
00129
00130 switch (kind) {
00131 case 0: {
00132 TAttLine* att = dynamic_cast<TAttLine*> (obj);
00133 if (att==0) return;
00134 icol = att->GetLineColor();
00135 break;
00136 }
00137 case 1: {
00138 TAttFill* att = dynamic_cast<TAttFill*> (obj);
00139 if (att==0) return;
00140 icol = att->GetFillColor();
00141 break;
00142 }
00143 case 2: {
00144 TAttMarker* att = dynamic_cast<TAttMarker*> (obj);
00145 if (att==0) return;
00146 icol = att->GetMarkerColor();
00147 break;
00148 }
00149 }
00150
00151 TColor* rcol = gROOT->GetColor(icol);
00152
00153 QColor qcol;
00154
00155 if (rcol!=0)
00156 qcol.setRgb(rcol->GetRed(), rcol->GetGreen(), rcol->GetBlue());
00157
00158 QColor c = QColorDialog::getColor(qcol);
00159 if (!c.isValid()) return;
00160
00161 icol = TColor::GetColor(c.red(), c.green(), c.blue());
00162
00163 switch (kind) {
00164 case 0: {
00165 TAttLine* att = dynamic_cast<TAttLine*> (obj);
00166 if (att!=0) att->SetLineColor(icol);
00167 break;
00168 }
00169 case 1: {
00170 TAttFill* att = dynamic_cast<TAttFill*> (obj);
00171 if (att!=0) att->SetFillColor(icol);
00172 break;
00173 }
00174 case 2: {
00175 TAttMarker* att = dynamic_cast<TAttMarker*> (obj);
00176 if (att!=0) att->SetMarkerColor(icol);
00177 break;
00178 }
00179 }
00180
00181 panel->MarkPadModified(pad);
00182
00183 panel->ShootRepaintTimer(pad);
00184
00185 panel->ActivateInGedEditor(obj);
00186 }
00187
00188 void TGo4HisDrawOptionsShort::SetDrawOpt(int kind, int value, char *dropt)
00189 {
00190 TGo4ViewPanel* panel = TGo4MdiArea::Instance()->GetActivePanel();
00191 if (panel!=0) panel->ChangeDrawOption(kind, value,dropt);
00192 }